On Sun, Sep 02, 2007 at 01:13:23PM +0100, David Woodhouse wrote:OK, but then hasn't the patch just made the deadlock harder to hit, or is there some invariant that says that readpage() will never be invoked if gc was invoked on the same page as we're commit_write()ing? The Q/A comments aren't very sure about this. I guess from the look of it, prepare_write/commit_write make sure the page will be uptodate by the start of commit_write, and you avoid GCing the page in prepare_write because your new page won't have any nodes allocated yet that can possibly be GCed? BTW. with write_begin/write_end, you get to control the page lock, so for example if the readpage in prepare_write for partial writes is *only* for the purpose of avoiding this deadlock later, you could possibly avoid the RMW with the new aops. Maybe it would help you with data nodes crossing page boundaries too... OK, thanks for looking at it. If you'd care to pass it on to Linus before he releases 2.6.23 in random() % X days time... ;) -
| Paul Jackson | Re: cpuset-remove-sched-domain-hooks-from-cpusets |
| James Bottomley | Re: Announce: Linux-next (Or Andrew's dream :-)) |
| David Miller | Slow DOWN, please!!! |
| Masami Hiramatsu | Re: [RFC PATCH v4] Unified trace buffer |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Parag Warudkar | Re: 2.6.29-rc3: tg3 dead after resume |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
