perf test: Test 73 Sig_trap fails on s390
authorThomas Richter <tmricht@linux.ibm.com>
Thu, 16 Dec 2021 15:14:54 +0000 (16:14 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 16 Dec 2021 19:21:15 +0000 (16:21 -0300)
In Linux next commit 5504f67944484495 ("perf test sigtrap: Add basic
stress test for sigtrap handling") introduced the new test which uses
breakpoint events.  These events are not supported on s390 and PowerPC
and always fail:

  # perf test -F 73
  73: Sigtrap                                                         : FAILED!
  #

Fix it the same way as in the breakpoint tests in file
tests/bp_account.c where these type of tests are skipped on s390 and
PowerPC platforms.

With this patch skip this test on both platforms.

Output after:

  # perf test -F 73
  73: Sigtrap
  #

Fixes: 5504f67944484495 ("perf test sigtrap: Add basic stress test for sigtrap handling")
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Marco Elver <elver@google.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Link: https://lore.kernel.org/r/20211216151454.752066-1-tmricht@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/sigtrap.c

index 1004bf0e7cc97ceb981cff42bab883fff3fa0b6e..1f147fe6595f8ca67f11819768f41a424be820bd 100644 (file)
 #include "tests.h"
 #include "../perf-sys.h"
 
+/*
+ * PowerPC and S390 do not support creation of instruction breakpoints using the
+ * perf_event interface.
+ *
+ * Just disable the test for these architectures until these issues are
+ * resolved.
+ */
+#if defined(__powerpc__) || defined(__s390x__)
+#define BP_ACCOUNT_IS_SUPPORTED 0
+#else
+#define BP_ACCOUNT_IS_SUPPORTED 1
+#endif
+
 #define NUM_THREADS 5
 
 static struct {
@@ -122,6 +135,11 @@ static int test__sigtrap(struct test_suite *test __maybe_unused, int subtest __m
        char sbuf[STRERR_BUFSIZE];
        int i, fd, ret = TEST_FAIL;
 
+       if (!BP_ACCOUNT_IS_SUPPORTED) {
+               pr_debug("Test not supported on this architecture");
+               return TEST_SKIP;
+       }
+
        pthread_barrier_init(&barrier, NULL, NUM_THREADS + 1);
 
        action.sa_flags = SA_SIGINFO | SA_NODEFER;