[LTP] [PATCH v3 4/4] syscalls/msgstress: tune limit of processes for small machines
Krzysztof Kozlowski
krzysztof.kozlowski@canonical.com
Wed Jun 23 15:59:12 CEST 2021
Forking the exactly amount of processes as the limit (either from
max_pids or from cgroups) is risky - OS might be doing some work and
interfere with the test. Instead leave some reserve (hard-coded to
500) for the OS so the test won't fail on fork failure.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
lib/tst_pid.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/tst_pid.c b/lib/tst_pid.c
index c1ea3fe90e83..1b2e85959430 100644
--- a/lib/tst_pid.c
+++ b/lib/tst_pid.c
@@ -32,6 +32,8 @@
#define PID_MAX_PATH "/proc/sys/kernel/pid_max"
#define CGROUPS_V1_SLICE_FMT "/sys/fs/cgroup/pids/user.slice/user-%d.slice/pids.max"
#define CGROUPS_V2_SLICE_FMT "/sys/fs/cgroup/user.slice/user-%d.slice/pids.max"
+/* Leave some available processes for the OS */
+#define PIDS_RESERVE 500
pid_t tst_get_unused_pid_(void (*cleanup_fn) (void))
{
@@ -106,7 +108,7 @@ static int get_session_pids_limit(void (*cleanup_fn) (void))
if (max_pids < 0)
return -1;
- return max_pids;
+ return max_pids > PIDS_RESERVE ? max_pids - PIDS_RESERVE : 0;
}
int tst_get_free_pids_(void (*cleanup_fn) (void))
--
2.27.0
More information about the ltp
mailing list