Re: [PATCH RFC bpf-next 2/2] selftests/bpf: Add LoongArch support for get_preempt_count()
Ihor Solodrai <[email protected]> Fri, 15 May 2026 10:45:22 -0700
| Newsgroups | dev.linux.lists.sashiko,org.kernel.vger.bpf |
|---|---|
| Message-ID | <[email protected]> |
On 4/20/26 5:47 PM, Tiezhu Yang wrote: > On 2026/4/20 下午9:35, [email protected] wrote: >> Sashiko AI review found 1 potential issue(s): >> - [High] BPF programs including `bpf_experimental.h` will fail to compile on LoongArch due to a non-existent `thread_info` field in `struct task_struct`. >> -- >> >> commit 82453686fe5eacd9f219e2a050dc016b297cfc79 >> Author: Tiezhu Yang <[email protected]> >> >> selftests/bpf: Add LoongArch support for get_preempt_count() >> >> This commit adds LoongArch support for get_preempt_count() in the BPF >> experimental helpers. It enables bpf_in_interrupt() and related macros to >> work properly on LoongArch systems. >> >>> diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing/selftests/bpf/bpf_experimental.h >>> index e5c039bc44cb4..5847bbf12d240 100644 >>> --- a/tools/testing/selftests/bpf/bpf_experimental.h >>> +++ b/tools/testing/selftests/bpf/bpf_experimental.h >>> @@ -507,6 +507,8 @@ static inline int get_preempt_count(void) >>> return bpf_get_lowcore()->preempt_count; >>> #elif defined(bpf_target_riscv) >>> return bpf_get_current_task_btf()->thread_info.preempt_count; >>> +#elif defined(bpf_target_loongarch) >>> + return bpf_get_current_task_btf()->thread_info.preempt_count; >> >> Will this compile successfully on LoongArch? >> >> Since LoongArch does not select CONFIG_THREAD_INFO_IN_TASK, struct >> thread_info is allocated on the kernel stack rather than being embedded >> within struct task_struct. Because of this, the generated BTF and vmlinux.h >> for LoongArch will not contain a thread_info field in task_struct. >> >> Could this lead to a compiler error indicating that there is no member named >> thread_info in struct task_struct when building BPF selftests? > > As mentioned in the cover letter, it needs to apply the kernel patch > "LoongArch: Implement CONFIG_THREAD_INFO_IN_TASK" [1] before testing. Hi Tiezhu, I think it makes sense to include the selftests changes in the series implementing CONFIG_THREAD_INFO_IN_TASK for loongarch [1]. With respect to riscv part of this, I suggest you drop it unless you have the means to run the tests. Landing without any testing is silly. Also I think you may drop the RFC tag. AFAIU you're trying to bring loongarch to parity with mainstream arch-es, and that shouldn't be controversial. Thanks. [1] https://lore.kernel.org/bpf/[email protected]/ > > [1] https://lore.kernel.org/loongarch/[email protected]/ > > Thanks, > Tiezhu >