Re: FYI: mmap_sem OOM patch

KOSAKI Motohiro
2010-07-08T09:51:25Z

> 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.

I see.
Yup, I agree unfair thing concept is a bit ugly. If anyone have
alternative idea, I agree to choose that thing.