Re: [rfc][patch] remove racy sync_page?

Nick Piggin
2006-05-31T16:22:43Z

Nick Piggin wrote:
> Linus Torvalds wrote:
>
>> Tell me WHERE you can unplug in that sequence. I will tell you where
>> you can NOT unplug:
>
>
> ...
>
>> - you can NOT just unplug in the path _after_ "readpage()", because
>> the IO may have been started by SOMEBODY ELSE that just did
>> read-ahead, and didn't unplug (on _purpose_ - the whole point of
>> doing read-ahead is to allow concurrent IO execution, so a
>> read-aheader that unplugs is broken by definition)
>
>
> Umm, this happens with the current lock_page() after readpage. And
> with per-task plugs, you do not unplug anybody else.

If this wasn't clear: I don't mean per-task plugs as in "the task
explicitly plugs and unplugs the block device"[*]; I mean really
per-task plugs.

[*] That would be crazy anyway because that would imply some random
task can plug an filled request queue that is going full tilt.

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