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

From: Linus Torvalds
Date: Fri Feb 10 2006 - 15:01:44 EST




On Sat, 11 Feb 2006, Nick Piggin wrote:
>
> Well in that case in your argument your FADV_WRITE_START is of
> the "waits for writeout then starts writeout if dirty" type.
>
> In which case you've just made 3 consecutive write+wait cycles
> to the same page, so it is hardly an optimal IO pattern.

The point is, this is the interface that an app would want to use if they
want _perfect_ IO patterns.

Obviously, such an app wouldn't do writes every 100 bytes (or would do
them only if it knows that enough time has passed that the previous IO
will be done - but it can't _risk_ dropping an IO if something strange
happens).

The point being the ".. it might have dirtied the page since it's last
WRITE_START" thing. That's where it can very validly basically say "ok, I
now need for my last write to have finished, but I don't care about the
fact that I've made other changes _since_ in that same page". See?

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/