Excerpt from man 2 perf_event_open:

/proc/sys/kernel/perf_event_paranoid
  The perf_event_paranoid file can be set to restrict access to the
  performance counters.
    2 allow only user-space measurements.
    1 allow both kernel and user measurements (default).
    0 allow access to CPU-specific data but not raw tracepoint samples.
   -1 no restrictions.

require_paranoia_below() should return 0 if perf_event_paranoid is below a
specified level, the value from perf_event_paranoid is read into an
unsigned long so the incorrect value is returned when perf_event_paranoid
is set to -1.

Without this patch applied there is the same number of selftests/powerpc
which skip when /proc/sys/kernel/perf_event_paranoid is set to 1 or -1 but
no skips when set to zero.
With this patch applied there no skipped selftests/powerpc test when
/proc/sys/kernel/perf_event_paranoid is set to 0 or -1.

Signed-off-by: Cyril Bur <[email protected]>
---
 tools/testing/selftests/powerpc/pmu/lib.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/powerpc/pmu/lib.c 
b/tools/testing/selftests/powerpc/pmu/lib.c
index a361ad3..8b992fa 100644
--- a/tools/testing/selftests/powerpc/pmu/lib.c
+++ b/tools/testing/selftests/powerpc/pmu/lib.c
@@ -190,7 +190,7 @@ int parse_proc_maps(void)
 
 bool require_paranoia_below(int level)
 {
-       unsigned long current;
+       long current;
        char *end, buf[16];
        FILE *f;
        int rc;
@@ -208,7 +208,7 @@ bool require_paranoia_below(int level)
                goto out_close;
        }
 
-       current = strtoul(buf, &end, 10);
+       current = strtol(buf, &end, 10);
 
        if (end == buf) {
                printf("Couldn't parse " PARANOID_PATH "?\n");
@@ -216,7 +216,7 @@ bool require_paranoia_below(int level)
        }
 
        if (current >= level)
-               goto out;
+               goto out_close;
 
        rc = 0;
 out_close:
-- 
2.7.2

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to