Merge remote-tracking branch 'tip/perf/urgent' into perf/core, to pick up fixes
[linux-2.6-microblaze.git] / tools / perf / util / evsel.c
index 7389746..f894893 100644 (file)
@@ -271,12 +271,17 @@ struct perf_evsel *perf_evsel__new_idx(struct perf_event_attr *attr, int idx)
        return evsel;
 }
 
+static bool perf_event_can_profile_kernel(void)
+{
+       return geteuid() == 0 || perf_event_paranoid() == -1;
+}
+
 struct perf_evsel *perf_evsel__new_cycles(bool precise)
 {
        struct perf_event_attr attr = {
                .type   = PERF_TYPE_HARDWARE,
                .config = PERF_COUNT_HW_CPU_CYCLES,
-               .exclude_kernel = geteuid() != 0,
+               .exclude_kernel = !perf_event_can_profile_kernel(),
        };
        struct perf_evsel *evsel;