Re: Help requested: futex(..., FUTEX_WAIT_PRIVATE, ...) returns EPERM

From: Thomas Gleixner
Date: Wed Nov 13 2019 - 04:04:22 EST


On Tue, 12 Nov 2019, Harris, Robert wrote:

> I am investigating an issue on 4.9.184 in which futex() returns EPERM
> intermittently for
>
> futex(uaddr, FUTEX_WAIT_PRIVATE, val, &timeout, NULL, 0)
>
> The failure affects an application in an AWS lambda; traditional
> debugging approaches vary from difficult to impossible. I cannot
> reproduce the problem at will, instrument the kernel, install a new
> kernel or get an application core dump.
>
> Understanding the circumstances under which EPERM can be returned for
> FUTEX_WAIT_PRIVATE would be useful but it is not a documented failure
> mode. I have spent some time looking through futex.c but have not
> found anything yet. I would be grateful for a hint from someone more
> knowledgeable.

sys_futex(FUTEX_WAIT_PRIVATE) does not return -EPERM. Only the PI variants
do that.

Thanks,

tglx