Messages in this thread | | | Date | Fri, 24 Oct 2014 17:51:01 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC][PATCH 4/6] SRCU free VMAs |
| |
On Fri, Oct 24, 2014 at 10:16:24AM -0500, Christoph Lameter wrote:
> Hmmm... One optimization to do before we get into these changes is to work > on allowing the dropping of mmap_sem before we get to sleeping and I/O and > then reevaluate when I/O etc is complete? This is probably the longest > hold on mmap_sem that is also frequent. Then it may be easier to use > standard RCU later.
The hold time isn't relevant, in fact breaking up the mmap_sem such that we require multiple acquisitions will just increase the cacheline bouncing.
Also I think it makes more sense to continue an entire fault operation, including blocking, if at all possible. Every retry will just waste more time.
Also, there is a lot of possible blocking, there's lock_page, page_mkwrite() -- which ends up calling into the dirty throttle etc. We could not possibly retry on all that, the error paths involved would be horrible for one.
That said, there's a fair bit of code that does allow the retry, and I think most fault paths actually do the retry on IO.
| |