• Kim Phillips's avatar
    perf/amd/uncore: Set all slices and threads to restore perf stat -a behaviour · c8fe99d0
    Kim Phillips authored
    Commit 2f217d58 ("perf/x86/amd/uncore: Set the thread mask for
    F17h L3 PMCs") inadvertently changed the uncore driver's behaviour
    wrt perf tool invocations with or without a CPU list, specified with
    -C / --cpu=.
    
    Change the behaviour of the driver to assume the former all-cpu (-a)
    case, which is the more commonly desired default.  This fixes
    '-a -A' invocations without explicit cpu lists (-C) to not count
    L3 events only on behalf of the first thread of the first core
    in the L3 domain.
    
    BEFORE:
    
    Activity performed by the first thread of the last core (CPU#43) in
    CPU#40's L3 domain is not reported by CPU#40:
    
    sudo perf stat -a -A -e l3_request_g1.caching_l3_cache_accesses taskset -c 43 perf bench mem memcpy -s 32mb -l 100 -f default
    ...
    CPU36                 21,835      l3_request_g1.caching_l3_cache_accesses
    CPU40                 87,066      l3_request_g1.caching_l3_cache_accesses
    CPU44                 17,360      l3_request_g1.caching_l3_cache_accesses
    ...
    
    AFTER:
    
    The L3 domain activity is now reported by CPU#40:
    
    sudo perf stat -a -A -e l3_request_g1.caching_l3_cache_accesses taskset -c 43 perf bench mem memcpy -s 32mb -l 100 -f default
    ...
    CPU36                354,891      l3_request_g1.caching_l3_cache_accesses
    CPU40              1,780,870      l3_request_g1.caching_l3_cache_accesses
    CPU44                315,062      l3_request_g1.caching_l3_cache_accesses
    ...
    
    Fixes: 2f217d58
    
     ("perf/x86/amd/uncore: Set the thread mask for F17h L3 PMCs")
    Signed-off-by: default avatarKim Phillips <kim.phillips@amd.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20200908214740.18097-2-kim.phillips@amd.com
    c8fe99d0
uncore.c 15 KB