
From: Gu Bowen <gubowen5@huawei.com> hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/ICA1GK -------------------------------- Add kfuncs to retrieve the number of some sorts of memory pages. Co-developed-by: GONG Ruiqi <gongruiqi1@huawei.com> Signed-off-by: GONG Ruiqi <gongruiqi1@huawei.com> Signed-off-by: Gu Bowen <gubowen5@huawei.com> --- kernel/bpf-rvi/common_kfuncs.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/kernel/bpf-rvi/common_kfuncs.c b/kernel/bpf-rvi/common_kfuncs.c index 65f33ceadfb4..2313c8c490dc 100644 --- a/kernel/bpf-rvi/common_kfuncs.c +++ b/kernel/bpf-rvi/common_kfuncs.c @@ -155,6 +155,26 @@ __bpf_kfunc void bpf_kcpustat_cpu_fetch(struct kernel_cpustat *dst, int cpu) kcpustat_cpu_fetch(dst, cpu); } +/* + * Meminfo related kfuncs + */ + +__bpf_kfunc unsigned long bpf_mem_file_hugepage(void) +{ + return global_node_page_state(NR_FILE_THPS); +} + +__bpf_kfunc unsigned long bpf_mem_file_pmdmapped(void) +{ + return global_node_page_state(NR_FILE_PMDMAPPED); +} + +__bpf_kfunc unsigned long bpf_mem_kreclaimable(void) +{ + return global_node_page_state_pages(NR_SLAB_RECLAIMABLE_B) + + global_node_page_state(NR_KERNEL_MISC_RECLAIMABLE); +} + 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) @@ -171,6 +191,9 @@ 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_ID_FLAGS(func, bpf_mem_file_hugepage) +BTF_ID_FLAGS(func, bpf_mem_file_pmdmapped) +BTF_ID_FLAGS(func, bpf_mem_kreclaimable) BTF_SET8_END(bpf_common_kfuncs_ids) static const struct btf_kfunc_id_set bpf_common_kfuncs_set = { -- 2.25.1