• Gautham R. Shenoy's avatar
    powerpc/cacheinfo: Lookup cache by dt node and thread-group id · a4bec516
    Gautham R. Shenoy authored
    Currently the cacheinfo code on powerpc indexes the "cache" objects
    (modelling the L1/L2/L3 caches) where the key is device-tree node
    corresponding to that cache. On some of the POWER server platforms
    thread-groups within the core share different sets of caches (Eg: On
    SMT8 POWER9 systems, threads 0,2,4,6 of a core share L1 cache and
    threads 1,3,5,7 of the same core share another L1 cache). On such
    platforms, there is a single device-tree node corresponding to that
    cache and the cache-configuration within the threads of the core is
    indicated via "ibm,thread-groups" device-tree property.
    
    Since the current code is not aware of the "ibm,thread-groups"
    property, on the aforementoined systems, cacheinfo code still treats
    all the threads in the core to be sharing the cache because of the
    single device-tree node (In the earlier example, the cacheinfo code
    would says CPUs 0-7 share L1 cache).
    
    In this patch, we make the powerpc cacheinfo code aware of the
    "ibm,thread-groups" property. We indexe the "cache" objects by the
    key-pair (device-tree node, thread-group id). For any CPUX, for a
    given level of cache, the thread-group id is defined to be the first
    CPU in the "ibm,thread-groups" cache-group containing CPUX. For levels
    of cache which are not represented in "ibm,thread-groups" property,
    the thread-group id is -1.
    
    [parth: Remove "static" keyword for the definition of "thread_group_l1_cache_map"
    and "thread_group_l2_cache_map" to get rid of the compile error.]
    Signed-off-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
    Signed-off-by: default avatarParth Shah <parth@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210728175607.591679-2-parth@linux.ibm.com
    a4bec516
cacheinfo.c 24.8 KB