• Deng-Cheng Zhu's avatar
    MIPS: Add support for hardware performance events (mipsxx) · 3a9ab99e
    Deng-Cheng Zhu authored
    This patch adds the mipsxx Perf-events support based on the skeleton.
    Generic hardware events and cache events are now fully implemented for
    the 24K/34K/74K/1004K cores. To support other cores in mipsxx (such as
    R10000/SB1), the generic hardware event tables and cache event tables
    need to be filled out. To support other CPUs which have different PMU
    than mipsxx, such as RM9000 and LOONGSON2, the additional files
    perf_event_$cpu.c need to be created.
    
    Raw event is an important part of Perf-events. It helps the user collect
    performance data for events that are not listed as the generic hardware
    events and cache events but ARE supported by the CPU's PMU.
    
    This patch also adds this feature for mipsxx 24K/34K/74K/1004K. For how to
    use it, please refer to processor core software user's manual and the
    comments for mipsxx_pmu_map_raw_event() for more details.
    
    Please note that this is a "precise" implementation, which means the
    kernel will check whether the requested raw events are supported by this
    CPU and which hardware counters can be assigned for them.
    
    To test the functionality of Perf-event, you may want to compile the tool
    "perf" for your MIPS platform. You can refer to the following URL:
    http://www.linux-mips.org/archives/linux-mips/2010-10/msg00126.html
    
    You also need to customize the CFLAGS and LDFLAGS in tools/perf/Makefile
    for your libs, includes, etc.
    
    In case you encounter the boot failure in SMVP kernel on multi-threading
    CPUs, you may take a look at:
    http://www.linux-mips.org/git?p=linux-mti.git;a=commitdiff;h=5460815027d802697b879644c74f0e8365254020Signed-off-by: default avatarDeng-Cheng Zhu <dengcheng.zhu@gmail.com>
    To: linux-mips@linux-mips.org
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: jamie.iles@picochip.com
    Cc: ddaney@caviumnetworks.com
    Cc: matt@console-pimps.org
    Patchwork: https://patchwork.linux-mips.org/patch/1689/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    
     create mode 100644 arch/mips/kernel/perf_event_mipsxx.c
    3a9ab99e
perf_event_mipsxx.c 27.4 KB