1bb42b3d3SRoman SudarikovWhat: /sys/devices/uncore_iio_x/dieX 2bb42b3d3SRoman SudarikovDate: February 2020 3*61fb0f7eSAlexander AntonovContact: Alexander Antonov <alexander.antonov@linux.intel.com> 4bb42b3d3SRoman SudarikovDescription: 5bb42b3d3SRoman Sudarikov Each IIO stack (PCIe root port) has its own IIO PMON block, so 6bb42b3d3SRoman Sudarikov each dieX file (where X is die number) holds "Segment:Root Bus" 7bb42b3d3SRoman Sudarikov for PCIe root port, which can be monitored by that IIO PMON 8bb42b3d3SRoman Sudarikov block. 9bb42b3d3SRoman Sudarikov For example, on 4-die Xeon platform with up to 6 IIO stacks per 10bb42b3d3SRoman Sudarikov die and, therefore, 6 IIO PMON blocks per die, the mapping of 1154a19b4dSMauro Carvalho Chehab IIO PMON block 0 exposes as the following:: 12bb42b3d3SRoman Sudarikov 13bb42b3d3SRoman Sudarikov $ ls /sys/devices/uncore_iio_0/die* 14bb42b3d3SRoman Sudarikov -r--r--r-- /sys/devices/uncore_iio_0/die0 15bb42b3d3SRoman Sudarikov -r--r--r-- /sys/devices/uncore_iio_0/die1 16bb42b3d3SRoman Sudarikov -r--r--r-- /sys/devices/uncore_iio_0/die2 17bb42b3d3SRoman Sudarikov -r--r--r-- /sys/devices/uncore_iio_0/die3 18bb42b3d3SRoman Sudarikov 19bb42b3d3SRoman Sudarikov $ tail /sys/devices/uncore_iio_0/die* 20bb42b3d3SRoman Sudarikov ==> /sys/devices/uncore_iio_0/die0 <== 21bb42b3d3SRoman Sudarikov 0000:00 22bb42b3d3SRoman Sudarikov ==> /sys/devices/uncore_iio_0/die1 <== 23bb42b3d3SRoman Sudarikov 0000:40 24bb42b3d3SRoman Sudarikov ==> /sys/devices/uncore_iio_0/die2 <== 25bb42b3d3SRoman Sudarikov 0000:80 26bb42b3d3SRoman Sudarikov ==> /sys/devices/uncore_iio_0/die3 <== 27bb42b3d3SRoman Sudarikov 0000:c0 28bb42b3d3SRoman Sudarikov 2954a19b4dSMauro Carvalho Chehab Which means:: 3054a19b4dSMauro Carvalho Chehab 31bb42b3d3SRoman Sudarikov IIO PMU 0 on die 0 belongs to PCI RP on bus 0x00, domain 0x0000 32bb42b3d3SRoman Sudarikov IIO PMU 0 on die 1 belongs to PCI RP on bus 0x40, domain 0x0000 33bb42b3d3SRoman Sudarikov IIO PMU 0 on die 2 belongs to PCI RP on bus 0x80, domain 0x0000 34bb42b3d3SRoman Sudarikov IIO PMU 0 on die 3 belongs to PCI RP on bus 0xc0, domain 0x0000 35*61fb0f7eSAlexander Antonov 36*61fb0f7eSAlexander AntonovWhat: /sys/devices/uncore_upi_x/dieX 37*61fb0f7eSAlexander AntonovDate: March 2022 38*61fb0f7eSAlexander AntonovContact: Alexander Antonov <alexander.antonov@linux.intel.com> 39*61fb0f7eSAlexander AntonovDescription: 40*61fb0f7eSAlexander Antonov Each /sys/devices/uncore_upi_X/dieY file holds "upi_Z,die_W" 41*61fb0f7eSAlexander Antonov value that means UPI link number X on die Y is connected to UPI 42*61fb0f7eSAlexander Antonov link Z on die W and this link between sockets can be monitored 43*61fb0f7eSAlexander Antonov by UPI PMON block. 44*61fb0f7eSAlexander Antonov For example, 4-die Sapphire Rapids platform has the following 45*61fb0f7eSAlexander Antonov UPI 0 topology:: 46*61fb0f7eSAlexander Antonov 47*61fb0f7eSAlexander Antonov # tail /sys/devices/uncore_upi_0/die* 48*61fb0f7eSAlexander Antonov ==> /sys/devices/uncore_upi_0/die0 <== 49*61fb0f7eSAlexander Antonov upi_1,die_1 50*61fb0f7eSAlexander Antonov ==> /sys/devices/uncore_upi_0/die1 <== 51*61fb0f7eSAlexander Antonov upi_0,die_3 52*61fb0f7eSAlexander Antonov ==> /sys/devices/uncore_upi_0/die2 <== 53*61fb0f7eSAlexander Antonov upi_1,die_3 54*61fb0f7eSAlexander Antonov ==> /sys/devices/uncore_upi_0/die3 <== 55*61fb0f7eSAlexander Antonov upi_0,die_1 56*61fb0f7eSAlexander Antonov 57*61fb0f7eSAlexander Antonov Which means:: 58*61fb0f7eSAlexander Antonov 59*61fb0f7eSAlexander Antonov UPI link 0 on die 0 is connected to UPI link 1 on die 1 60*61fb0f7eSAlexander Antonov UPI link 0 on die 1 is connected to UPI link 0 on die 3 61*61fb0f7eSAlexander Antonov UPI link 0 on die 2 is connected to UPI link 1 on die 3 62*61fb0f7eSAlexander Antonov UPI link 0 on die 3 is connected to UPI link 0 on die 1