lkml.org 
[lkml]   [2008]   [Jun]   [1]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 1 Jun 2008 01:15:01 -0700
FromAndrew Morton <>
SubjectRe: sync_file_range(SYNC_FILE_RANGE_WRITE) blocks?
On Sun, 1 Jun 2008 08:23:43 +0100 (BST) Hugh Dickins <hugh@veritas.com> wrote:

> On Sat, 31 May 2008, Andrew Morton wrote:
> > On Sat, 31 May 2008 19:44:49 +0100 (BST) Hugh Dickins <hugh@veritas.com> wrote:
> > > 
> > > All I can say so far is that I find the same as you do:
> > > SYNC_FILE_RANGE_WRITE (after writing) takes a significant amount of time,
> > > more than half as long as when you add in SYNC_FILE_RANGE_WAIT_AFTER too.
> > > 
> > > Which make the sync_file_range call pretty pointless: your usage seems
> > > perfectly reasonable to me, but somehow we've broken its behaviour.
> > > I'll be investigating ...
> > 
> > It will block on disk queue fullness - sysrq-W will tell.
> 
> Ah, thank you.  What a disappointment, though it's understandable.
> Doesn't that very severely limit the usefulness of the system call?

A bit.  The request queue size is runtime tunable though.

I expect major users of this system call will be applications which do
small-sized overwrites into large files, mainly databases.  That is,
once the application developers discover its existence.  I'm still
getting expressions of wonder from people who I tell about the
five-year-old fadvise().

> I admit the flag isn't called SYNC_FILE_RANGE_WRITE_WITHOUT_WAITING,
> but I don't suppose Pavel and I are the only ones misled by it.

Yup, this caveat/restriction should be in the manpage.


\
 
 \ /
  Last update: 2008-06-01 10:19    [from the cache]
©2003-2008