Re: [PATCH RESEND v7 4/6] arm64: futex: refactor futex atomic operation
From: Yeoreum Yun <hidden>
Date: 2025-09-15 10:33:21
Also in:
kvmarm, lkml
Hi Catalin,
On Sat, Aug 16, 2025 at 04:19:27PM +0100, Yeoreum Yun wrote:quoted
diff --git a/arch/arm64/include/asm/futex.h b/arch/arm64/include/asm/futex.h index bc06691d2062..ab7003cb4724 100644 --- a/arch/arm64/include/asm/futex.h +++ b/arch/arm64/include/asm/futex.h@@ -7,17 +7,21 @@ #include <linux/futex.h> #include <linux/uaccess.h> +#include <linux/stringify.h> #include <asm/errno.h> -#define FUTEX_MAX_LOOPS 128 /* What's the largest number you can think of? */ +#define LLSC_MAX_LOOPS 128 /* What's the largest number you can think of? */I just noticed - you might as well leave the name as is here, especially if in patch 6 you align down address and use CAS on a 64-bit value as per Will's comment (and it's no longer LLSC). I think renaming this is unnecessary.
Okay. I'll restore to use origin name.
But I think LSUI wouldn't be used with CAS according to patch 6's
comments from you and additionally i think
chaning the CAS would make a failure because of
change of unrelated field. i.e)
struct user_structure{
uint32 futex;
uint32 some_value;
};
In this case, the change of some_value from user side could make a
failure of futex atomic operation.
So I think it would be better to keep the current LLSC implementation
in LSUI.
Thanks.
--
Sincerely,
Yeoreum Yun