Re: FYI: mmap_sem OOM patch

Peter Zijlstra
2010-07-08T09:35:28Z

On Thu, 2010-07-08 at 18:24 +0900, KOSAKI Motohiro wrote:
> > On Wed, 2010-07-07 at 16:11 -0700, Michel Lespinasse wrote:
> >
> > > diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
> > > index f627779..4b3a1c7 100644
> > > --- a/arch/x86/mm/fault.c
> > > +++ b/arch/x86/mm/fault.c
> > > @@ -1062,7 +1062,10 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
> > > bad_area_nosemaphore(regs, error_code, address);
> > > return;
> > > }
> > > - down_read(&mm->mmap_sem);
> > > + if (test_thread_flag(TIF_MEMDIE))
> > > + down_read_unfair(&mm->mmap_sem);
> > > + else
> > > + down_read(&mm->mmap_sem);
> > > } else {
> > > /*
> > > * The above down_read_trylock() might have succeeded in
> >
> > I still think adding that _unfair interface is asking for trouble.
>
> Can you please explain trouble that you worry? Why do we need to keep
> thread fairness when OOM case?

Just the whole concept of the unfair thing offends me ;-) I didn't
really look at the particular application in this case.