Subject: Re: RAW access to files
To: None <tech-kern@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-kern
Date: 12/13/2001 17:04:50
>>> userspace (NO MEMCPY)
>> Yes.  But it also means no readahead, because there's nowhere to
>> _put_ the readahead.
> with modern disk (which does readahead in hardware)

As Thor (I think it was) pointed out, going out to disk - even if you
hit the disk's cache - is significantly slower than finding the data
already in host RAM.

> or/and large blocks it's no difference.

I don't see what difference the block size makes.  Could you explain?

>> (Unless the application provides such a place, which we agreed it
>> shouldn't need to do.)
> application can use O_ASYNC

How does that help?  To get readahead, there has to be somewhere to put
the readahead.  Direct I/O, by definition, doesn't keep kernel buffers,
so it can't be in the kernel, and we agreed it shouldn't be in the
application.  That doesn't leave anywhere but the disk itself, which I
covered above.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B