lkml.org 
[lkml]   [2006]   [Feb]   [10]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 10 Feb 2006 17:03:06 +1100
FromNick Piggin <>
SubjectRe: msync() behaviour broken for MS_ASYNC, revert patch?
Andrew Morton wrote:
> Nick Piggin <nickpiggin@yahoo.com.au> wrote:

>>But I've explained that they only matter for people using it in stupid ways.
>>fsync also poses a performance problem for programs that call it after every
>>write(2).
> 
> 
> There's absolutely nothing stupid about
> 
> 	*p = <expr>
> 	msync(p, sizeof(*p), MS_ASYNC);
> 

There really is if you're expecting a short time later to do

	*p = <expr2>

and had no need for a MS_SYNC anywhere in the meantime.
If you did have the need for MS_SYNC, then kicking off the IO
ASAP is going to be more efficient.

>>
>>Is a more efficient implementation know-problematic?
> 
> 
> It's less efficient for some things.  A lot.
> 

But only for stupid things, right?

> 
>>What applications did
>>you observe problems with, can you remember?
> 
> 
> Linus has some application which was doing the above.  It ran extremely
> slowly, so we changed MS_ASYNC (ie: made it "more efficient"...)

Can he remember what it is? It sounds like it is broken.

OTOH, it could have been blocking on pages already under writeout
but a smarter implementation could ignore those (at the cost of
worse IO efficiency in these rare cases).

-- 
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com 

-
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: 2006-02-10 06:05    [from the cache]
©2003-2008