Messages in this thread | | | Date | Fri, 20 Jul 2012 08:10:05 -0700 | From | Darren Hart <> | Subject | Re: 3.5-rc6 futex_wait_requeue_pi oops. |
| |
On 07/20/2012 06:35 AM, Dave Jones wrote: > On Thu, Jul 19, 2012 at 11:53:45PM -0700, Darren Hart wrote: > > > > >> I'll add a fix to that WARN_ON in my futex-fixes branch along with the > > >> fix for the bug Dan found. > > > > > > I think I have root cause. futex_wait_requeue_pi() doesn't like having > > > uaddr == uaddr2. The handle_early_wakeup() doesn't detect a problem > > > because key2 IS the same as key1, I think. I've just discovered this and > > > quickly hacked in a "if (uaddr==uaddr2) return -EINVAL" fix and the test > > > continues to run (with just ops 0, 11, 12) for several minutes now > > > (typically fails in a few seconds). I'll let it run for a few hours and > > > contemplate the proper fix. > > > > Dave, mind giving this a spin? It seems to be doing the trick here, > > at least for the *REQUEUE_PI futex op codes in trinity. > > Yeah, looks like that does the trick!
It ran all night without an issue here too. I'll roll these up and send them out shortly.
Dave, I love/hate trinity. ;-)
-- Darren Hart Intel Open Source Technology Center Yocto Project - Linux Kernel
| |