selftests/bpf: Use memfd_create instead of shm_open in cgroup_iter_memcg

Replace shm_open/shm_unlink with memfd_create in the shmem subtest.
shm_open requires /dev/shm to be mounted, which is not always available
in test environments, causing the test to fail with ENOENT.
memfd_create creates an anonymous shmem-backed fd without any filesystem
dependency while exercising the same shmem accounting path.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20260412210636.47516-1-alexei.starovoitov@gmail.com
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
This commit is contained in:
Alexei Starovoitov 2026-04-12 14:06:36 -07:00 committed by Kumar Kartikeya Dwivedi
parent fa2942918a
commit 47687a29b2
No known key found for this signature in database
GPG Key ID: 472D377B63542F83

View File

@ -107,10 +107,10 @@ static void test_shmem(struct bpf_link *link, struct memcg_query *memcg_query)
/*
* Increase memcg shmem usage by creating and writing
* to a shmem object.
* to a memfd backed by shmem/tmpfs.
*/
fd = shm_open("/tmp_shmem", O_CREAT | O_RDWR, 0644);
if (!ASSERT_OK_FD(fd, "shm_open"))
fd = memfd_create("tmp_shmem", 0);
if (!ASSERT_OK_FD(fd, "memfd_create"))
return;
if (!ASSERT_OK(fallocate(fd, 0, 0, len), "fallocate"))
@ -123,7 +123,6 @@ static void test_shmem(struct bpf_link *link, struct memcg_query *memcg_query)
cleanup:
close(fd);
shm_unlink("/tmp_shmem");
}
static void test_pgfault(struct bpf_link *link, struct memcg_query *memcg_query)