Re: ipc,sem: sysv semaphore scalability

From: Linus Torvalds
Date: Fri Mar 29 2013 - 23:46:17 EST


On Fri, Mar 29, 2013 at 8:02 PM, Emmanuel Benisty <benisty.e@xxxxxxxxx> wrote:
>
> Then I start building a random package and the problems start. They
> may also happen without compiling but this seems to trigger the bug
> quite quickly.

I suspect it's about preemption, and the build just results in enough
scheduling load that you start hitting whatever race there is.

> Anyway, some progress here, I hope: dmesg seems to be
> willing to reveal some secrets (using some pastebin service since this
> is pretty big):
>
> https://gist.github.com/anonymous/5275120

That looks like exactly the exit_sem() bug that Davidlohr was talking
about, where the

/* exit_sem raced with IPC_RMID, nothing to do */
if (IS_ERR(sma))
continue;

should be moved to *before* the

sem_lock(sma, NULL, -1);

call. And apparently the bug I had found is already fixed in -next.

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