Re: a competition when some threads acquire futex

From: Thomas Gleixner
Date: Wed Sep 06 2017 - 04:36:51 EST


On Wed, 6 Sep 2017, chengjian (D) wrote:

> > > diff --git a/kernel/futex.c b/kernel/futex.c
> > > index 3d38eaf..0b2d17a 100644
> > > --- a/kernel/futex.c
> > > +++ b/kernel/futex.c
> > > @@ -1545,6 +1545,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32
> > > uval,
> > > struct futex_pi_state *pi_
> > > spin_unlock(&hb->lock);
> > > wake_up_q(&wake_q);
> > > + _cond_resched( );
> >

> I wrote _cond_resched( ) in futex_wake( ) which will be called to wake up
> waiters
> when the process release the futex.
>
>
> But the patch producted by git format-patch displayed in wake_futex_pi( ).

Ok. Still that patch has issues.

1) It's white space damaged. Please use TAB not spaces for
indentation. checkpatch.pl would have told you.

2) Why are you using _cond_resched() instead of plain cond_resched().

cond_resched() is what you want to use.

Thanks,

tglx