lkml.org 
[lkml]   [2007]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: O_DIRECT question
linux-os (Dick Johnson) wrote:
> On Wed, 10 Jan 2007, Aubrey wrote:
>
>> Hi all,
>>
>> Opening file with O_DIRECT flag can do the un-buffered read/write access.
>> So if I need un-buffered access, I have to change all of my
>> applications to add this flag. What's more, Some scripts like "cp
>> oldfile newfile" still use pagecache and buffer.
>> Now, my question is, is there a existing way to mount a filesystem
>> with O_DIRECT flag? so that I don't need to change anything in my
>> system. If there is no option so far, What is the right way to achieve
>> my purpose?
>>
>> Thanks a lot.
>> -Aubrey
>> -
>
> I don't think O_DIRECT ever did what a lot of folks expect, i.e.,
> write this buffer of data to the physical device _now_. All I/O
> ends up being buffered. The `man` page states that the I/O will
> be synchronous, that at the conclusion of the call, data will have
> been transferred. However, the data written probably will not be
> in the physical device, perhaps only in a DMA-able buffer with
> a promise to get it to the SCSI device, soon.
>

No one (who read the specs) ever though thought the write was "right
now," just that it was direct from user buffers. So it is not buffered,
but it is queued through the elevator.

> Maybe you need to say why you want to use O_DIRECT with its terrible
> performance?

Because it doesn't have terrible performance, because the user knows
better than the o/s what it "right," etc. I used it to eliminate cache
impact from large but non-essential operations, others use it on slow
machines to avoid the CPU impact and bus bandwidth impact of extra copies.

Please don't assume that users are unable to understand how it works
because you believe some other feature which does something else would
be just as good. There is no other option which causes the writes to be
queued right now and not use any cache, and that is sometimes just what
you want.

I do like the patch to limit per-file and per-system cache, though, in
some cases I really would like the system to slow gradually rather than
fill 12GB of RAM with backlogged writes, then queue them and have other
i/o crawl or stop.

--
bill davidsen <davidsen@tmr.com>
CTO TMR Associates, Inc
Doing interesting things with small computers since 1979
-
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/

\
 
 \ /
  Last update: 2007-01-12 04:09    [from the cache]
©2003-2011 Jasper Spaans