Re: O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14 IDE 56)

Date: Sat May 11 2002 - 13:45:07 EST

On Sat, May 11, 2002 at 11:04:45AM -0700, Linus Torvalds wrote:
> (1) readahead: allocate pages, and start the IO asynchronously
> (2) mmap the file with a MAP_UNCACHED flag, which causes read-faults to
> "steal" the page from the page cache and make it private to the
> mapping on page faults.
> If you split it up like that, you can do much more interesting things than
> O_DIRECT can do (ie the above is inherently asynchronous - we'll wait only
> for IO to complete when the page is actually faulted in).

I've never liked mmap although that may just be my advanced age
("we never had mmap, we copied files by cutting cuneiform in fresh
  clay tablets, the way the gods intended ")

        struct kio k;
        k.count = RECORDSIZE;
        fd1 = open("inputfile",KIO_READ);
        fd1a = dup(fd1); //dup creates a non KIO descript for the samefile
        fd2 = open("outputfile",KIO_WRITE);
        while( (n=read(fd1,&k,sizeof struct kio)
                write(fd2,&k,sizof struct kio);
                        write(fd1a,"Another record sent,Mr E.\n",GROVELSIZE);

> Sadly, database people don't seem to have any understanding of good taste,
> and various OS people end up usually just saying "Yes, Mr Oracle, I'll
> open up any orifice I have for your pleasure".

When you drive by that campus in redwood city you start to understand how
insignificant you are.

Victor Yodaiken 
Finite State Machine Labs: The RTLinux Company.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at

This archive was generated by hypermail 2b29 : Tue May 14 2002 - 12:00:16 EST