Thread (3 messages) read the whole thread 3 messages, 2 authors, 2023-11-14

Re: Several tst-robust* tests time out with recent Linux kernel

From: Peter Zijlstra <peterz@infradead.org>
Date: 2023-11-14 15:31:15
Also in: linux-arch, linux-mm, lkml
Subsystem: futex subsystem, the rest · Maintainers: Thomas Gleixner, Ingo Molnar, Linus Torvalds

Possibly related (same subject, not in this thread)

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:
quoted
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@infradead.org [off-list ref]
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) [off-list ref]
    Reviewed-by: Thomas Gleixner [off-list ref]
    Reviewed-by: Andr<C3><A9> Almeida [off-list ref]
    Link: https://lore.kernel.org/r/20230921105247.722140574@noisy.programming.kicks-ass.net (local)
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);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help