mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
selftests/bpf: Add get_preempt_count() support for LoongArch
There is no LoongArch 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() work for LoongArch as well. The latest kernels select CONFIG_THREAD_INFO_IN_TASK, it can just read preempt_count from the thread_info which is embedded within task_struct. With this patch, "./test_progs -t exe_ctx" passes on LoongArch. Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
This commit is contained in:
@@ -423,6 +423,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_loongarch)
|
||||
return bpf_get_current_task_btf()->thread_info.preempt_count;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@@ -433,6 +435,7 @@ static inline int get_preempt_count(void)
|
||||
* * arm64
|
||||
* * powerpc64
|
||||
* * s390x
|
||||
* * loongarch
|
||||
*/
|
||||
static inline int bpf_in_interrupt(void)
|
||||
{
|
||||
@@ -454,6 +457,7 @@ static inline int bpf_in_interrupt(void)
|
||||
* * arm64
|
||||
* * powerpc64
|
||||
* * s390x
|
||||
* * loongarch
|
||||
*/
|
||||
static inline int bpf_in_nmi(void)
|
||||
{
|
||||
@@ -466,6 +470,7 @@ static inline int bpf_in_nmi(void)
|
||||
* * arm64
|
||||
* * powerpc64
|
||||
* * s390x
|
||||
* * loongarch
|
||||
*/
|
||||
static inline int bpf_in_hardirq(void)
|
||||
{
|
||||
@@ -478,6 +483,7 @@ static inline int bpf_in_hardirq(void)
|
||||
* * arm64
|
||||
* * powerpc64
|
||||
* * s390x
|
||||
* * loongarch
|
||||
*/
|
||||
static inline int bpf_in_serving_softirq(void)
|
||||
{
|
||||
@@ -498,6 +504,7 @@ static inline int bpf_in_serving_softirq(void)
|
||||
* * arm64
|
||||
* * powerpc64
|
||||
* * s390x
|
||||
* * loongarch
|
||||
*/
|
||||
static inline int bpf_in_task(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user