Re: [RFC][PATCH v2 5/5] mutex: Give spinners a chance to spin_on_ownerif need_resched() triggered while queued

From: Daniel J Blueman
Date: Thu Feb 06 2014 - 09:52:57 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/