Messages in this thread | | | Date | Wed, 25 Sep 2013 12:35:37 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH tip/core/rcu 01/11] mm: Place preemption point in do_mlockall() loop |
| |
On Wed, 25 Sep 2013 06:48:04 -0700 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> On Tue, Sep 24, 2013 at 09:10:47PM -0700, Andrew Morton wrote: > > On Tue, 24 Sep 2013 18:29:11 -0700 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote: > > > > > --- a/mm/mlock.c > > > +++ b/mm/mlock.c > > > @@ -736,6 +736,7 @@ static int do_mlockall(int flags) > > > > > > /* Ignore errors */ > > > mlock_fixup(vma, &prev, vma->vm_start, vma->vm_end, newflags); > > > + cond_resched(); > > > } > > > out: > > > return 0; > > > > Might need one in munlock_vma_pages_range() as well - it's a matter of > > finding the right test case. This will be neverending :( > > Indeed... I suspect that Trinity running on big-memory systems will > eventually find most of them via RCU CPU stall warnings, but as you say... > > Would you like the corresponding change to munlock_vma_pages_range() > beforehand?
Can't decide. If we went and poked holes in every place which looks like it loops for a long time, we'd be poking holes everywhere, some of them unnecessary. otoh if we wait around for people to say "hey" then it will take a very long time to poke all the needed holes.
The best approach would be for someone to sit down, identify all the potential problem spots, attempt to craft a userspace exploit to verify that each one really is a problem, then fix it. Nobody will bother doing this.
So I dunno. Stop asking difficult questions ;)
| |