• K
    tools/perf: Add mem_hops field in perf_mem_data_src structure · cae1d759
    Kajol Jain 提交于
    Going forward, future generation systems can have more hierarchy
    within the node/package level but currently we don't have any data source
    encoding field in perf, which can be used to represent this level of data.
    
    Add a new field called 'mem_hops' in the perf_mem_data_src structure
    which can be used to represent intra-node/package or inter-node/off-package
    details. This field is of size 3 bits where PERF_MEM_HOPS_{NA, 0..6} value
    can be used to present different hop levels data.
    
    Also add corresponding macros to define mem_hop field values
    and shift value.
    
    Currently we define macro for HOPS_0 which corresponds
    to data coming from another core but same node.
    
    Add functionality to represent mem_hop field data in
    perf_mem__lvl_scnprintf function with the help of added string
    array called mem_hops.
    
    For ex: Encodings for mem_hops fields with L2 cache:
    
    L2                      - local L2
    L2 | REMOTE | HOPS_0    - remote core, same node L2
    
    Since with the addition of HOPS field, now remote can be used to
    denote cache access from the same node but different core, a check
    is added in the c2c_decode_stats function to set mrem only when HOPS
    is zero along with set remote field.
    Signed-off-by: NKajol Jain <kjain@linux.ibm.com>
    Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20211006140654.298352-4-kjain@linux.ibm.com
    cae1d759
perf_event.h 39.0 KB