From: Cyril Hrubis <chrubis@suse.cz>
To: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] lib: tst_fd: Add kernel version check to memfd_secret
Date: Tue, 18 Jun 2024 12:15:52 +0200 [thread overview]
Message-ID: <ZnFeWJJldj_ggKnq@yuki> (raw)
In-Reply-To: <1718700544-17304-1-git-send-email-nobuhiro1.iwamatsu@toshiba.co.jp>
Hi!
> memfd_secret is a syscall added since 5.14. On earlier kernels, tests such
> as accept03, readahead01 and splice07 that use memfd_secret fail.
> This adds a kernel version check to the tst_fd library when running tests using
> memfd_secret.
>
> Test log on linux-5.10.162/arm32 with version 20240524:
> ```
> $ ./testcases/kernel/syscalls/accept/accept03
> tst_test.c:1733: TINFO: LTP version: 20240524
> tst_test.c:1617: TINFO: Timeout per run is 0h 00m 30s
> accept03.c:58: TPASS: accept() on file : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on O_PATH file : EBADF (9)
> accept03.c:58: TPASS: accept() on directory : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on /dev/zero : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on /proc/self/maps : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on pipe read end : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on pipe write end : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on epoll : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on eventfd : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on signalfd : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on timerfd : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on pidfd : ENOTSOCK (88)
> tst_fd.c:151: TCONF: Skipping fanotify: ENOSYS (38)
> accept03.c:58: TPASS: accept() on inotify : ENOTSOCK (88)
> tst_fd.c:170: TCONF: Skipping userfaultfd: ENOSYS (38)
> accept03.c:58: TPASS: accept() on perf event : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on io uring : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on bpf map : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on fsopen : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on fspick : ENOTSOCK (88)
> accept03.c:58: TPASS: accept() on open_tree : EBADF (9)
> accept03.c:58: TPASS: accept() on memfd : ENOTSOCK (88)
> tst_test.c:1677: TBROK: Test killed by SIGILL!
This looks like a bug either in kernel or libc.
> Summary:
> passed 20
> failed 0
> broken 1
> skipped 2
> warnings 0
> ```
>
> Closed: #1145
> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
> ---
> lib/tst_fd.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/lib/tst_fd.c b/lib/tst_fd.c
> index 6538a098c..53f583fa0 100644
> --- a/lib/tst_fd.c
> +++ b/lib/tst_fd.c
> @@ -255,8 +255,16 @@ static void open_memfd(struct tst_fd *fd)
>
> static void open_memfd_secret(struct tst_fd *fd)
> {
> + if ((tst_kvercmp(5, 14, 0)) < 0) {
> + tst_res(TINFO, "accept() on %s: Linux kernel version is before than v5.14", tst_fd_desc(fd));
> + errno = ENOSYS;
> + goto skip;
> + }
> +
> fd->fd = syscall(__NR_memfd_secret, 0);
> +
> if (fd->fd < 0) {
> +skip:
> tst_res(TCONF | TERRNO,
> "Skipping %s", tst_fd_desc(fd));
> }
And this looks like you are working around the bug.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2024-06-18 10:16 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-18 8:49 [LTP] [PATCH] lib: tst_fd: Add kernel version check to memfd_secret Nobuhiro Iwamatsu
2024-06-18 10:15 ` Cyril Hrubis [this message]
2024-06-19 5:24 ` nobuhiro1.iwamatsu
2024-06-19 17:33 ` Petr Vorel
2024-06-20 1:22 ` nobuhiro1.iwamatsu
2024-06-20 13:25 ` Petr Vorel
2024-06-21 9:07 ` Cyril Hrubis
2024-06-21 9:05 ` Cyril Hrubis
2024-06-21 11:09 ` Petr Vorel
2024-06-28 8:40 ` nobuhiro1.iwamatsu
2024-07-12 18:40 ` Edward Liaw via ltp
2024-07-16 4:25 ` nobuhiro1.iwamatsu
-- strict thread matches above, loose matches on Subject: below --
2024-06-18 9:09 Nobuhiro Iwamatsu
2024-06-21 11:13 ` Petr Vorel
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=ZnFeWJJldj_ggKnq@yuki \
--to=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
--cc=nobuhiro1.iwamatsu@toshiba.co.jp \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox