[LTP] [PATCH v2] pty09: Cap RLIMIT_NOFILE-based slave PTY opens
Mingyu He
mingyu.he@shopee.com
Mon Jul 20 09:30:23 CEST 2026
Hi,
Gentle ping for this patch.
Thanks,
Runli
On Tue, Jul 14, 2026 at 11:15 AM Runli <mingyu.he@shopee.com> wrote:
>
> pty09 derives the number of slave PTY opens from RLIMIT_NOFILE. When the
> limit is very large, for example 1048576, the test tries to open nearly
> one million slave PTYs on the same master. That makes the workload depend
> on the caller's file descriptor limit instead of the PTY behavior being
> tested, and can turn a working PTY open path into a timeout-driven TBROK.
>
> The test only needs to verify that a slave pseudo-terminal can be opened
> multiple times in parallel. Cap the number of slave opens at 4096 so the
> test remains representative and deterministic even when RLIMIT_NOFILE is
> set unusually high.
>
> Fixes: 20aa13dbd8a68 ("Add pty09 test")
> Signed-off-by: Runli <mingyu.he@shopee.com>
> ---
> Changes in v2:
> - Print the uncapped available count before applying the cap.
> - Add a separate TINFO message when the open count is capped.
>
> testcases/kernel/pty/pty09.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/testcases/kernel/pty/pty09.c b/testcases/kernel/pty/pty09.c
> index f3ade2381..80da475e9 100644
> --- a/testcases/kernel/pty/pty09.c
> +++ b/testcases/kernel/pty/pty09.c
> @@ -14,6 +14,8 @@
>
> static int masterfd = -1;
>
> +#define MAX_SLAVE_OPENS 4096
> +
> static unsigned int count_avail_pid(void)
> {
> DIR *dir;
> @@ -34,6 +36,12 @@ static unsigned int count_avail_pid(void)
>
> tst_res(TINFO, "Available number of pids: %u", max_pid_num);
>
> + if (max_pid_num > MAX_SLAVE_OPENS) {
> + max_pid_num = MAX_SLAVE_OPENS;
> + tst_res(TINFO, "Number of pids is too large, capped at: %u",
> + max_pid_num);
> + }
> +
> return max_pid_num;
> }
>
> --
> 2.47.0
More information about the ltp
mailing list