Messages in this thread | | | Date | Thu, 06 Feb 2014 22:52:36 +0800 | From | Daniel J Blueman <> | Subject | Re: [RFC][PATCH v2 5/5] mutex: Give spinners a chance to spin_on_owner if need_resched() triggered while queued |
| |
On Thursday, 6 February 2014 22:10:01 UTC+8, Peter Zijlstra wrote: > On Wed, Feb 05, 2014 at 04:44:34PM -0500, Waiman Long wrote: > > I have an alternative way of breaking out of the MCS lock waiting queue when > > need_resched() is set. I overload the locked flag to indicate a skipped node > > if negative. > > I'm not quite seeing how it works (then again, I've not really read the > patch carefully). > > Suppose you break out; at that point you get queued and go to sleep. > Suppose you got woken up while you MCS entry is still 'pending' and > magically win the race and acquire the lock. > > At that point your MCS entry can be re-used while its still part of the > list. > > Its a fantastically small race window, but I don't see anything that > makes it impossible. > > > I run the patch through the AIM7 high-systime workload on a > > 4-socket server and it seemed to run fine. > > How do people run this AIM7 piece of shit? I let it run for over an hour > and it generated exactly 0 numbers, it just sits there eating cpu-time > and creating a racket from my pantry.
Without any better advice, I was building the OSDL AIM7 [1], tweaking DISKDIR in data/reaim.config and running (eg on a 384-core setup): $ src/reaim -c data/reaim.config -f data/workfile.compute -i 16 -e 384
Thanks, Daniel
[1] http://sourceforge.net/projects/re-aim-7/ -- Daniel J Blueman Principal Software Engineer, Numascale
| |