lkml.org 
[lkml]   [2007]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: O_DIRECT question
    From
    Date
    On Wed, 2007-01-10 at 20:51 -0800, Andrew Morton wrote:
    > On Thu, 11 Jan 2007 10:57:06 +0800
    > Aubrey <aubreylee@gmail.com> 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?
    >
    > Not possible, basically.
    >
    > O_DIRECT reads and writes must be aligned to the device's block size
    > (usually 512 bytes) in memory addresses, file offsets and read/write request
    > sizes. Very few applications will bother to do that and will hence fail if
    > their files are automagically opened with O_DIRECT.

    I worked on patches to take away the 512-byte restriction for memory
    addresses a while ago - but had to use 4-byte alignment for some
    drivers to make it work. I gave up since, there was no way for me
    to methodically prove that it will work on all drivers :(

    O_DIRECT mount option is the one our software group people keep
    asking for (since they use it on Solaris) - we keep telling them
    NO !! Their basic complaint *was* - use/population of pagecache
    by other applications (tar, ftp, scp, backup) in the system,
    causing performance degrade for their application. But again,
    2.6.x had gotten lot better and we have hundreds of tunables
    to control various behaviours and problem can be *theoritically*
    worked around with these tunables.

    Thanks,
    Badari

    -
    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-11 17:57    [W:5.254 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site