We don't need fadvise IMHO. That is what open(2) is for. The streaming
request you are asking for is just a normal open(2). It will do read ahead
which is perfect for streaming (of data size << RAM size in its current form).
When you want large data streaming, i.e. you start getting worried about
memory pressure, then you want open(2) + O_DIRECT. No caching done. Perfect
for large data streams and we have that already. I agree that you may want
some form of asynchronous read ahead with passed pages being dropped from
the cache but that could be just a open(2) + O_SEQUENTIAL (doesn't exist yet).
All of what you are asking for exists in Windows and all the semantics are
implemented through a very powerful open(2) equivalent. I don't see why we
shouldn't do the same. It makes more sense to me than inventing yet another
system call...
The Windows NT/2k/XP CreateFile() call is documented at below URL. Search
for FILE_FLAG_* and there is a nice big table with all the possible access
method hints one can give when opening or creating a file. Many of those
make perfect sense to have in the Linux kernel, too and in fact with
O_DIRECT we already have some of the functionality Windows offers (there it
would be FILE_FLAG_NO_BUFFERING)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/filesio_7wmd.asp
Best regards,
Anton
-- "I've not lost my mind. It's backed up on tape somewhere." - Unknown-- Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @) Linux NTFS Maintainer / WWW: http://linux-ntfs.sf.net/ ICQ: 8561279 / WWW: http://www-stu.christs.cam.ac.uk/~aia21/- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/