selftests/powerpc: Bump up rlimit for perf-hwbreak test
authorNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Tue, 22 Nov 2022 06:40:53 +0000 (12:10 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Nov 2022 10:46:47 +0000 (21:46 +1100)
The systemwide perf hardware breakpoint test tries to open a perf event
on each cpu. On large systems, we run out of file descriptors and fail
the test. Instead, have the test set the file descriptor limit to an
arbitraty high value.

Reported-by: Rohan Deshpande <rohan_d@linux.vnet.ibm.com>
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/187fed5843cecc1e5066677b6296ee88337d7bef.1669096083.git.naveen.n.rao@linux.vnet.ibm.com
tools/testing/selftests/powerpc/ptrace/perf-hwbreak.c

index ea5e14ecbf309f4410fbba8c860f0d993985b4f7..866e5be48ee33ac3421bf071b9eb279a026d8fd6 100644 (file)
@@ -26,6 +26,7 @@
 #include <sys/ioctl.h>
 #include <sys/wait.h>
 #include <sys/ptrace.h>
+#include <sys/resource.h>
 #include <sys/sysinfo.h>
 #include <asm/ptrace.h>
 #include <elf.h>
@@ -140,8 +141,19 @@ static void disable_fds(int *fd, int n)
 
 static int perf_systemwide_event_open(int *fd, __u32 type, __u64 addr, __u64 len)
 {
+       struct rlimit rlim;
        int i = 0;
 
+       if (getrlimit(RLIMIT_NOFILE, &rlim)) {
+               perror("getrlimit");
+               return -1;
+       }
+       rlim.rlim_cur = 65536;
+       if (setrlimit(RLIMIT_NOFILE, &rlim)) {
+               perror("setrlimit");
+               return -1;
+       }
+
        /* Assume online processors are 0 to nprocs for simplisity */
        for (i = 0; i < nprocs; i++) {
                fd[i] = perf_cpu_event_open(i, type, addr, len);