From: "JP Kobryn (Meta)" <jp.kobryn@linux.dev>
To: Hui Zhu <hui.zhu@linux.dev>, Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
Martin KaFai Lau <martin.lau@linux.dev>,
Eduard Zingerman <eddyz87@gmail.com>, Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@kernel.org>,
Stanislav Fomichev <sdf@fomichev.me>, Hao Luo <haoluo@google.com>,
Jiri Olsa <jolsa@kernel.org>, Shuah Khan <shuah@kernel.org>,
Roman Gushchin <roman.gushchin@linux.dev>,
bpf@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Hui Zhu <zhuhui@kylinos.cn>
Subject: Re: [PATCH bpf-next v4 2/3] bpf: Use bpf_core_enum_value for stats in cgroup_iter_memcg
Date: Mon, 2 Mar 2026 10:10:50 -0800 [thread overview]
Message-ID: <ff97e783-96f5-42ce-a036-0084b18f5b5f@linux.dev> (raw)
In-Reply-To: <0831b50f85b4b00e698ef0b5fff6acd196dd1265.1772270591.git.zhuhui@kylinos.cn>
On 2/28/26 1:25 AM, Hui Zhu wrote:
> From: Hui Zhu <zhuhui@kylinos.cn>
>
> Replace hardcoded enum values with bpf_core_enum_value() calls in
> cgroup_iter_memcg test to improve portability across different
> kernel versions.
>
> The change adds runtime enum value resolution for:
> - node_stat_item: NR_ANON_MAPPED, NR_SHMEM, NR_FILE_PAGES,
> NR_FILE_MAPPED
> - vm_event_item: PGFAULT
>
> This ensures the BPF program can adapt to enum value changes
> between kernel versions.
>
> Signed-off-by: Hui Zhu <zhuhui@kylinos.cn>
> ---
> .../selftests/bpf/progs/cgroup_iter_memcg.c | 17 ++++++++++++-----
> 1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c b/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c
> index 12f79a44133e..06a385c9d85b 100644
> --- a/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c
> +++ b/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c
> @@ -26,11 +26,18 @@ int cgroup_memcg_query(struct bpf_iter__cgroup *ctx)
>
> bpf_mem_cgroup_flush_stats(memcg);
>
> - memcg_query.nr_anon_mapped = bpf_mem_cgroup_page_state(memcg, NR_ANON_MAPPED);
> - memcg_query.nr_shmem = bpf_mem_cgroup_page_state(memcg, NR_SHMEM);
> - memcg_query.nr_file_pages = bpf_mem_cgroup_page_state(memcg, NR_FILE_PAGES);
> - memcg_query.nr_file_mapped = bpf_mem_cgroup_page_state(memcg, NR_FILE_MAPPED);
> - memcg_query.pgfault = bpf_mem_cgroup_vm_events(memcg, PGFAULT);
> + memcg_query.nr_anon_mapped = bpf_mem_cgroup_page_state(
> + memcg,
> + bpf_core_enum_value(enum node_stat_item, NR_ANON_MAPPED));
> + memcg_query.nr_shmem = bpf_mem_cgroup_page_state(
> + memcg, bpf_core_enum_value(enum node_stat_item, NR_SHMEM));
> + memcg_query.nr_file_pages = bpf_mem_cgroup_page_state(
> + memcg, bpf_core_enum_value(enum node_stat_item, NR_FILE_PAGES));
> + memcg_query.nr_file_mapped = bpf_mem_cgroup_page_state(
> + memcg,
> + bpf_core_enum_value(enum node_stat_item, NR_FILE_MAPPED));
> + memcg_query.pgfault = bpf_mem_cgroup_vm_events(
> + memcg, bpf_core_enum_value(enum vm_event_item, PGFAULT));
>
> bpf_put_mem_cgroup(memcg);
>
Reviewed-by: JP Kobryn <jp.kobryn@linux.dev>
next prev parent reply other threads:[~2026-03-02 18:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-28 9:25 [PATCH bpf-next v4 0/3] Fix test_cgroup_iter_memcg issues found during back-porting Hui Zhu
2026-02-28 9:25 ` [PATCH bpf-next v4 1/3] selftests/bpf: Remove kmem subtest from cgroup_iter_memcg Hui Zhu
2026-03-02 18:08 ` JP Kobryn (Meta)
2026-02-28 9:25 ` [PATCH bpf-next v4 2/3] bpf: Use bpf_core_enum_value for stats in cgroup_iter_memcg Hui Zhu
2026-03-02 18:10 ` JP Kobryn (Meta) [this message]
2026-02-28 9:25 ` [PATCH bpf-next v4 3/3] selftests/bpf: Check bpf_mem_cgroup_page_state return value Hui Zhu
2026-03-02 18:27 ` JP Kobryn (Meta)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ff97e783-96f5-42ce-a036-0084b18f5b5f@linux.dev \
--to=jp.kobryn@linux.dev \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=hui.zhu@linux.dev \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=roman.gushchin@linux.dev \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=yonghong.song@linux.dev \
--cc=zhuhui@kylinos.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.