• Alexander Antonov's avatar
    perf/x86/intel/uncore: Enable I/O stacks to IIO PMON mapping on SNR · c1777be3
    Alexander Antonov authored
    I/O stacks to PMON mapping on Skylake server relies on topology information
    from CPU_BUS_NO MSR but this approach is not applicable for SNR and ICX.
    Mapping on these platforms can be gotten by reading SAD_CONTROL_CFG CSR
    from Mesh2IIO device with 0x09a2 DID.
    SAD_CONTROL_CFG CSR contains stack IDs in its own notation which are
    statically mapped on IDs in PMON notation.
    
    The map for Snowridge:
    
    Stack Name         | CBDMA/DMI | PCIe Gen 3 | DLB | NIS | QAT
    SAD_CONTROL_CFG ID |     0     |      1     |  2  |  3  |  4
    PMON ID            |     1     |      4     |  3  |  2  |  0
    
    This patch enables I/O stacks to IIO PMON mapping on Snowridge.
    Mapping is exposed through attributes /sys/devices/uncore_iio_<pmu_idx>/dieX,
    where dieX is file which holds "Segment:Root Bus" for PCIe root port which
    can be monitored by that IIO PMON block. Example for Snowridge:
    
    ==> /sys/devices/uncore_iio_0/die0 <==
    0000:f3
    ==> /sys/devices/uncore_iio_1/die0 <==
    0000:00
    ==> /sys/devices/uncore_iio_2/die0 <==
    0000:eb
    ==> /sys/devices/uncore_iio_3/die0 <==
    0000:e3
    ==> /sys/devices/uncore_iio_4/die0 <==
    0000:14
    
    Mapping for Icelake server will be enabled in the follow-up patch.
    Signed-off-by: default avatarAlexander Antonov <alexander.antonov@linux.intel.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
    Link: https://lkml.kernel.org/r/20210426131614.16205-3-alexander.antonov@linux.intel.com
    c1777be3
uncore_snbep.c 163 KB