lkml.org 
[lkml]   [2010]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[080/205] perf, x86: Fix incorrect branches event on AMD CPUs
    2.6.34-stable review patch.  If anyone has any objections, please let us know.

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

    From: Vince Weaver <vweaver1@eecs.utk.edu>

    commit f287d332ce835f77a4f5077d2c0ef1e3f9ea42d2 upstream.

    While doing some performance counter validation tests on some
    assembly language programs I noticed that the "branches:u"
    count was very wrong on AMD machines.

    It looks like the wrong event was selected.

    Signed-off-by: Vince Weaver <vweaver1@eecs.utk.edu>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Robert Richter <robert.richter@amd.com>
    Cc: Borislav Petkov <borislav.petkov@amd.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    LKML-Reference: <alpine.DEB.2.00.1007011526010.23160@cl320.eecs.utk.edu>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kernel/cpu/perf_event_amd.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/x86/kernel/cpu/perf_event_amd.c
    +++ b/arch/x86/kernel/cpu/perf_event_amd.c
    @@ -102,8 +102,8 @@ static const u64 amd_perfmon_event_map[]
    [PERF_COUNT_HW_INSTRUCTIONS] = 0x00c0,
    [PERF_COUNT_HW_CACHE_REFERENCES] = 0x0080,
    [PERF_COUNT_HW_CACHE_MISSES] = 0x0081,
    - [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x00c4,
    - [PERF_COUNT_HW_BRANCH_MISSES] = 0x00c5,
    + [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x00c2,
    + [PERF_COUNT_HW_BRANCH_MISSES] = 0x00c3,
    };

    static u64 amd_pmu_event_map(int hw_event)



    \
     
     \ /
      Last update: 2010-07-30 20:29    [W:0.019 / U:30.708 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site