This patch does some code re-arrangements to make it clear that kernel
ignores any separate privilege level branch filter request and does not
support any combinations of HW PMU branch filters.

Signed-off-by: Anshuman Khandual <khand...@linux.vnet.ibm.com>
---
 arch/powerpc/perf/power8-pmu.c | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c
index 9958ba8..0d11e9e 100644
--- a/arch/powerpc/perf/power8-pmu.c
+++ b/arch/powerpc/perf/power8-pmu.c
@@ -656,8 +656,6 @@ static int power8_generic_events[] = {
 
 static u64 power8_bhrb_filter_map(u64 branch_sample_type)
 {
-       u64 pmu_bhrb_filter = 0;
-
        /* BHRB and regular PMU events share the same privilege state
         * filter configuration. BHRB is always recorded along with a
         * regular PMU event. As the privilege state filter is handled
@@ -665,24 +663,18 @@ static u64 power8_bhrb_filter_map(u64 branch_sample_type)
         * PMU event, we ignore any separate BHRB specific request.
         */
 
-       /* No branch filter requested */
-       if (branch_sample_type & PERF_SAMPLE_BRANCH_ANY)
-               return pmu_bhrb_filter;
-
-       /* Invalid branch filter options - HW does not support */
-       if (branch_sample_type & PERF_SAMPLE_BRANCH_ANY_RETURN)
-               return -1;
+       /* Ignore user, kernel, hv bits */
+       branch_sample_type &= ~PERF_SAMPLE_BRANCH_PLM_ALL;
 
-       if (branch_sample_type & PERF_SAMPLE_BRANCH_IND_CALL)
-               return -1;
+       /* No branch filter requested */
+       if (branch_sample_type == PERF_SAMPLE_BRANCH_ANY)
+               return 0;
 
        if (branch_sample_type & PERF_SAMPLE_BRANCH_CALL)
                return -1;
 
-       if (branch_sample_type & PERF_SAMPLE_BRANCH_ANY_CALL) {
-               pmu_bhrb_filter |= POWER8_MMCRA_IFM1;
-               return pmu_bhrb_filter;
-       }
+       if (branch_sample_type == PERF_SAMPLE_BRANCH_ANY_CALL)
+               return POWER8_MMCRA_IFM1;
 
        /* Every thing else is unsupported */
        return -1;
-- 
2.1.0

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to