Messages in this thread |  | | | Date | Mon, 17 Oct 2005 01:52:25 -0700 (PDT) | | From | li nux <> | | Subject | Re: A problem about DIRECT IO on ext3 |
--- Jens Axboe <axboe@suse.de> wrote: > On Mon, Aug 29 2005, Erik Mouw wrote: > > There are four prerequisites for direct IO: > > - the file needs to be opened with O_DIRECT > > - the buffer needs to be page aligned (hint: use > getpagesize() instead > > of assuming that a page is 4k > > - reads and writes need to happen *in* multiples > of the soft block size > > - reads and writes need to happen *at* multiples > of the soft block size > > Actually, the buffer only needs to be hard block > size aligned, same goes > for the chunk size used for reads/writes. > > -- > Jens Axboe > On 2.4 the open call succeeds with O_DIRECT but read returns -EINVAL for any block size (512, 1024 ..16384)
open("/tmp/midstress_idx10", O_RDWR|O_CREAT|O_DIRECT|O_LARGEFILE, 01001101270) = 4 read(3, 0xbfffdc40, 16384) = -1 EINVAL (Invalid argument) how to correct this problem ?
__________________________________ Start your day with Yahoo! - Make it your home page! http://www.yahoo.com/r/hs - 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/
|  |