[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231114153100.GY8262@noisy.programming.kicks-ass.net>
Date: Tue, 14 Nov 2023 16:31:00 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Xi Ruoyao <xry111@...111.site>
Cc: libc-alpha@...rceware.org, linux-kernel@...r.kernel.org,
linux-api@...r.kernel.org, linux-mm@...ck.org,
linux-arch@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
André Almeida <andrealmeid@...lia.com>
Subject: Re: Several tst-robust* tests time out with recent Linux kernel
On Tue, Nov 14, 2023 at 05:46:43PM +0800, Xi Ruoyao wrote:
> On Tue, 2023-11-14 at 02:33 +0800, Xi Ruoyao wrote:
> > Hi,
> >
> > With Linux 6.7.0-rc1, several tst-robust* tests time out on x86_64:
> >
> > FAIL: nptl/tst-robust1
> > FAIL: nptl/tst-robust3
> > FAIL: nptl/tst-robust4
> > FAIL: nptl/tst-robust6
> > FAIL: nptl/tst-robust7
> > FAIL: nptl/tst-robust9
> >
> > This does not happen with Linux 6.6.0. Do you have some clue about
> > it?
>
> Bisected to the kernel commit:
>
> commit 5694289ce183bc3336407a78c8c722a0b9208f9b (HEAD)
> Author: peterz@...radead.org <peterz@...radead.org>
> Date: Thu Sep 21 12:45:08 2023 +0200
>
> futex: Flag conversion
>
> Futex has 3 sets of flags:
>
> - legacy futex op bits
> - futex2 flags
> - internal flags
>
> Add a few helpers to convert from the API flags into the internal
> flags.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
> Reviewed-by: Thomas Gleixner <tglx@...utronix.de>
> Reviewed-by: Andr<C3><A9> Almeida <andrealmeid@...lia.com>
> Link: https://lore.kernel.org/r/20230921105247.722140574@noisy.programming.kicks-ass.net
I can confirm. I'm also going crazy trying to figure out how this
happens.
The below is sufficient to make it unhappy...
/me most puzzled
---
diff --git a/kernel/futex/futex.h b/kernel/futex/futex.h
index b5379c0e6d6d..1a1f9301251f 100644
--- a/kernel/futex/futex.h
+++ b/kernel/futex/futex.h
@@ -17,7 +17,7 @@
* restarts.
*/
#ifdef CONFIG_MMU
-# define FLAGS_SHARED 0x01
+# define FLAGS_SHARED 0x10
#else
/*
* NOMMU does not have per process address space. Let the compiler optimize
@@ -25,8 +25,8 @@
*/
# define FLAGS_SHARED 0x00
#endif
-#define FLAGS_CLOCKRT 0x02
-#define FLAGS_HAS_TIMEOUT 0x04
+#define FLAGS_CLOCKRT 0x20
+#define FLAGS_HAS_TIMEOUT 0x40
#ifdef CONFIG_FAIL_FUTEX
extern bool should_fail_futex(bool fshared);
Powered by blists - more mailing lists