Re: [rfc][patch] remove racy sync_page?
From: Nick Piggin
Date: Wed May 31 2006 - 12:21:51 EST
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
-
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/