lkml.org 
[lkml]   [2019]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 117/205] powerpc/perf: Fix thresholding counter data for unknown type
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit 17cfccc91545682513541924245abb876d296063 ]

    MMCRA[34:36] and MMCRA[38:44] expose the thresholding counter value.
    Thresholding counter can be used to count latency cycles such as
    load miss to reload. But threshold counter value is not relevant
    when the sampled instruction type is unknown or reserved. Patch to
    fix the thresholding counter value to zero when sampled instruction
    type is unknown or reserved.

    Fixes: 170a315f41c6('powerpc/perf: Support to export MMCRA[TEC*] field to userspace')
    Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/powerpc/perf/isa207-common.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/arch/powerpc/perf/isa207-common.c b/arch/powerpc/perf/isa207-common.c
    index 2efee3f196f5..cf9c35aa0cf4 100644
    --- a/arch/powerpc/perf/isa207-common.c
    +++ b/arch/powerpc/perf/isa207-common.c
    @@ -228,8 +228,13 @@ void isa207_get_mem_weight(u64 *weight)
    u64 mmcra = mfspr(SPRN_MMCRA);
    u64 exp = MMCRA_THR_CTR_EXP(mmcra);
    u64 mantissa = MMCRA_THR_CTR_MANT(mmcra);
    + u64 sier = mfspr(SPRN_SIER);
    + u64 val = (sier & ISA207_SIER_TYPE_MASK) >> ISA207_SIER_TYPE_SHIFT;

    - *weight = mantissa << (2 * exp);
    + if (val == 0 || val == 7)
    + *weight = 0;
    + else
    + *weight = mantissa << (2 * exp);
    }

    int isa207_get_constraint(u64 event, unsigned long *maskp, unsigned long *valp)
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-02-11 16:01    [W:2.576 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site