
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/ICA1GK -------------------------------- Which is to get the memory cgroup that a task lies in. Signed-off-by: GONG Ruiqi <gongruiqi1@huawei.com> --- mm/memcontrol.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index b3609b71cbe8..d388ca2bdbf1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -78,12 +78,17 @@ #include <net/ip.h> #include "slab.h" #include "swap.h" - #include <linux/uaccess.h> #include <trace/events/vmscan.h> #include <linux/ksm.h> +#ifdef CONFIG_BPF_RVI +#include <linux/bpf.h> +#include <linux/btf.h> +#include <linux/btf_ids.h> +#endif + struct cgroup_subsys memory_cgrp_subsys __read_mostly; EXPORT_SYMBOL(memory_cgrp_subsys); @@ -8870,6 +8875,29 @@ static __init int mem_cgroup_sysctls_init(void) } #endif +#ifdef CONFIG_BPF_RVI +__bpf_kfunc struct mem_cgroup *bpf_mem_cgroup_from_task(struct task_struct *p) +{ + return mem_cgroup_from_task(p); +} + +BTF_SET8_START(bpf_memcg_kfunc_ids) +BTF_ID_FLAGS(func, bpf_mem_cgroup_from_task, KF_RET_NULL | KF_RCU) +BTF_SET8_END(bpf_memcg_kfunc_ids) + +static const struct btf_kfunc_id_set bpf_memcg_kfunc_set = { + .owner = THIS_MODULE, + .set = &bpf_memcg_kfunc_ids, +}; + +static int __init bpf_memcg_kfunc_init(void) +{ + return register_btf_kfunc_id_set(BPF_PROG_TYPE_TRACING, + &bpf_memcg_kfunc_set); +} +late_initcall(bpf_memcg_kfunc_init); +#endif + static int __init cgroup_memory(char *s) { char *token; -- 2.25.1