• Deng-Cheng Zhu's avatar
    MIPS, Perf-events: Work with the new PMU interface · 404ff638
    Deng-Cheng Zhu authored
    This is the MIPS part of the following commits by Peter Zijlstra:
    
    - a4eaf7f1
        perf: Rework the PMU methods
    
        Replace pmu::{enable,disable,start,stop,unthrottle} with
        pmu::{add,del,start,stop}, all of which take a flags argument.
    
        The new interface extends the capability to stop a counter while
        keeping it scheduled on the PMU. We replace the throttled state with
        the generic stopped state.
    
        This also allows us to efficiently stop/start counters over certain
        code paths (like IRQ handlers).
    
        It also allows scheduling a counter without it starting, allowing for
        a generic frozen state (useful for rotating stopped counters).
    
        The stopped state is implemented in two different ways, depending on
        how the architecture implemented the throttled state:
    
         1) We disable the counter:
            a) the pmu has per-counter enable bits, we flip that
            b) we program a NOP event, preserving the counter state
    
         2) We store the counter state and ignore all read/overflow events
    
    For MIPSXX, the stopped state is implemented in the way of 1.b as above.
    
    - 33696fc0
        perf: Per PMU disable
    
        Changes perf_disable() into perf_pmu_disable().
    
    - 24cd7f54
        perf: Reduce perf_disable() usage
    
        Since the current perf_disable() usage is only an optimization,
        remove it for now. This eases the removal of the __weak
        hw_perf_enable() interface.
    
    - b0a873eb
        perf: Register PMU implementations
    
        Simple registration interface for struct pmu, this provides the
        infrastructure for removing all the weak functions.
    
    - 51b0fe39
        perf: Deconstify struct pmu
    
        sed -ie 's/const struct pmu\>/struct pmu/g' `git grep -l "const struct pmu\>"`
    Reported-by: default avatarWu Zhangjin <wuzhangjin@gmail.com>
    Acked-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
    Signed-off-by: default avatarDeng-Cheng Zhu <dengcheng.zhu@gmail.com>
    To: a.p.zijlstra@chello.nl
    To: fweisbec@gmail.com
    To: will.deacon@arm.com
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: wuzhangjin@gmail.com
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: dengcheng.zhu@gmail.com
    Cc: matt@console-pimps.org
    Cc: sshtylyov@mvista.com
    Cc: ddaney@caviumnetworks.com
    Patchwork: http://patchwork.linux-mips.org/patch/2012/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    404ff638
perf_event_mipsxx.c 27.5 KB