Re: msync() behaviour broken for MS_ASYNC, revert patch?

From: Linus Torvalds
Date: Fri Feb 10 2006 - 12:40:31 EST




On Fri, 10 Feb 2006, linux@xxxxxxxxxxx wrote:
>
> No. MS_ASYNC says "I need the data written now.".

Says you.

I say (and I have a decade of Linux historical behaviour to back it up)
that is says "I'm done, start flushing this out asynchronously like all
the other data I have written".

And yes, there are performance implications. But your claim that "start IO
now" performs better is bogus. It _sometimes_ performs better, but
sometimes performs much worse.

Take an example. You have a 200MB dirty area in a 1GB machine. You do
MS_ASYNC. What do you want to happen?

Do you want IO to be started on all of it? That's going to take quite a
while, and be really nasty for the system. Or do you want it to be
gracefully buffered out, the way we do all normal background writes?

"Performance" is very much not just about how fast it hits the platter.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/