
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/ICA1GK -------------------------------- Which is to get statistics about {soft,}irq and all catagories of vtime for a specific CPU. Signed-off-by: GONG Ruiqi <gongruiqi1@huawei.com> --- kernel/bpf-rvi/common_kfuncs.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kernel/bpf-rvi/common_kfuncs.c b/kernel/bpf-rvi/common_kfuncs.c index c79c89735edc..65f33ceadfb4 100644 --- a/kernel/bpf-rvi/common_kfuncs.c +++ b/kernel/bpf-rvi/common_kfuncs.c @@ -139,6 +139,22 @@ __bpf_kfunc unsigned int bpf_nr_iowait(void) return nr_iowait(); } +/* Kernel statistics for CPU accounting */ +__bpf_kfunc unsigned int bpf_kstat_softirqs_cpu(unsigned int irq, int cpu) +{ + return kstat_softirqs_cpu(irq, cpu); +} + +__bpf_kfunc unsigned long bpf_kstat_cpu_irqs_sum(unsigned int cpu) +{ + return kstat_cpu_irqs_sum(cpu); +} + +__bpf_kfunc void bpf_kcpustat_cpu_fetch(struct kernel_cpustat *dst, int cpu) +{ + kcpustat_cpu_fetch(dst, cpu); +} + BTF_SET8_START(bpf_common_kfuncs_ids) BTF_ID_FLAGS(func, bpf_mem_cgroup_from_task, KF_RET_NULL | KF_RCU) BTF_ID_FLAGS(func, bpf_task_active_pid_ns, KF_TRUSTED_ARGS) @@ -152,6 +168,9 @@ BTF_ID_FLAGS(func, bpf_get_total_forks) BTF_ID_FLAGS(func, bpf_nr_running) BTF_ID_FLAGS(func, bpf_nr_context_switches) BTF_ID_FLAGS(func, bpf_nr_iowait) +BTF_ID_FLAGS(func, bpf_kstat_softirqs_cpu) +BTF_ID_FLAGS(func, bpf_kstat_cpu_irqs_sum) +BTF_ID_FLAGS(func, bpf_kcpustat_cpu_fetch) BTF_SET8_END(bpf_common_kfuncs_ids) static const struct btf_kfunc_id_set bpf_common_kfuncs_set = { -- 2.25.1