]> git.karo-electronics.de Git - linux-beck.git/commitdiff
perf/x86/intel: Re-organize code that implicitly enables LBR/PEBS
authorYan, Zheng <zheng.z.yan@intel.com>
Wed, 5 Nov 2014 02:56:08 +0000 (21:56 -0500)
committerIngo Molnar <mingo@kernel.org>
Wed, 18 Feb 2015 16:16:12 +0000 (17:16 +0100)
Make later patch more readable, no logic change.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Signed-off-by: Kan Liang <kan.liang@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: eranian@google.com
Cc: jolsa@redhat.com
Link: http://lkml.kernel.org/r/1415156173-10035-13-git-send-email-kan.liang@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/cpu/perf_event.c

index 8ffd71ec2173a3dfd4bb659cbacba585ba481fb0..e0dab5ce61e91cd08947783c969a2a792197f606 100644 (file)
@@ -399,36 +399,35 @@ int x86_pmu_hw_config(struct perf_event *event)
 
                if (event->attr.precise_ip > precise)
                        return -EOPNOTSUPP;
-               /*
-                * check that PEBS LBR correction does not conflict with
-                * whatever the user is asking with attr->branch_sample_type
-                */
-               if (event->attr.precise_ip > 1 &&
-                   x86_pmu.intel_cap.pebs_format < 2) {
-                       u64 *br_type = &event->attr.branch_sample_type;
-
-                       if (has_branch_stack(event)) {
-                               if (!precise_br_compat(event))
-                                       return -EOPNOTSUPP;
-
-                               /* branch_sample_type is compatible */
-
-                       } else {
-                               /*
-                                * user did not specify  branch_sample_type
-                                *
-                                * For PEBS fixups, we capture all
-                                * the branches at the priv level of the
-                                * event.
-                                */
-                               *br_type = PERF_SAMPLE_BRANCH_ANY;
-
-                               if (!event->attr.exclude_user)
-                                       *br_type |= PERF_SAMPLE_BRANCH_USER;
-
-                               if (!event->attr.exclude_kernel)
-                                       *br_type |= PERF_SAMPLE_BRANCH_KERNEL;
-                       }
+       }
+       /*
+        * check that PEBS LBR correction does not conflict with
+        * whatever the user is asking with attr->branch_sample_type
+        */
+       if (event->attr.precise_ip > 1 && x86_pmu.intel_cap.pebs_format < 2) {
+               u64 *br_type = &event->attr.branch_sample_type;
+
+               if (has_branch_stack(event)) {
+                       if (!precise_br_compat(event))
+                               return -EOPNOTSUPP;
+
+                       /* branch_sample_type is compatible */
+
+               } else {
+                       /*
+                        * user did not specify  branch_sample_type
+                        *
+                        * For PEBS fixups, we capture all
+                        * the branches at the priv level of the
+                        * event.
+                        */
+                       *br_type = PERF_SAMPLE_BRANCH_ANY;
+
+                       if (!event->attr.exclude_user)
+                               *br_type |= PERF_SAMPLE_BRANCH_USER;
+
+                       if (!event->attr.exclude_kernel)
+                               *br_type |= PERF_SAMPLE_BRANCH_KERNEL;
                }
        }