• N
    perf/smmuv3: Add arm64 smmuv3 pmu driver · 6e1561d0
    Neil Leeder 提交于
    commit 7d839b4b9e00645e49345d6ce5dfa8edf53c1a21 upstream
    
    Adds a new driver to support the SMMUv3 PMU and add it into the
    perf events framework.
    
    Each SMMU node may have multiple PMUs associated with it, each of
    which may support different events.
    
    SMMUv3 PMCG devices are named as smmuv3_pmcg_<phys_addr_page> where
    <phys_addr_page> is the physical page address of the SMMU PMCG
    wrapped to 4K boundary. For example, the PMCG at 0xff88840000 is
    named smmuv3_pmcg_ff88840
    
    Filtering by stream id is done by specifying filtering parameters
    with the event. options are:
       filter_enable    - 0 = no filtering, 1 = filtering enabled
       filter_span      - 0 = exact match, 1 = pattern match
       filter_stream_id - pattern to filter against
    
    Example: perf stat -e smmuv3_pmcg_ff88840/transaction,filter_enable=1,
                           filter_span=1,filter_stream_id=0x42/ -a netperf
    
    Applies filter pattern 0x42 to transaction events, which means events
    matching stream ids 0x42 & 0x43 are counted as only upper StreamID
    bits are required to match the given filter. Further filtering
    information is available in the SMMU documentation.
    
    SMMU events are not attributable to a CPU, so task mode and sampling
    are not supported.
    Signed-off-by: NNeil Leeder <nleeder@codeaurora.org>
    Signed-off-by: NShameer Kolothum <shameerali.kolothum.thodi@huawei.com>
    Reviewed-by: NRobin Murphy <robin.murphy@arm.com>
    [will: fold in review feedback from Robin]
    [will: rewrite Kconfig text and allow building as a module]
    Signed-off-by: NWill Deacon <will.deacon@arm.com>
    Signed-off-by: Zou Cao<zoucao@linux.alibaba.com>
    Reviewed-by: NXunlei Pang <xlpang@linux.alibaba.com>
    6e1561d0
Kconfig 3.3 KB