Skip to content

EMR: CLOCKTICKS changes significantly when using P2P_CRD_OCCUPANCY #332

@yuyuankang

Description

@yuyuankang

Hi,

I am studying peer-to-peer (P2P) traffic on an Intel Xeon Scalable Processor (Gold 6526Y). In the background, an application triggers P2P data transfers from IIO_8 to IIO_1 (within the same socket, S1). I am trying to analyze P2P credits.

From the document, I found 2 counters:

UNC_M2P_P2P_CRD_OCCUPANCY.LOCAL_NCB (on page 275):

Image

CLOCKTICKS (on page 282. I did not find this counter listed in emeraldrapids_uncore_experimental.json):

Image

The workload remains unchanged, but when I run the two commands below (uncore_m2pcie_1 is the receiver side), the reported number of clock ticks differs:

~$ sudo perf stat -a --per-socket -e 'uncore_m2pcie_1/event=0x1/' -e 'uncore_m2pcie_1/event=0x14,umask=0x01/' -- sleep 1

 Performance counter stats for 'system wide':

S0        1              4,555      uncore_m2pcie_1/event=0x1/                                   
S0        1                  0      uncore_m2pcie_1/event=0x14,umask=0x01/                                   
S1        1              3,960      uncore_m2pcie_1/event=0x1/                                   
S1        1    185,547,916,227      uncore_m2pcie_1/event=0x14,umask=0x01/                                   

       1.000726843 seconds time elapsed

~$ sudo perf stat -a --per-socket -e 'uncore_m2pcie_1/event=0x1/' -- sleep 1

 Performance counter stats for 'system wide':

S0        1      2,501,812,075      uncore_m2pcie_1/event=0x1/                                   
S1        1      2,501,845,625      uncore_m2pcie_1/event=0x1/                                   

       1.000719858 seconds time elapsed

The same issue happens on the sender side, when using CLOCKTICKS and UNC_M2P_TxC_CREDITS.PRQ simultaneously.

~$ sudo perf stat -a --per-socket -e 'uncore_m2pcie_8/event=0x1/' -- sleep 1

 Performance counter stats for 'system wide':

S0        1      2,501,877,387      uncore_m2pcie_8/event=0x1/                                   
S1        1      2,501,879,920      uncore_m2pcie_8/event=0x1/                                   

       1.000734614 seconds time elapsed

~$ sudo perf stat -a --per-socket -e 'uncore_m2pcie_8/event=0x1/' -e 'uncore_m2pcie_8/event=0x2d,umask=0x01/' -- sleep 1

 Performance counter stats for 'system wide':

S0        1              5,345      uncore_m2pcie_8/event=0x1/                                   
S0        1      2,501,815,830      uncore_m2pcie_8/event=0x2d,umask=0x01/                                   
S1        1              4,688      uncore_m2pcie_8/event=0x1/                                   
S1        1      1,247,844,120      uncore_m2pcie_8/event=0x2d,umask=0x01/                                   

       1.000703356 seconds time elapsed

From my understanding, CLOCKTICKS shows the number of clock cycles during the monitoring interval. I don't understand why they vary this significantly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions