From nobody Sat Apr 18 14:25:12 2026 Received: from out-171.mta1.migadu.com (out-171.mta1.migadu.com [95.215.58.171]) (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 0D16035EDA4 for ; Sat, 28 Feb 2026 07:11:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772262712; cv=none; b=o7eC41myIOPkIZdO3AUDrZiEznyhQ2m3byV4Tjb6BGATL4pIX967fktN2kQ659ywY2tEyxfn2N9YcdlcjDcKDjhiEAuFq4XTvOhtLxnHEG7SsXiy1QuZmgSinOALYc8tDuvFghT9wXmgLwY/Jw3S6x1dxrYnB6Yc89AZUo3fQ3w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772262712; c=relaxed/simple; bh=ydcvMtndpU/OxsEtSVhVCNWCIxu5kvEi13B73r/hsw8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B4JRQl3fcSt7oWUpSD71CkFD/8frSfYnDXG8Y9b3+5dgcq1gAYOnQPa9UkIWX8Ck7FgD8iVYdfc/qROPY3h8QiUzxk4C0RcX0u8xDD0a9Np8TCI6HObzuTeiAn82CxQtgaHyjWvjKXVPb7BuW8A3/1QXCy4plW2egi/cpX+K6XY= 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=SadWynVw; arc=none smtp.client-ip=95.215.58.171 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="SadWynVw" 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=1772262709; 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=djwKlAEgY6ee2weS/mkLRpx1tbGzO35/OAf7bR840yA=; b=SadWynVwrc5gWMkyHXmI9Qp+c7/4T+flVRtgaACq2kX5iXuETqL8jmyUpwNKz3oiw1WBju TW0ZHdsmezIZ70aU8Ul5c6AiMCRtexySJN/KLhiQhnrgQ/NFDNFO7MTjNNN+33+5eqHcDB PhMTnpdoY10SQWmcneyhMTRkCnFHhGk= 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 , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Hui Zhu Subject: [PATCH bpf-next v3 1/3] selftests/bpf: Remove kmem subtest from cgroup_iter_memcg Date: Sat, 28 Feb 2026 15:11:21 +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 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. 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 Sat Apr 18 14:25:12 2026 Received: from out-179.mta1.migadu.com (out-179.mta1.migadu.com [95.215.58.179]) (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 1E3D23612D5 for ; Sat, 28 Feb 2026 07:11:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772262720; cv=none; b=ITjw1ODuBhaDOYLmwlNnf+Knkd5aToRlprsDjse/zIBp+atL95ubrPdizrezwmp/HRSOut0PgTrM7elOcS4jdj2h5qXEJXnU3EhrXtYmHYkLqGlmHSPmOiYxjQqGlN9X4zV5PAqIAglKiOnmfdcA26ciGYjKAAMNK+zF9B+U6jE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772262720; c=relaxed/simple; bh=2A5S3wswM8mKH9esHAH6T99t0dCgm8CjNU9Tq7xAU3o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qdj9icT2llKz6oLXLE/oTHtbS6yVgJ/7ditHDVvdRvoXxtTSi5kaDP6cPyUiIkuKHbdv/RoOKfW1xjMdD5KgAW5Vw+jwNLI9jdFryx0zIPPOvEabq8Ayk6TG8ciNGFcNDKfydt88eRqrYnXJBaSBMWPcBAZii29xdg+Pg4v/9Hs= 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=V4zO90g9; arc=none smtp.client-ip=95.215.58.179 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="V4zO90g9" 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=1772262717; 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=uoC1/SGj9ZyMrYYvjzF+ZFkGqF6/FMZJGvqCL8S4uuA=; b=V4zO90g9wkZEUykIr39YFJ+ssYGocxjwQNkM7L7YyPFsTsBRytq1KA4UUp7hWwI3bcr5Dz KC04j0Mx7G6qJyJCv5ZInXYQiq2cZI1YkRYO+6tdlVgDipSWdaxEb3uuxKxneebC/l8zJH 0kDqGwQOnsIbHUup9+bO17oNtOtvkdw= 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 , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Hui Zhu Subject: [PATCH bpf-next v3 2/3] bpf: Use bpf_core_enum_value for stats in cgroup_iter_memcg Date: Sat, 28 Feb 2026 15:11:22 +0800 Message-ID: <3a788ec239e9f9590897b43d21995e3a3532d916.1772261955.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 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 - memcg_stat_item: MEMCG_KMEM - vm_event_item: PGFAULT This ensures the BPF program can adapt to enum value changes between kernel versions. Signed-off-by: Hui Zhu Reviewed-by: Emil Tsalapatis --- .../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 From nobody Sat Apr 18 14:25:12 2026 Received: from out-178.mta1.migadu.com (out-178.mta1.migadu.com [95.215.58.178]) (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 ADCF7361658 for ; Sat, 28 Feb 2026 07:12:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772262724; cv=none; b=WLC6Vtd/f8agLDM09Ey7AElY6tuFUZ5R/cewVrR7oRtdo4SqTCIKi0GwnQhyjeSIB54DMLmd6VI3f14AupYDt+2Kk8/b9d/XjEgzKBCfiMX1/rMiYjPhJa6cBJ90dxP0ufPjfG55AswPa5oU0WZi0Y+DR+EuBziQrB5EyfycRpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772262724; c=relaxed/simple; bh=I29KYns+3V8NZNZTTMf6JPThoWhIOTarBn/LbxeDCiE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Sz2SmeRBLD8tQj6daY0jcqM9sw6v56fDzIIh9CD3lLLaTGfu6fmquxnWwv12hKo2yP7UJI5mfCFJknYUHgQIFJ5NJ0tjtcViENZK/v+5J3Iut0CgW9WIOLlWDly4GXvZEyGn09264tYZCg1kp40iLme5YYdWnnoC0tmElgNjECU= 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=Arx4Lsfm; arc=none smtp.client-ip=95.215.58.178 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="Arx4Lsfm" 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=1772262722; 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=wxewyvr0s1VxeZ03ELEr26G8sNLhbE2InXvijDekoLs=; b=Arx4Lsfm5wZRKrYTmtgBC2688y6OVE19w9gpA5vhVQFGQvaoTDbOkWpX5VW3vz4Sf6eCni aJ7H6HZPl9T1nEHAZ1YSnFUbd22DJpZy5ezu6aC24xp4p03v7DnxeI2Swasibot0JVSYov jmRuFx5b+83KKp4+BkdNV8XEIcZGGCk= 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 , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Hui Zhu Subject: [PATCH bpf-next v3 3/3] selftests/bpf: Check bpf_mem_cgroup_page_state return value Date: Sat, 28 Feb 2026 15:11:23 +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 When back-porting test_progs to different kernel versions, I encountered an issue where the test_cgroup_iter_memcg test would falsely pass even when bpf_mem_cgroup_page_state() failed. This patch adds explicit checks to ensure bpf_mem_cgroup_page_state() doesn't return -1 before validating the actual statistics values. Signed-off-by: Hui Zhu --- .../selftests/bpf/prog_tests/cgroup_iter_memcg.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 88fc3e83d2b7..9eadfbd3fdb9 100644 --- a/tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c +++ b/tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c @@ -53,6 +53,8 @@ static void test_anon(struct bpf_link *link, struct memcg= _query *memcg_query) if (!ASSERT_OK(read_stats(link), "read stats")) goto cleanup; =20 + ASSERT_NEQ(memcg_query->nr_anon_mapped, (unsigned long)-1, + "bpf_mem_cgroup_page_state NR_ANON_MAPPED"); ASSERT_GT(memcg_query->nr_anon_mapped, 0, "final anon mapped val"); =20 cleanup: @@ -88,6 +90,10 @@ static void test_file(struct bpf_link *link, struct memc= g_query *memcg_query) if (!ASSERT_OK(read_stats(link), "read stats")) goto cleanup_map; =20 + ASSERT_NEQ(memcg_query->nr_file_pages, (unsigned long)-1, + "bpf_mem_cgroup_page_state NR_FILE_PAGES"); + ASSERT_NEQ(memcg_query->nr_file_mapped, (unsigned long)-1, + "bpf_mem_cgroup_page_state NR_FILE_MAPPED"); ASSERT_GT(memcg_query->nr_file_pages, 0, "final file value"); ASSERT_GT(memcg_query->nr_file_mapped, 0, "final file mapped value"); =20 @@ -119,6 +125,8 @@ static void test_shmem(struct bpf_link *link, struct me= mcg_query *memcg_query) if (!ASSERT_OK(read_stats(link), "read stats")) goto cleanup; =20 + ASSERT_NEQ(memcg_query->nr_shmem, (unsigned long)-1, + "bpf_mem_cgroup_page_state NR_SHMEM"); ASSERT_GT(memcg_query->nr_shmem, 0, "final shmem value"); =20 cleanup: @@ -144,6 +152,8 @@ static void test_pgfault(struct bpf_link *link, struct = memcg_query *memcg_query) if (!ASSERT_OK(read_stats(link), "read stats")) goto cleanup; =20 + ASSERT_NEQ(memcg_query->pgfault, (unsigned long)-1, + "bpf_mem_cgroup_vm_events PGFAULT"); ASSERT_GT(memcg_query->pgfault, 0, "final pgfault val"); =20 cleanup: --=20 2.43.0