Re: Serious problem with ticket spinlocks on ia64

From: Petr Tesarik
Date: Fri Aug 27 2010 - 10:40:24 EST


On Friday 27 of August 2010 16:31:35 Hedi Berriche wrote:
> On Fri, Aug 27, 2010 at 15:09 Petr Tesarik wrote:
> | On Friday 27 of August 2010 15:48:02 Hedi Berriche wrote:
> | > One more fact, the problem was introduced by commit
> | >
> | > commit 9d40ee200a527ce08ab8c793ba8ae3e242edbb0e
> | > Author: Tony Luck <tony.luck@xxxxxxxxx>
> | > Date: Wed Oct 7 10:54:19 2009 -0700
> | >
> | > [IA64] Squeeze ticket locks back into 4 bytes.
> | >
> | > Reverting the patch makes the problem go away.
> | >
> | > IOW, and as far as testing shows, the first incarnation of the ticket
> | > locks implementation on IA64 (commit 2c8696), the one that used 8
> | > bytes, does not exhibit this problem.
> |
> | I wouldn't be so sure about it. Given that I have only observed the
> | problem when the spinlock value wraps around, then an 8-byte spinlock
> | might only need much more time to trigger the bug.
>
> That's a possibility and that's why I said "as far as testing shows".
>
> That said, I'm letting my already over 36 hours run carry on chewing CPU
> time, and see if it will eventually trip the same problem seen with 4-byte
> ticket locks.

Hm, this doesn't sound like a viable approach. Since the siglock gets
initialized to 0 when a new process is started, it may never actually wrap
around.

I would rather attach a SystemTap probe somewhere during process fork and add
a bias to the siglock. That should work fine. Let me knock up the SystemTap
script...

Petr
--
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/