mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02: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:
parent
eae0693d13
commit
edc5cb8b2b
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user