[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1402692675.27369.2.camel@buesod1.americas.hpqcorp.net>
Date: Fri, 13 Jun 2014 13:51:15 -0700
From: Davidlohr Bueso <davidlohr@...com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Darren Hart <darren@...art.com>,
LKML <linux-kernel@...r.kernel.org>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>, Kees Cook <kees@...flux.net>,
wad@...omium.org
Subject: Re: [patch V2 5/5] futex: Simplify futex_lock_pi_atomic() and make
it more robust
On Fri, 2014-06-13 at 11:44 +0200, Thomas Gleixner wrote:
> Subject: futex: Simplify futex_lock_pi_atomic() and make it more robust
> From: Thomas Gleixner <tglx@...utronix.de>
> Date: Wed, 11 Jun 2014 20:45:41 -0000
>
> futex_lock_pi_atomic() is a maze of retry hoops and loops.
>
> Reduce it to simple and understandable states:
>
> First step is to lookup existing waiters (state) in the kernel.
>
> If there is an existing waiter, validate it and attach to it.
>
> If there is no existing waiter, check the user space value
>
> If the TID encoded in the user space value is 0, take over the futex
> preserving the owner died bit.
>
> If the TID encoded in the user space value is != 0, lookup the owner
> task, validate it and attach to it.
>
> Reduces text size by 128 bytes on x8664.
>
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> Cc: Peter Zijlstra <peterz@...radead.org>
> Cc: Darren Hart <darren@...art.com>
> Cc: Davidlohr Bueso <davidlohr@...com>
> Cc: Kees Cook <kees@...flux.net>
> Cc: wad@...omium.org
> Link: http://lkml.kernel.org/r/20140611204237.361836310@linutronix.de
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> ---
>
> V2: Fixed the brown paperbag bug of V1
I confirm this v2 fixes the issue. Passes 5 hr pounding on my 80-core
system. Unsurprisingly, I didn't see any performance regressions either.
Thanks,
Davidlohr
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists