Re: Linux kernel 2.6.x Raw device support
Dave Platt <email@example.com> wrote:
> Joerg Schilling <firstname.lastname@example.org> wrote:
> > Dave Platt <email@example.com> wrote:
> > > > I believe that the reason for not implementing raw devices on Linux was the fact
> > > > that Linux was designed for x86 and the way Linux did implement DMA to devices
> > > > would have made a raw device slower than a buffered device.
> > >
> > > I believe that your belief is entirely wrong.
> > So please proove...
> I believe I already have! As I pointed out, I successfully built a
> system, based on a 2.4 kernel, which uses the /dev/raw/* API
> and does DMA directly to/from large buffers of user memory, and
> which greatly outperforms the equivalent code running against the
> buffered devices.
> The DMA directly to user memory was very efficient. The kernel
> buffer pool wasn't used, and there was no kernel-based memcopying
> of data between user memory and the kernel buffer pool.
> It took about two days to develop this, using a stock 2.4 kernel
> and standard devices and device drivers. The resulting "Super Duper"
> device was put into commercial service at a large disk-duplicating
> house. It significantly outperformed the commercial IDE disk
> duplicators of that era, and was a lot less expensive to
> acquire (we built 'em using low-end off-the-shelf PC systems
> from Fry's, and off-the-shelf 2-port PCI-bus UDMA controllers).
I was talking about the built in features in a vanilla 2.2 kernel.
> My recollection was that the Linux implementation of /dev/raw/* was
> either a late 2.2, or early 2.3/2.4 sort of thing. I used a fairly
> early 2.4 kernel to build the first version of the "Super Duper".
... and for me 2.4 starts in dec 1999/ 2000 (IIRC).
EMail:firstname.lastname@example.org (home) Jörg Schilling D-13353 Berlin
email@example.com (work) Blog: http://schily.blogspot.com/
URL: http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily