Thread (60 messages) 60 messages, 8 authors, 2024-10-28

Re: [PATCH v1 02/14] futex: Extend the FUTEX2 flags

From: Thomas Gleixner <hidden>
Date: 2023-07-31 20:52:35
Also in: linux-arch, linux-mm, lkml

On Mon, Jul 31 2023 at 19:35, Peter Zijlstra wrote:
On Mon, Jul 31, 2023 at 07:16:29PM +0200, Thomas Gleixner wrote:
quoted
On Mon, Jul 31 2023 at 18:11, Thomas Gleixner wrote:
quoted
On Fri, Jul 21 2023 at 12:22, Peter Zijlstra wrote:
quoted
-#define FUTEX2_MASK (FUTEX2_32 | FUTEX2_PRIVATE)
+#define FUTEX2_MASK (FUTEX2_64 | FUTEX2_PRIVATE)
 
 /**
  * futex_parse_waitv - Parse a waitv array from userspace
@@ -207,7 +207,12 @@ static int futex_parse_waitv(struct fute
 		if ((aux.flags & ~FUTEX2_MASK) || aux.__reserved)
 			return -EINVAL;
With the above aux.flags with FUTEX2_32 set will result in -EINVAL. I
don't think that's intentional.
Also if you allow 64bit wide futexes, how is that supposed to work with
the existing code, which clearly expects a 32bit uval throughout the
place?
Not allowed yet, these patches only allow 8,16,32. I still need to audit
the whole futex core and do 'u32 -> unsigned long' (and everything else
that follows from that), and only when that's done can the futex2
syscalls allow FUTEX2_64 on 64bit archs.

So for now, these patches:

  - add the FUTEX2_64 flag,
  - add 'unsigned long' interface such that
    64bit can potentiall use it,
  - explicitly disallow having it set.
I figured that out very late. This flags having a size fields which
claims to be flags had confused the hell out of me.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help