From nobody Thu Apr 2 18:53:27 2026 Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com [91.218.175.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22AA025F7A9; Tue, 3 Mar 2026 05:54:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.186 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772517255; cv=none; b=Wu8cV74Ldro5i73lal9/7pRqU+IcGkZKWD0mCE23FhK19QLeYAQfpnwh8DGfPHHWWZwS6mqQ+03WeFq2EheYzZL8bVasd+5ciXcKO34xLNUkbuejC6dm9F/PzYlbeiqlR5PY25sAwZJ3+b4N9jePv92Ic9bBhzz32yqVFN+Jzzw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772517255; c=relaxed/simple; bh=47skNN15FJUX0BL3Ngb7DKDwAIXSBYYeQrYHiG+TWmw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ErHAOPEUU7chTsWlLHci4AndbjsgKmW2Bd2fB3ONnKWnYdm6CdTPqiSue0fk5RhBbr8IuklWdozGllNZ/5dSXo/kngGHSPsBGFudm8DZ0gVI+wEjVIkhvfSCDCXjki3zXgh8Lxs+GPWL0gdpnwLVXFVLKG68iwIcwuyFckXpp30= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=vKE4T0Z+; arc=none smtp.client-ip=91.218.175.186 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="vKE4T0Z+" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1772517252; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CxoC5RycMziGIkmruWsoRF7AnPL1hPqMVkLtIL/v1W0=; b=vKE4T0Z+6U4k9n0OZPNGdZsL/BmwzyehBD1tt/FLu3Fp+VPm1Nshe1CXnXAl90I6d+ol9g YuViltwWA9ronkuSVlXalF7zPybXSveHBxKhczw6QH8sJIMwTS+m4SqtZ7OyvmGKntn0XC /zi4Niqz7VQDQgntZEFipOkMW+T8pU4= From: Hui Zhu To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Shuah Khan , JP Kobryn , Roman Gushchin , Emil Tsalapatis , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Hui Zhu , JP Kobryn Subject: [PATCH bpf-next v5 1/2] selftests/bpf: Remove kmem subtest from cgroup_iter_memcg Date: Tue, 3 Mar 2026 13:53:08 +0800 Message-ID: <35fa32a019361ec26265c8a789ee31e448d4dbda.1772505399.git.zhuhui@kylinos.cn> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Hui Zhu When cgroup.memory=3Dnokmem is set in the kernel command line, kmem accounting is disabled. This causes the test_kmem subtest in cgroup_iter_memcg to fail because it expects non-zero kmem values. Remove the kmem subtest altogether since the remaining subtests (shmem, file, pgfault) already provide sufficient coverage for the cgroup iter memcg functionality. Reviewed-by: JP Kobryn Signed-off-by: Hui Zhu --- .../testing/selftests/bpf/cgroup_iter_memcg.h | 2 -- .../bpf/prog_tests/cgroup_iter_memcg.c | 28 ------------------- .../selftests/bpf/progs/cgroup_iter_memcg.c | 1 - 3 files changed, 31 deletions(-) diff --git a/tools/testing/selftests/bpf/cgroup_iter_memcg.h b/tools/testin= g/selftests/bpf/cgroup_iter_memcg.h index 3f59b127943b..ff20ec537164 100644 --- a/tools/testing/selftests/bpf/cgroup_iter_memcg.h +++ b/tools/testing/selftests/bpf/cgroup_iter_memcg.h @@ -9,8 +9,6 @@ struct memcg_query { unsigned long nr_shmem; unsigned long nr_file_pages; unsigned long nr_file_mapped; - /* some memcg_stat_item */ - unsigned long memcg_kmem; /* some vm_event_item */ unsigned long pgfault; }; diff --git a/tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c b/t= ools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c index a5afd16705f0..88fc3e83d2b7 100644 --- a/tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c +++ b/tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c @@ -126,32 +126,6 @@ static void test_shmem(struct bpf_link *link, struct m= emcg_query *memcg_query) shm_unlink("/tmp_shmem"); } =20 -#define NR_PIPES 64 -static void test_kmem(struct bpf_link *link, struct memcg_query *memcg_que= ry) -{ - int fds[NR_PIPES][2], i; - - /* - * Increase kmem value by creating pipes which will allocate some - * kernel buffers. - */ - for (i =3D 0; i < NR_PIPES; i++) { - if (!ASSERT_OK(pipe(fds[i]), "pipe")) - goto cleanup; - } - - if (!ASSERT_OK(read_stats(link), "read stats")) - goto cleanup; - - ASSERT_GT(memcg_query->memcg_kmem, 0, "kmem value"); - -cleanup: - for (i =3D i - 1; i >=3D 0; i--) { - close(fds[i][0]); - close(fds[i][1]); - } -} - static void test_pgfault(struct bpf_link *link, struct memcg_query *memcg_= query) { void *map; @@ -209,8 +183,6 @@ void test_cgroup_iter_memcg(void) test_shmem(link, &skel->data_query->memcg_query); if (test__start_subtest("cgroup_iter_memcg__file")) test_file(link, &skel->data_query->memcg_query); - if (test__start_subtest("cgroup_iter_memcg__kmem")) - test_kmem(link, &skel->data_query->memcg_query); if (test__start_subtest("cgroup_iter_memcg__pgfault")) test_pgfault(link, &skel->data_query->memcg_query); =20 diff --git a/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c b/tools/= testing/selftests/bpf/progs/cgroup_iter_memcg.c index 59fb70a3cc50..12f79a44133e 100644 --- a/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c +++ b/tools/testing/selftests/bpf/progs/cgroup_iter_memcg.c @@ -30,7 +30,6 @@ int cgroup_memcg_query(struct bpf_iter__cgroup *ctx) memcg_query.nr_shmem =3D bpf_mem_cgroup_page_state(memcg, NR_SHMEM); memcg_query.nr_file_pages =3D bpf_mem_cgroup_page_state(memcg, NR_FILE_PA= GES); memcg_query.nr_file_mapped =3D bpf_mem_cgroup_page_state(memcg, NR_FILE_M= APPED); - memcg_query.memcg_kmem =3D bpf_mem_cgroup_page_state(memcg, MEMCG_KMEM); memcg_query.pgfault =3D bpf_mem_cgroup_vm_events(memcg, PGFAULT); =20 bpf_put_mem_cgroup(memcg); --=20 2.43.0 From nobody Thu Apr 2 18:53:27 2026 Received: from out-185.mta0.migadu.com (out-185.mta0.migadu.com [91.218.175.185]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B7A2201278 for ; Tue, 3 Mar 2026 05:54:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.185 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772517271; cv=none; b=Y555nTaKz6VH/Eg1JedDDj8mXq4F4u53Hm2DsKquYrh79cT7OG+rMebRn5IAoOS/+bsbJAitSpUDEseeep34u5sZrNeVAcWfeU9Rwq98l1+lgPF/LDPSz0lhx+2PXauV6qkJ+PIeDQsAsw3HoSHCbe5UXQaeenQicDkOSkE8f/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772517271; c=relaxed/simple; bh=6qzHlh10MApeXv7yMNlEmX5cSN6GyQGLqmitHm1kE4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kJ33RwYx+j634kGCN/CsmoKLoBZmBzbsrrWg+v7wCOKu+3GwV5FEGpz5aT0Erkb2N7AeaNMNZ0sg9FM93/mzHIAbBCFFs5n+QmOsWuDeofKh8HfYmuNigIOasubE5a+AldcPkvMF+z1B4dHCa5geGtpgEzdkO3+NRLyHKmX5IOA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=iqW7blNx; arc=none smtp.client-ip=91.218.175.185 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="iqW7blNx" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1772517268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=l6eJEYFrb9LvZqYh0Q45H8GvoxLpNshzFBYH4l9HNuk=; b=iqW7blNxfgMMwNnwuepiufW6U7e5cTFabi7kyBfFiPesIN6hDT91skoAwlY4cZ8ekKRc+o K5QrgLyiwFzkvMBCd2RQLWQNjheKc5eUVoyG68nIoMG+jCQemLoGPj/kEn1XDjaYkI6Eud aRJ/G5foVMSVgcFnUTneZ68dOf+qxmo= From: Hui Zhu To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Shuah Khan , JP Kobryn , Roman Gushchin , Emil Tsalapatis , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Hui Zhu , JP Kobryn Subject: [PATCH bpf-next v5 2/2] bpf: Use bpf_core_enum_value for stats in cgroup_iter_memcg Date: Tue, 3 Mar 2026 13:53:09 +0800 Message-ID: In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Hui Zhu 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. Reviewed-by: Emil Tsalapatis Reviewed-by: JP Kobryn Signed-off-by: Hui Zhu --- .../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) =20 bpf_mem_cgroup_flush_stats(memcg); =20 - memcg_query.nr_anon_mapped =3D bpf_mem_cgroup_page_state(memcg, NR_ANON_M= APPED); - memcg_query.nr_shmem =3D bpf_mem_cgroup_page_state(memcg, NR_SHMEM); - memcg_query.nr_file_pages =3D bpf_mem_cgroup_page_state(memcg, NR_FILE_PA= GES); - memcg_query.nr_file_mapped =3D bpf_mem_cgroup_page_state(memcg, NR_FILE_M= APPED); - memcg_query.pgfault =3D bpf_mem_cgroup_vm_events(memcg, PGFAULT); + memcg_query.nr_anon_mapped =3D bpf_mem_cgroup_page_state( + memcg, + bpf_core_enum_value(enum node_stat_item, NR_ANON_MAPPED)); + memcg_query.nr_shmem =3D bpf_mem_cgroup_page_state( + memcg, bpf_core_enum_value(enum node_stat_item, NR_SHMEM)); + memcg_query.nr_file_pages =3D bpf_mem_cgroup_page_state( + memcg, bpf_core_enum_value(enum node_stat_item, NR_FILE_PAGES)); + memcg_query.nr_file_mapped =3D bpf_mem_cgroup_page_state( + memcg, + bpf_core_enum_value(enum node_stat_item, NR_FILE_MAPPED)); + memcg_query.pgfault =3D bpf_mem_cgroup_vm_events( + memcg, bpf_core_enum_value(enum vm_event_item, PGFAULT)); =20 bpf_put_mem_cgroup(memcg); =20 --=20 2.43.0