[PATCH RFC bpf-next 1/2] selftests/bpf: Add riscv support for get_preempt_count()
Tiezhu Yang
yangtiezhu at loongson.cn
Mon Apr 20 04:15:15 PDT 2026
There is no riscv support for get_preempt_count() currently and its
fallback path always returns 0, just add it so that bpf_in_interrupt(),
bpf_in_nmi(), bpf_in_hardirq(), bpf_in_serving_softirq(), bpf_in_task()
works for riscv as well. With this patch, "./test_progs -t exe_ctx"
should pass on riscv.
Signed-off-by: Tiezhu Yang <yangtiezhu at loongson.cn>
---
tools/testing/selftests/bpf/bpf_experimental.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing/selftests/bpf/bpf_experimental.h
index 2234bd6bc9d3..e5c039bc44cb 100644
--- a/tools/testing/selftests/bpf/bpf_experimental.h
+++ b/tools/testing/selftests/bpf/bpf_experimental.h
@@ -505,6 +505,8 @@ static inline int get_preempt_count(void)
return bpf_get_current_task_btf()->thread_info.preempt_count;
#elif defined(bpf_target_s390)
return bpf_get_lowcore()->preempt_count;
+#elif defined(bpf_target_riscv)
+ return bpf_get_current_task_btf()->thread_info.preempt_count;
#endif
return 0;
}
@@ -515,6 +517,7 @@ static inline int get_preempt_count(void)
* * arm64
* * powerpc64
* * s390x
+ * * riscv
*/
static inline int bpf_in_interrupt(void)
{
@@ -536,6 +539,7 @@ static inline int bpf_in_interrupt(void)
* * arm64
* * powerpc64
* * s390x
+ * * riscv
*/
static inline int bpf_in_nmi(void)
{
@@ -548,6 +552,7 @@ static inline int bpf_in_nmi(void)
* * arm64
* * powerpc64
* * s390x
+ * * riscv
*/
static inline int bpf_in_hardirq(void)
{
@@ -560,6 +565,7 @@ static inline int bpf_in_hardirq(void)
* * arm64
* * powerpc64
* * s390x
+ * * riscv
*/
static inline int bpf_in_serving_softirq(void)
{
@@ -580,6 +586,7 @@ static inline int bpf_in_serving_softirq(void)
* * arm64
* * powerpc64
* * s390x
+ * * riscv
*/
static inline int bpf_in_task(void)
{
--
2.42.0
More information about the linux-riscv
mailing list