mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
perf test record.sh: Raise limit of open file descriptors
Subtest for system-wide record with '--threads=cpu' option fails due to a limit of open file descriptors on systems with 128 or more CPUs as the default limit is set to 1024. The number of open file descriptors should be slightly above nmb_events*nmb_cpus + nmb_cpus(for perf.data.n) + 4*nmb_cpus(for pipes), which equals 8*nmb_cpus. Therefore, temporarily raise the limit to 16*nmb_cpus for the test. Committer notes: Instead of disabling ShellCheck warnings all the uses of 'uname -n', i.e. those: In tests/shell/record.sh line 35: default_fd_limit=$(ulimit -Sn) ^-^ SC3045 (warning): In POSIX sh, ulimit -S is undefined. We can just switch from using '/bin/sh' to '/bin/bash' for this test, as bash _has_ 'ulimit -n', so ShellCheck will not emit that warning. There are dozens of 'perf test' shell tests that do just that, '/bin/bash' is a reasonable expectation for those tests. Signed-off-by: Veronika Molnarova <vmolnaro@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Ian Rogers <irogers@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kajol Jain <kjain@linux.ibm.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Radostin Stoyanov <rstoyano@redhat.com> Link: https://lore.kernel.org/linux-perf-users/20240429085721.10122-1-vmolnaro@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
4c55560f23
commit
27ac597c0e
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# perf record tests
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
@ -23,6 +23,15 @@ br_cntr_file="/caps/branch_counter_nr"
|
||||
br_cntr_output="branch stack counters"
|
||||
br_cntr_script_output="br_cntr: A"
|
||||
|
||||
default_fd_limit=$(ulimit -Sn)
|
||||
# With option --threads=cpu the number of open file descriptors should be
|
||||
# equal to sum of: nmb_cpus * nmb_events (2+dummy),
|
||||
# nmb_threads for perf.data.n (equal to nmb_cpus) and
|
||||
# 2*nmb_cpus of pipes = 4*nmb_cpus (each pipe has 2 ends)
|
||||
# All together it needs 8*nmb_cpus file descriptors plus some are also used
|
||||
# outside of testing, thus raising the limit to 16*nmb_cpus
|
||||
min_fd_limit=$(($(getconf _NPROCESSORS_ONLN) * 16))
|
||||
|
||||
cleanup() {
|
||||
rm -rf "${perfdata}"
|
||||
rm -rf "${perfdata}".old
|
||||
@ -197,11 +206,19 @@ test_branch_counter() {
|
||||
echo "Branch counter test [Success]"
|
||||
}
|
||||
|
||||
# raise the limit of file descriptors to minimum
|
||||
if [[ $default_fd_limit -lt $min_fd_limit ]]; then
|
||||
ulimit -Sn $min_fd_limit
|
||||
fi
|
||||
|
||||
test_per_thread
|
||||
test_register_capture
|
||||
test_system_wide
|
||||
test_workload
|
||||
test_branch_counter
|
||||
|
||||
# restore the default value
|
||||
ulimit -Sn $default_fd_limit
|
||||
|
||||
cleanup
|
||||
exit $err
|
||||
|
Loading…
Reference in New Issue
Block a user