Skip to content

[PW_SID:1066741] [bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE#1609

Closed
linux-riscv-bot wants to merge 1 commit into
workflow__riscv__fixesfrom
pw1066741
Closed

[PW_SID:1066741] [bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE#1609
linux-riscv-bot wants to merge 1 commit into
workflow__riscv__fixesfrom
pw1066741

Conversation

@linux-riscv-bot
Copy link
Copy Markdown

PR for series 1066741 applied to workflow__riscv__fixes

Name: [bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1066741
Version: 2

kmalloc_nolock always fails for architectures that lack cmpxchg16b.
For example, this causes bpf_task_storage_get with flag
BPF_LOCAL_STORAGE_GET_F_CREATE to fails on riscv64 6.19 kernel.

Fix it by enabling use_kmalloc_nolock only when HAVE_CMPXCHG_DOUBLE.
But leave the PREEMPT_RT case as is because it requires kmalloc_nolock
for correctness. Add a comment about this limitation that architecture's
lack of CMPXCHG_DOUBLE combined with PREEMPT_RT could make
bpf_local_storage_alloc always fail.

Fixes: f484f4a ("bpf: Replace bpf memory allocator with kmalloc_nolock() in local storage")
Cc: stable@vger.kernel.org
Signed-off-by: Levi Zim <rsworktech@outlook.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 137.90 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1129.44 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1647.46 seconds
Result: ERROR
Output:

Redirect to /build/tmp.Sr8lDZdUpS and /build/tmp.973zDtgd1C
Tree base:
e3d6c9bdc84d3 ("Adding CI files")
Building the whole tree with the patch
Building the tree before the patch
Building the tree with the patch
New errors added:
--- /build/tmp.EcHUHFLoyG	2026-03-14 16:49:43.841376431 +0000
+++ /build/tmp.Pb9kAct117	2026-03-14 16:49:43.844376404 +0000
@@ -117,0 +118 @@
+     12 /build/tmpm0w1keqn/include/linux/bpf_local_storage.h:22:19: warning: 'KMALLOC_NOLOCK_SUPPORTED' defined but not used [-Wunused-const-variable=]
Per-file breakdown
error/warning file pre:
pre: 118 post: 130



real	21m6.455s
user	757m43.075s
sys	127m59.894s

real	3m4.956s
user	5m2.408s
sys	2m19.632s

real	3m5.926s
user	4m23.227s
sys	2m16.733s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 26.77 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 28.04 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 1.37 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 83.79 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 1.10 seconds
Result: ERROR
Output:

Detected static functions without inline keyword in header files:
 
+static const bool KMALLOC_NOLOCK_SUPPORTED = IS_ENABLED(CONFIG_HAVE_CMPXCHG_DOUBLE);
+
Detected static functions without inline keyword in header files: 1


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
kdoc
Desc: Detects for kdoc errors
Duration: 0.88 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
module-param
Desc: Detect module_param changes
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.27 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[bpf,v2] bpf: do not use kmalloc_nolock when !HAVE_CMPXCHG_DOUBLE"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.29 seconds
Result: PASS

@linux-riscv-bot linux-riscv-bot deleted the pw1066741 branch March 14, 2026 17:04
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