* [PATCH bpf-next] selftests/bpf: Use memfd_create instead of mkstemp in d_path
@ 2026-11-02 4:15 ` Jonathan Bastari Thamrin
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Bastari Thamrin via B4 Relay @ 2026-11-02 4:15 UTC (permalink / raw)
To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Martin KaFai Lau,
Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis,
Ihor Solodrai, Shuah Khan
Cc: bpf, linux-kselftest, linux-kernel, Shuran Liu,
Jonathan Bastari Thamrin
From: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
check_mem_access currently creates a temp file in /dev/shm, which
isn't mounted under vmtest.sh in local runs. This causes mkstemp
to fail with ENOENT. The fix is similar to
commit 47687a29b2c3 ("selftests/bpf: Use memfd_create instead of
shm_open in cgroup_iter_memcg") where memfd_create gives a
shmem-backed file with no mount needed while still reaching
vfs_fallocate.
Signed-off-by: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
---
tools/testing/selftests/bpf/prog_tests/d_path.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c
index 1a2a2f1abf03..0f0150d73262 100644
--- a/tools/testing/selftests/bpf/prog_tests/d_path.c
+++ b/tools/testing/selftests/bpf/prog_tests/d_path.c
@@ -4,6 +4,7 @@
#include <sys/stat.h>
#include <linux/sched.h>
#include <sys/syscall.h>
+#include <sys/mman.h>
#define MAX_PATH_LEN 128
#define MAX_FILES 7
@@ -220,7 +221,6 @@ static void test_d_path_check_types(void)
static void test_d_path_mem_access(void)
{
int localfd = -1;
- char path_template[] = "/dev/shm/d_path_loadgen.XXXXXX";
struct test_d_path__bss *bss;
struct test_d_path *skel;
@@ -230,13 +230,12 @@ static void test_d_path_mem_access(void)
bss = skel->bss;
- localfd = mkstemp(path_template);
- if (CHECK(localfd < 0, "trigger", "mkstemp failed\n"))
+ localfd = memfd_create("d_path_loadgen", 0);
+ if (CHECK(localfd < 0, "trigger", "memfd_create failed\n"))
goto cleanup;
if (CHECK(fallocate(localfd, 0, 0, 1024) < 0, "trigger", "fallocate failed\n"))
goto cleanup;
- remove(path_template);
if (CHECK(!bss->path_match_fallocate, "check",
"failed to read fallocate path"))
---
base-commit: a30c772627b2ef4bc715332b1b04938a914556cd
change-id: 20261102-d-path-memfd-981879bcd3d7
Best regards,
--
Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH bpf-next] selftests/bpf: Use memfd_create instead of mkstemp in d_path
@ 2026-11-02 4:15 ` Jonathan Bastari Thamrin
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Bastari Thamrin @ 2026-11-02 4:15 UTC (permalink / raw)
To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Martin KaFai Lau,
Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis,
Ihor Solodrai, Shuah Khan
Cc: bpf, linux-kselftest, linux-kernel, Shuran Liu,
Jonathan Bastari Thamrin
check_mem_access currently creates a temp file in /dev/shm, which
isn't mounted under vmtest.sh in local runs. This causes mkstemp
to fail with ENOENT. The fix is similar to
commit 47687a29b2c3 ("selftests/bpf: Use memfd_create instead of
shm_open in cgroup_iter_memcg") where memfd_create gives a
shmem-backed file with no mount needed while still reaching
vfs_fallocate.
Signed-off-by: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
---
tools/testing/selftests/bpf/prog_tests/d_path.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c
index 1a2a2f1abf03..0f0150d73262 100644
--- a/tools/testing/selftests/bpf/prog_tests/d_path.c
+++ b/tools/testing/selftests/bpf/prog_tests/d_path.c
@@ -4,6 +4,7 @@
#include <sys/stat.h>
#include <linux/sched.h>
#include <sys/syscall.h>
+#include <sys/mman.h>
#define MAX_PATH_LEN 128
#define MAX_FILES 7
@@ -220,7 +221,6 @@ static void test_d_path_check_types(void)
static void test_d_path_mem_access(void)
{
int localfd = -1;
- char path_template[] = "/dev/shm/d_path_loadgen.XXXXXX";
struct test_d_path__bss *bss;
struct test_d_path *skel;
@@ -230,13 +230,12 @@ static void test_d_path_mem_access(void)
bss = skel->bss;
- localfd = mkstemp(path_template);
- if (CHECK(localfd < 0, "trigger", "mkstemp failed\n"))
+ localfd = memfd_create("d_path_loadgen", 0);
+ if (CHECK(localfd < 0, "trigger", "memfd_create failed\n"))
goto cleanup;
if (CHECK(fallocate(localfd, 0, 0, 1024) < 0, "trigger", "fallocate failed\n"))
goto cleanup;
- remove(path_template);
if (CHECK(!bss->path_match_fallocate, "check",
"failed to read fallocate path"))
---
base-commit: a30c772627b2ef4bc715332b1b04938a914556cd
change-id: 20261102-d-path-memfd-981879bcd3d7
Best regards,
--
Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH bpf-next] selftests/bpf: Use memfd_create instead of mkstemp in d_path
2026-11-02 4:15 ` Jonathan Bastari Thamrin
(?)
@ 2026-11-02 4:19 ` sashiko-bot
-1 siblings, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-11-02 4:19 UTC (permalink / raw)
To: Jonathan Bastari Thamrin; +Cc: bpf
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] selftests/bpf: deprecated CHECK() used in test_d_path_mem_access()
--
commit 70ec4540d31dab1fed0411808b9f6ef87d380925
Author: Jonathan Bastari Thamrin <thamrinjonathan@gmail.com>
selftests/bpf: Use memfd_create instead of mkstemp in d_path
This commit replaces mkstemp() in /dev/shm with memfd_create() in
test_d_path_mem_access() so the check_mem_access subtest can run under
vmtest.sh when /dev/shm is not mounted.
> diff --git a/tools/testing/selftests/bpf/prog_tests/d_path.c b/tools/testing/selftests/bpf/prog_tests/d_path.c
> index 1a2a2f1abf033..0f0150d73262b 100644
> --- a/tools/testing/selftests/bpf/prog_tests/d_path.c
> +++ b/tools/testing/selftests/bpf/prog_tests/d_path.c
[ ... ]
> @@ -230,13 +230,12 @@ static void test_d_path_mem_access(void)
>
> bss = skel->bss;
>
> - localfd = mkstemp(path_template);
> - if (CHECK(localfd < 0, "trigger", "mkstemp failed\n"))
> + localfd = memfd_create("d_path_loadgen", 0);
> + if (CHECK(localfd < 0, "trigger", "memfd_create failed\n"))
> goto cleanup;
[Severity: Low]
This isn't a bug, but since CHECK() is deprecated in BPF selftests, should
this updated check in test_d_path_mem_access() use ASSERT_OK_FD() from
tools/testing/selftests/bpf/test_progs.h instead (similar to commit
47687a29b2c3 ("selftests/bpf: Use memfd_create instead of shm_open in
cgroup_iter_memcg"))?
if (!ASSERT_OK_FD(localfd, "memfd_create"))
goto cleanup;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261102-d-path-memfd-v1-1-692a5664b36d@gmail.com?part=1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-02 4:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-02 4:15 [PATCH bpf-next] selftests/bpf: Use memfd_create instead of mkstemp in d_path Jonathan Bastari Thamrin via B4 Relay
2026-11-02 4:15 ` Jonathan Bastari Thamrin
2026-11-02 4:19 ` sashiko-bot
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.