Skip to content

[PW_SID:1118643] futex: Use runtime constants for futex_hash computation#2166

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

[PW_SID:1118643] futex: Use runtime constants for futex_hash computation#2166
linux-riscv-bot wants to merge 9 commits into
workflow__riscv__fixesfrom
pw1118643

Conversation

@linux-riscv-bot

Copy link
Copy Markdown

PR for series 1118643 applied to workflow__riscv__fixes

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

Linux RISC-V bot and others added 9 commits June 25, 2026 20:36
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.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
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. Since all the current use-cases
are of the form GENMASK(n, 0), with n > 0, a single:

  ubfx  w0, w0, #0, #widthm1     // w0 = w0 [widthm1:0]

instruction is used for amd64 to improve instruction dinsity and
performance.

"Arm A-profile A64 Instruction Set Architecture" manual, Sec.
"A64 -- Base Instructions" [1] for UBFX instruction highlights the
immediate "width" is encoded as width minus 1 in imms (Bits [15:10])
which is patched by __runtime_fixup_mask() once the mask is known.

If a future use case arises that needs to tackle arbitrary mask,
consider using:

  movz  w1, #lo16, lsl #0
  movk  w1, #hi16, lsl #16

to patch the 32-bit mask in the asm block and return "__ret & (val)"
from runtime_const_mask_32() which allows compiler to further optimize
the logical and operation. __runtime_fixup_ptr() already patches a
"movz, + movk lsl #16" sequence which can be reused when the need
arises.

A possible implementation for this alternate scheme can be found at [2].

Assisted-by: Claude:claude-sonnet-4-6
Suggested-by: Samuel Holland <samuel.holland@sifive.com>
Suggested-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
Link: https://developer.arm.com/documentation/ddi0602/2026-03/Base-Instructions/ [1]
Link: https://lore.kernel.org/lkml/20260430094730.31624-4-kprateek.nayak@amd.com/ [2]
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>
Reviewed-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
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. Since all the current use-cases
are of the form GENMASK(n, 0), with n > 0, following sequence:

  srli a0, a1, imm
  slli a0, a0, imm

is used for RISC-V where imm = (31 - width) to improve instruction
density and performance.

"The RISC-V Instruction Set Manual, Volume I - Unprivileged
Architecture" [1] Sec. 2.4.1 "Integer Register-Immediate Instructions"
notes the immediate shift for SRLI and SLLI are 5 bits wide starting at
bit #10. __runtime_fixup_shift() is reused to patch the immediate shifts
for the two instructions.

If a future use case arises that needs to tackle arbitrary mask,
consider using:

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

to patch the 32-bit mask in the asm block and return "__ret & (val)"
from runtime_const_mask_32() which allows compiler to further optimize
the logical and operation. __runtime_fixup_ptr() already patches a
lui + addi sequence which can be reused when the need arises.

A possible implementation for this alternate scheme can be found at [2].

Assisted-by: Claude:claude-sonnet-4-5
Suggested-by: Samuel Holland <samuel.holland@sifive.com>
Suggested-by: Charlie Jenkins <thecharlesjenkins@gmail.com>
Link: https://docs.riscv.org/reference/isa/_attachments/riscv-unprivileged.pdf [1]
Link: https://lore.kernel.org/lkml/20260430094730.31624-6-kprateek.nayak@amd.com/ [2]
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: "[v5,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 155.76 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v5,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: 1159.12 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v5,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: 1559.53 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v5,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: 30.97 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v5,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 2.02 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 483176702398 ("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: "[v5,1/8] x86/runtime-const: Introduce runtime_const_mask_32()"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 86.50 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

Commit 483176702398 ("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: "[v5,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 150.81 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[v5,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: 1171.93 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[v5,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: 1459.20 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[v5,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: 30.32 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[v5,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: 31.20 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

CHECK: Consider using #include <linux/text-patching.h> instead of <asm/text-patching.h>
#64: 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 09ed5875d61c ("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: "[v5,2/8] arm64/runtime-const: Use aarch64_insn_patch_text_nosync() for patching"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 89.44 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[v5,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.41 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,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: 1213.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,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: 1512.99 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,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: 29.35 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,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: 31.21 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 2.30 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 7d56cc9757ce ("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: "[v5,7/8] asm-generic/runtime-const: Add dummy runtime_const_mask_32()"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 85.50 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,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.45 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 7: "[v5,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.58 seconds
Result: ERROR
Output:

Commit 7d56cc9757ce ("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: "[v5,8/8] futex: Use runtime constants for __futex_hash() hot path"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 152.35 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 8: "[v5,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: 1481.39 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 8: "[v5,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: 1874.51 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 8: "[v5,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: 29.93 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 8: "[v5,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: 31.15 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

WARNING: Reported-by: should be immediately followed by Closes: or Link: 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
#127: FILE: kernel/futex/core.c:2030:
+	BUG_ON(!futex_queues());

total: 0 errors, 2 warnings, 0 checks, 97 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 1ea36550057d ("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, 97 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: or Link: with a URL to the report


@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 8: "[v5,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.53 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

@linux-riscv-bot

Copy link
Copy Markdown
Author

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

Commit 1ea36550057d ("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 89be0ce to dc5ff20 Compare July 7, 2026 03:25
@linux-riscv-bot
linux-riscv-bot deleted the pw1118643 branch July 8, 2026 01:56
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