Messages in this thread |  | | Date | Thu, 27 Sep 2001 17:03:49 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: highmem deadlock fix [was Re: VM in 2.4.10(+tweaks) vs. 2.4.9-ac14/15(+stuff)] |
| |
On Fri, 28 Sep 2001, Andrea Arcangeli wrote: > > Moving clear_bit just above submit_bh will fix it (please Robert make > this change before testing it), because if we block in submit_bh in the > bounce, then we won't deadlock on ourself because of the pagehighmem > check
We won't block on _ourselves_, but we can block on _two_ people doing it, and blocking on each others requests that are blocked waiting on a bounce buffer. Both will have one locked buffer, both will be waiting for the other person unlocking that buffer, and neither will ever make progress.
You could clear that bit _after_ the bounce buffer allocation, I suspect.
But I also suspect that it doesn't matter much, and as I can imagine similar problems with GFP_NOIO and loopback etc (do you see any reason why loopback couldn't deadlock on waiting for itself?), I think the GFP_XXX thing is the proper fix.
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |