On Tue, 2010-05-25 at 02:12 -0700, Michel Lespinasse wrote:> On Tue, May 25, 2010 at 1:47 AM, Peter Zijlstra <peterz@infradead.org> wrote:> > So what happened to those patches that dropped mmap_sem during I/O?> > Yes, we do have patches trying to release the mmap_sem when a page> fault for a file backed VMA blocks on accessing the corresponding> file. We have not given up on these, and we intend to try submitting> them again. However, these patches do *not* address the case of a page> fault blocking while trying to get a free page (i.e. when you get> under high memory pressure).

But I guess they could, right? Simply make the allocation under mmap_sembe __GFP_HARDWALL|__GFP_HIGHMEM|__GFP_MOVABLE__GFP_NOWARN or(GFP_HUGHUSER_MOVABLE & ~(__GFP_WAIT|__GFP_IO|__GFP_FS))|__GFP_NOWARNand drop the mmap_sem when that fails.

> > I really don't like people tinkering with the lock implementations like> > this. Nor do I like the naming, stats are in no way _critical_.> > Critical here refers to the fact that you're not allowed to block> while holding the unfairly acquired rwsem.

We usually call that atomic, your 0/n patch didn't explain any of that.