Skip to content

[PW_SID:1088022] futex: Use runtime constants for futex_hash computation#1848

Closed
linux-riscv-bot wants to merge 9 commits into
workflow__riscv__fixesfrom
pw1088022
Closed

[PW_SID:1088022] futex: Use runtime constants for futex_hash computation#1848
linux-riscv-bot wants to merge 9 commits into
workflow__riscv__fixesfrom
pw1088022

Conversation

@linux-riscv-bot
Copy link
Copy Markdown

PR for series 1088022 applied to workflow__riscv__fixes

Name: futex: Use runtime constants for futex_hash computation
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1088022
Version: 4

Linux RISC-V bot and others added 9 commits April 30, 2026 05:50
Futex hash computation requires a mask operation with read-only after
init data that will be converted to a runtime constant in the subsequent
commit.

Introduce runtime_const_mask_32 to further optimize the mask operation
in the futex hash computation hot path.

  [ prateek: Broke off the x86 chunk, commit message. ]

Link: https://patch.msgid.link/20260227161841.GH606826@noisy.programming.kicks-ass.net
Not-yet-signed-off-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The current scheme to directly patch the kernel text for runtime
constants runs into the following issue with futex adapted to using
runtime constants on arm64:

  Unable to handle kernel write to read-only memory at virtual address ...

The pc points to the *p assignment in the following call chain:

  futex_init()
    runtime_const_init(shift, __futex_shift)
      __runtime_fixup_shift()
        *p = cpu_to_le32(insn);

which suggests that core_initcall() is too late to patch the kernel text
directly unlike the "d_hash_shift" which is initialized during
vfs_caches_init_early() before the protections are in place.

Use aarch64_insn_patch_text_nosync() to patch the runtime constants
instead of doing it directly to allow runtime_const_init() slightly
later into the boot.

Since aarch64_insn_patch_text_nosync() calls caches_clean_inval_pou()
internally, __runtime_fixup_caches() ends up being redundant.
runtime_const_init() are rare and the overheads of multiple calls to
caches_clean_inval_pou() instead of batching them together should be
negligible in practice.

The cpu_to_le32() conversion of instruction isn't necessary since it is
handled later in the aarch64_insn_patch_text_nosync() call-chain:

  aarch64_insn_patch_text_nosync(addr, insn)
    aarch64_insn_write(addr, insn)
      __aarch64_insn_write(addr, cpu_to_le32(insn))

Sashiko noted that aarch64_insn_patch_text_nosync() does not expect a
lm_alias() address and Catalin suggested it is safe to drop the
lm_alias() for runtime patching since the kernel text is readable. The
address passed to fixup function is interpreted as a __le32 and
dereferenced as is to read the opcode at the patch site.

No functional changes are intended.

Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Futex hash computation requires a mask operation with read-only after
init data that will be converted to a runtime constant in the subsequent
commit.

Introduce runtime_const_mask_32 to further optimize the mask operation
in the futex hash computation hot path. GCC generates a:

  movz  w1, #lo16, lsl #0     // w1 = bits [15:0]
  movk  w1, #hi16, lsl #16    // w1 = full 32-bit value
  and   w0, w0, w1	      // w0 = w0 & w1

pattern to tackle arbitrary 32-bit masks and the same was also suggested
by Claude which is implemented here. The final (__ret & mask) operation
is intentiaonally placed outside of asm block to allow compilers to
further optimize it if possible.

__runtime_fixup_ptr() already patches a "movz, + movk lsl #16" sequence
which has been reused to patch the same sequence for
__runtime_fixup_mask().

Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Define the placeholder used for lui + addi[w] patching sequence as
RUNTIME_MAGIC and use that instead of open coding the constants in the
inline assembly.

No functional changes intended.

Suggested-by: Guo Ren <guoren@kernel.org>
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Futex hash computation requires a mask operation with read-only after
init data that will be converted to a runtime constant in the subsequent
commit.

Introduce runtime_const_mask_32 to further optimize the mask operation
in the futex hash computation hot path. GCC generates a:

  lui   a0, 0x12346       # upper; +0x800 then >>12 for correct rounding
  addi  a0, a0, 0x678     # lower 12 bits
  and   a1, a1, a0        # a1 = a1 & a0

pattern to tackle arbitrary 32-bit masks and the same was also suggested
by Claude which is implemented here. The final (__ret & val) operation
is intentionally placed outside of asm block to allow compilers to
further optimize it if possible.

__runtime_fixup_ptr() already patches a "lui + addi" sequence which has
been reused to patch the same sequence for __runtime_fixup_mask().

Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Futex hash computation requires a mask operation with read-only after
init data that will be converted to a runtime constant in the subsequent
commit.

Introduce runtime_const_mask_32 to further optimize the mask operation
in the futex hash computation hot path.

GCC generates a:

  nilf %r1,<imm32>

to tackle arbitrary 32-bit masks and the same is implemented here.
Immediate patching pattern for __runtime_fixup_mask() has been adopted
from __runtime_fixup_ptr().

Acked-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add a dummy runtime_const_mask_32() for all the architectures that do
not support runtime-const.

Link: https://patch.msgid.link/20260227161841.GH606826@noisy.programming.kicks-ass.net
Not-yet-signed-off-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Runtime constify the read-only after init data  __futex_shift(shift_32),
__futex_mask(mask_32), and __futex_queues(ptr) used in __futex_hash()
hot path to avoid referencing global variable.

This also allows __futex_queues to be allocated dynamically to
"nr_node_ids" slots instead of reserving config dependent MAX_NUMNODES
(1 << CONFIG_NODES_SHIFT) worth of slots upfront.

Runtime constants are initialized before their first access and
runtime_const_init() provides necessary barrier to ensure subsequent
accesses are not reordered against their initialization.

No functional changes intended.

  [ prateek: Dynamically allocate __futex_queues, mark the global data
    __ro_after_init since they are constified after futex_init(). ]

Link: https://patch.msgid.link/20260227161841.GH606826@noisy.programming.kicks-ass.net
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> # MAX_NUMNODES bloat
Not-yet-signed-off-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 138.99 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1019.67 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1392.18 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 25.71 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 26.54 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 1.75 seconds
Result: WARNING
Output:

CHECK: spaces preferred around that '+' (ctx:VxV)
#32: FILE: arch/x86/include/asm/runtime-const.h:45:
+	typeof(0u+(val)) __ret = (val);				\
 	         ^

total: 0 errors, 0 warnings, 1 checks, 26 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit f3c63cf3b826 ("x86/runtime-const: Introduce runtime_const_mask_32()") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 0 warnings, 1 checks, 26 lines checked
CHECK: spaces preferred around that '+' (ctx:VxV)


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 86.31 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
kdoc
Desc: Detects for kdoc errors
Duration: 0.87 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
module-param
Desc: Detect module_param changes
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v4,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 1.31 seconds
Result: ERROR
Output:

Commit f3c63cf3b826 ("x86/runtime-const: Introduce runtime_const_mask_32()")
	author Signed-off-by missing
	author email:    peterz@infradead.org
	committer email: linux.riscv.bot@gmail.com
	Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
	Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>

Errors in tree with Signed-off-by, please fix!


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 138.52 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1020.84 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1392.79 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 26.43 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 27.16 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 1.85 seconds
Result: WARNING
Output:

CHECK: Consider using #include <linux/text-patching.h> instead of <asm/text-patching.h>
#63: FILE: arch/arm64/include/asm/runtime-const.h:10:
+#include <asm/text-patching.h>

total: 0 errors, 0 warnings, 1 checks, 45 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 4263e592bc43 ("arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 0 warnings, 1 checks, 45 lines checked
CHECK: Consider using #include <linux/text-patching.h> instead of <asm/text-patching.h>


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 87.72 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 2: "[v4,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
kdoc
Desc: Detects for kdoc errors
Duration: 0.89 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 6: "[v4,6/8] s390/runtime-const: Introduce runtime_const_mask_32()"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 6: "[v4,6/8] s390/runtime-const: Introduce runtime_const_mask_32()"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.32 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 139.86 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1063.94 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1446.19 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 25.72 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 27.04 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 1.89 seconds
Result: WARNING
Output:

CHECK: spaces preferred around that '&' (ctx:VxV)
#25: FILE: include/asm-generic/runtime-const.h:13:
+#define runtime_const_mask_32(val, sym) ((u32)(val)&(sym))
                                                    ^

total: 0 errors, 0 warnings, 1 checks, 7 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 925366ab16d1 ("asm-generic/runtime-const: Add dummy runtime_const_mask_32()") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 0 warnings, 1 checks, 7 lines checked
CHECK: spaces preferred around that '&' (ctx:VxV)


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 86.57 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
kdoc
Desc: Detects for kdoc errors
Duration: 0.87 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
module-param
Desc: Detect module_param changes
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 7: "[v4,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 1.37 seconds
Result: ERROR
Output:

Commit 925366ab16d1 ("asm-generic/runtime-const: Add dummy runtime_const_mask_32()")
	author Signed-off-by missing
	author email:    peterz@infradead.org
	committer email: linux.riscv.bot@gmail.com
	Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
	Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>

Errors in tree with Signed-off-by, please fix!


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 139.59 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1165.21 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1713.73 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 25.54 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 26.92 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 2.01 seconds
Result: WARNING
Output:

WARNING: Reported-by: should be immediately followed by Closes: with a URL to the report
#24: 
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> # MAX_NUMNODES bloat
Not-yet-signed-off-by: Peter Zijlstra <peterz@infradead.org>

WARNING: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants
#128: FILE: kernel/futex/core.c:1996:
+	BUG_ON(!futex_queues());

total: 0 errors, 2 warnings, 0 checks, 98 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 2e1e8e8ac02a ("futex: Use runtime constants for __futex_hash() hot path") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 2 warnings, 0 checks, 98 lines checked
WARNING: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants
WARNING: Reported-by: should be immediately followed by Closes: with a URL to the report


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 86.27 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
kdoc
Desc: Detects for kdoc errors
Duration: 0.88 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
module-param
Desc: Detect module_param changes
Duration: 0.27 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 8: "[v4,8/8] futex: Use runtime constants for __futex_hash() hot path"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 1.40 seconds
Result: ERROR
Output:

Commit 2e1e8e8ac02a ("futex: Use runtime constants for __futex_hash() hot path")
	author Signed-off-by missing
	author email:    peterz@infradead.org
	committer email: linux.riscv.bot@gmail.com
	Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
	Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>

Errors in tree with Signed-off-by, please fix!


@linux-riscv-bot linux-riscv-bot force-pushed the workflow__riscv__fixes branch 2 times, most recently from f190ec6 to 2c3b264 Compare May 2, 2026 08:13
@linux-riscv-bot linux-riscv-bot deleted the pw1088022 branch May 8, 2026 02:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants