From: Cyril Hrubis <chrubis@suse.cz>
To: Andrea Cervesato <andrea.cervesato@suse.de>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v4] Correctly check if PIDFD_INFO_EXIT is available
Date: Wed, 30 Jul 2025 16:28:24 +0200 [thread overview]
Message-ID: <aIosCOiW5uVo18Ko@yuki.lan> (raw)
In-Reply-To: <20250730-ioctl_pidfd_supported-v4-1-db7bd905a1d6@suse.com>
Hi!
> When systems are not having the PIDFD_INFO_EXIT implementation,
> ioctl_pidfd testing suite might fail with:
>
> ioctl_pidfd.h:32: TBROK: ioctl(...) failed: ENOTTY (25)
>
> Fix the ioctl_pidfd_info_exit_supported() behavior, considering ENOTTY,
> EINVAL and ESRCH errors like a sign for not having PIDFD_INFO_EXIT
> implemented in the system.
> if (tst_kvercmp(6, 15, 0) >= 0)
> @@ -29,13 +30,24 @@ static inline int ioctl_pidfd_info_exit_supported(void)
> pidfd = SAFE_PIDFD_OPEN(pid, 0);
> SAFE_WAITPID(pid, NULL, 0);
>
> - SAFE_IOCTL(pidfd, PIDFD_GET_INFO, &info);
> - SAFE_CLOSE(pidfd);
> + ret = ioctl(pidfd, PIDFD_GET_INFO, &info);
> + if (ret == -1) {
> + /* - ENOTTY: old kernels not implementing fs/pidfs.c:pidfd_ioctl
Okay that's what we get if there is no ioctl() handler for the pidfs.
> + * - EINVAL: until v6.13 kernel
And this is supposedly before PIDFD_GET_INFO was added.
> + * - ESRCH: all kernels between v6.13 and v6.15
I suppose what happens between 6.13 and 6.15 is that PIDFD_GET_INFO is
acutally implemented but all the data about the process are gone once it
has been waited for. I was thinking that we could eliminate this branch
if we waited for the process after the ioctl() but we need the actual
process to exit since otherwise the PIFD_INFO_EXIT flag woudln't be set
in the result even if it's supported. Sigh.
So I guess that we cannot make this any simpler.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2025-07-30 14:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-30 12:20 [LTP] [PATCH v4] Correctly check if PIDFD_INFO_EXIT is available Andrea Cervesato
2025-07-30 14:28 ` Cyril Hrubis [this message]
2025-07-30 14:57 ` Andrea Cervesato via ltp
2025-07-30 16:36 ` 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=aIosCOiW5uVo18Ko@yuki.lan \
--to=chrubis@suse.cz \
--cc=andrea.cervesato@suse.de \
--cc=ltp@lists.linux.it \
/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 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.