lkml.org 
[lkml]   [2014]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[V6 06/11] powerpc, perf: Re-arrange PMU based branch filter processing in POWER8
    Date
    This patch does some code re-arrangements to make it clear that
    it ignores any separate privilege level branch filter request
    and does not support any combinations of HW PMU branch filters.

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

    diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c
    index fe2763b..13f47f5 100644
    --- a/arch/powerpc/perf/power8-pmu.c
    +++ b/arch/powerpc/perf/power8-pmu.c
    @@ -635,8 +635,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
    @@ -644,20 +642,15 @@ 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_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 */
    --
    1.7.11.7


    \
     
     \ /
      Last update: 2014-05-05 11:41    [W:4.107 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site