16b138c7bSAndi Kleen[
26b138c7bSAndi Kleen    {
362201368SIan Rogers        "BriefDescription": "Number of qfclks",
46b138c7bSAndi Kleen        "Counter": "0,1,2,3",
56b138c7bSAndi Kleen        "EventCode": "0x14",
66b138c7bSAndi Kleen        "EventName": "UNC_Q_CLOCKTICKS",
76b138c7bSAndi Kleen        "PerPkg": "1",
862201368SIan Rogers        "PublicDescription": "Counts the number of clocks in the QPI LL.  This clock runs at 1/8th the GT/s speed of the QPI link.  For example, a 8GT/s link will have qfclk or 1GHz.  JKT does not support dynamic link speeds, so this frequency is fixed.",
96b138c7bSAndi Kleen        "Unit": "QPI LL"
106b138c7bSAndi Kleen    },
116b138c7bSAndi Kleen    {
1262201368SIan Rogers        "BriefDescription": "Count of CTO Events",
136b138c7bSAndi Kleen        "Counter": "0,1,2,3",
1462201368SIan Rogers        "EventCode": "0x38",
1562201368SIan Rogers        "EventName": "UNC_Q_CTO_COUNT",
1662201368SIan Rogers        "ExtSel": "1",
176b138c7bSAndi Kleen        "PerPkg": "1",
1862201368SIan Rogers        "PublicDescription": "Counts the number of CTO (cluster trigger outs) events that were asserted across the two slots.  If both slots trigger in a given cycle, the event will increment by 2.  You can use edge detect to count the number of cases when both events triggered.",
196b138c7bSAndi Kleen        "Unit": "QPI LL"
206b138c7bSAndi Kleen    },
216b138c7bSAndi Kleen    {
2262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - Egress Credits",
236b138c7bSAndi Kleen        "Counter": "0,1,2,3",
2462201368SIan Rogers        "EventCode": "0x13",
2562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_CREDITS",
266b138c7bSAndi Kleen        "PerPkg": "1",
27*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because there were not enough Egress credits.  Had there been enough credits, the spawn would have worked as the RBT bit was set and the RBT tag matched.",
286b138c7bSAndi Kleen        "UMask": "0x2",
296b138c7bSAndi Kleen        "Unit": "QPI LL"
306b138c7bSAndi Kleen    },
316b138c7bSAndi Kleen    {
3262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - Egress and RBT Miss",
3362201368SIan Rogers        "Counter": "0,1,2,3",
3462201368SIan Rogers        "EventCode": "0x13",
3562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_CREDITS_MISS",
3662201368SIan Rogers        "PerPkg": "1",
37*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because the RBT tag did not match and there weren't enough Egress credits.   The valid bit was set.",
3862201368SIan Rogers        "UMask": "0x20",
3962201368SIan Rogers        "Unit": "QPI LL"
4062201368SIan Rogers    },
4162201368SIan Rogers    {
4262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - Egress and RBT Invalid",
4362201368SIan Rogers        "Counter": "0,1,2,3",
4462201368SIan Rogers        "EventCode": "0x13",
4562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_CREDITS_RBT",
4662201368SIan Rogers        "PerPkg": "1",
47*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because there were not enough Egress credits AND the RBT bit was not set, but the RBT tag matched.",
4862201368SIan Rogers        "UMask": "0x8",
4962201368SIan Rogers        "Unit": "QPI LL"
5062201368SIan Rogers    },
5162201368SIan Rogers    {
5262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - Egress and RBT Miss, Invalid",
5362201368SIan Rogers        "Counter": "0,1,2,3",
5462201368SIan Rogers        "EventCode": "0x13",
5562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_CREDITS_RBT_MISS",
5662201368SIan Rogers        "PerPkg": "1",
57*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because the RBT tag did not match, the valid bit was not set and there weren't enough Egress credits.",
5862201368SIan Rogers        "UMask": "0x80",
5962201368SIan Rogers        "Unit": "QPI LL"
6062201368SIan Rogers    },
6162201368SIan Rogers    {
6262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - RBT Miss",
6362201368SIan Rogers        "Counter": "0,1,2,3",
6462201368SIan Rogers        "EventCode": "0x13",
6562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_MISS",
6662201368SIan Rogers        "PerPkg": "1",
67*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because the RBT tag did not match although the valid bit was set and there were enough Egress credits.",
6862201368SIan Rogers        "UMask": "0x10",
6962201368SIan Rogers        "Unit": "QPI LL"
7062201368SIan Rogers    },
7162201368SIan Rogers    {
7262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - RBT Invalid",
7362201368SIan Rogers        "Counter": "0,1,2,3",
7462201368SIan Rogers        "EventCode": "0x13",
7562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_RBT_HIT",
7662201368SIan Rogers        "PerPkg": "1",
77*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because the route-back table (RBT) specified that the transaction should not trigger a direct2core transaction.  This is common for IO transactions.  There were enough Egress credits and the RBT tag matched but the valid bit was not set.",
7862201368SIan Rogers        "UMask": "0x4",
7962201368SIan Rogers        "Unit": "QPI LL"
8062201368SIan Rogers    },
8162201368SIan Rogers    {
8262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Failure - RBT Miss and Invalid",
8362201368SIan Rogers        "Counter": "0,1,2,3",
8462201368SIan Rogers        "EventCode": "0x13",
8562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.FAILURE_RBT_MISS",
8662201368SIan Rogers        "PerPkg": "1",
87*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn failed because the RBT tag did not match and the valid bit was not set although there were enough Egress credits.",
8862201368SIan Rogers        "UMask": "0x40",
8962201368SIan Rogers        "Unit": "QPI LL"
9062201368SIan Rogers    },
9162201368SIan Rogers    {
9262201368SIan Rogers        "BriefDescription": "Direct 2 Core Spawning; Spawn Success",
9362201368SIan Rogers        "Counter": "0,1,2,3",
9462201368SIan Rogers        "EventCode": "0x13",
9562201368SIan Rogers        "EventName": "UNC_Q_DIRECT2CORE.SUCCESS_RBT_HIT",
9662201368SIan Rogers        "PerPkg": "1",
97*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of DRS packets that we attempted to do direct2core on.  There are 4 mutually exclusive filters.  Filter [0] can be used to get successful spawns, while [1:3] provide the different failure cases.  Note that this does not count packets that are not candidates for Direct2Core.  The only candidates for Direct2Core are DRS packets destined for Cbos.; The spawn was successful.  There were sufficient credits, the RBT valid bit was set and there was an RBT tag match.  The message was marked to spawn direct2core.",
9862201368SIan Rogers        "UMask": "0x1",
9962201368SIan Rogers        "Unit": "QPI LL"
10062201368SIan Rogers    },
10162201368SIan Rogers    {
10262201368SIan Rogers        "BriefDescription": "Cycles in L1",
10362201368SIan Rogers        "Counter": "0,1,2,3",
10462201368SIan Rogers        "EventCode": "0x12",
10562201368SIan Rogers        "EventName": "UNC_Q_L1_POWER_CYCLES",
10662201368SIan Rogers        "PerPkg": "1",
10762201368SIan Rogers        "PublicDescription": "Number of QPI qfclk cycles spent in L1 power mode.  L1 is a mode that totally shuts down a QPI link.  Use edge detect to count the number of instances when the QPI link entered L1.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another. Because L1 totally shuts down the link, it takes a good amount of time to exit this mode.",
10862201368SIan Rogers        "Unit": "QPI LL"
10962201368SIan Rogers    },
11062201368SIan Rogers    {
11162201368SIan Rogers        "BriefDescription": "Cycles in L0p",
11262201368SIan Rogers        "Counter": "0,1,2,3",
11362201368SIan Rogers        "EventCode": "0x10",
11462201368SIan Rogers        "EventName": "UNC_Q_RxL0P_POWER_CYCLES",
11562201368SIan Rogers        "PerPkg": "1",
11662201368SIan Rogers        "PublicDescription": "Number of QPI qfclk cycles spent in L0p power mode.  L0p is a mode where we disable 1/2 of the QPI lanes, decreasing our bandwidth in order to save power.  It increases snoop and data transfer latencies and decreases overall bandwidth.  This mode can be very useful in NUMA optimized workloads that largely only utilize QPI for snoops and their responses.  Use edge detect to count the number of instances when the QPI link entered L0p.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.",
11762201368SIan Rogers        "Unit": "QPI LL"
11862201368SIan Rogers    },
11962201368SIan Rogers    {
12062201368SIan Rogers        "BriefDescription": "Cycles in L0",
12162201368SIan Rogers        "Counter": "0,1,2,3",
12262201368SIan Rogers        "EventCode": "0xf",
12362201368SIan Rogers        "EventName": "UNC_Q_RxL0_POWER_CYCLES",
12462201368SIan Rogers        "PerPkg": "1",
12562201368SIan Rogers        "PublicDescription": "Number of QPI qfclk cycles spent in L0 power mode in the Link Layer.  L0 is the default mode which provides the highest performance with the most power.  Use edge detect to count the number of instances that the link entered L0.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.  The phy layer  sometimes leaves L0 for training, which will not be captured by this event.",
12662201368SIan Rogers        "Unit": "QPI LL"
12762201368SIan Rogers    },
12862201368SIan Rogers    {
12962201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Bypassed",
13062201368SIan Rogers        "Counter": "0,1,2,3",
13162201368SIan Rogers        "EventCode": "0x9",
13262201368SIan Rogers        "EventName": "UNC_Q_RxL_BYPASSED",
13362201368SIan Rogers        "PerPkg": "1",
134*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of times that an incoming flit was able to bypass the flit buffer and pass directly across the BGF and into the Egress.  This is a latency optimization, and should generally be the common case.  If this value is less than the number of flits transferred, it implies that there was queueing getting onto the ring, and thus the transactions saw higher latency.",
13562201368SIan Rogers        "Unit": "QPI LL"
13662201368SIan Rogers    },
13762201368SIan Rogers    {
13862201368SIan Rogers        "BriefDescription": "CRC Errors Detected; LinkInit",
13962201368SIan Rogers        "Counter": "0,1,2,3",
14062201368SIan Rogers        "EventCode": "0x3",
14162201368SIan Rogers        "EventName": "UNC_Q_RxL_CRC_ERRORS.LINK_INIT",
14262201368SIan Rogers        "PerPkg": "1",
14362201368SIan Rogers        "PublicDescription": "Number of CRC errors detected in the QPI Agent.  Each QPI flit incorporates 8 bits of CRC for error detection.  This counts the number of flits where the CRC was able to detect an error.  After an error has been detected, the QPI agent will send a request to the transmitting socket to resend the flit (as well as any flits that came after it).; CRC errors detected during link initialization.",
14462201368SIan Rogers        "UMask": "0x1",
14562201368SIan Rogers        "Unit": "QPI LL"
14662201368SIan Rogers    },
14762201368SIan Rogers    {
14862201368SIan Rogers        "BriefDescription": "CRC Errors Detected; Normal Operations",
14962201368SIan Rogers        "Counter": "0,1,2,3",
15062201368SIan Rogers        "EventCode": "0x3",
15162201368SIan Rogers        "EventName": "UNC_Q_RxL_CRC_ERRORS.NORMAL_OP",
15262201368SIan Rogers        "PerPkg": "1",
15362201368SIan Rogers        "PublicDescription": "Number of CRC errors detected in the QPI Agent.  Each QPI flit incorporates 8 bits of CRC for error detection.  This counts the number of flits where the CRC was able to detect an error.  After an error has been detected, the QPI agent will send a request to the transmitting socket to resend the flit (as well as any flits that came after it).; CRC errors detected during normal operation.",
15462201368SIan Rogers        "UMask": "0x2",
15562201368SIan Rogers        "Unit": "QPI LL"
15662201368SIan Rogers    },
15762201368SIan Rogers    {
15862201368SIan Rogers        "BriefDescription": "VN0 Credit Consumed; DRS",
15962201368SIan Rogers        "Counter": "0,1,2,3",
16062201368SIan Rogers        "EventCode": "0x1e",
16162201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN0.DRS",
16262201368SIan Rogers        "ExtSel": "1",
16362201368SIan Rogers        "PerPkg": "1",
16462201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN0 credit for the DRS message class.",
16562201368SIan Rogers        "UMask": "0x1",
16662201368SIan Rogers        "Unit": "QPI LL"
16762201368SIan Rogers    },
16862201368SIan Rogers    {
16962201368SIan Rogers        "BriefDescription": "VN0 Credit Consumed; HOM",
17062201368SIan Rogers        "Counter": "0,1,2,3",
17162201368SIan Rogers        "EventCode": "0x1e",
17262201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN0.HOM",
17362201368SIan Rogers        "ExtSel": "1",
17462201368SIan Rogers        "PerPkg": "1",
17562201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN0 credit for the HOM message class.",
17662201368SIan Rogers        "UMask": "0x8",
17762201368SIan Rogers        "Unit": "QPI LL"
17862201368SIan Rogers    },
17962201368SIan Rogers    {
18062201368SIan Rogers        "BriefDescription": "VN0 Credit Consumed; NCB",
18162201368SIan Rogers        "Counter": "0,1,2,3",
18262201368SIan Rogers        "EventCode": "0x1e",
18362201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN0.NCB",
18462201368SIan Rogers        "ExtSel": "1",
18562201368SIan Rogers        "PerPkg": "1",
18662201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN0 credit for the NCB message class.",
18762201368SIan Rogers        "UMask": "0x2",
18862201368SIan Rogers        "Unit": "QPI LL"
18962201368SIan Rogers    },
19062201368SIan Rogers    {
19162201368SIan Rogers        "BriefDescription": "VN0 Credit Consumed; NCS",
19262201368SIan Rogers        "Counter": "0,1,2,3",
19362201368SIan Rogers        "EventCode": "0x1e",
19462201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN0.NCS",
19562201368SIan Rogers        "ExtSel": "1",
19662201368SIan Rogers        "PerPkg": "1",
19762201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN0 credit for the NCS message class.",
19862201368SIan Rogers        "UMask": "0x4",
19962201368SIan Rogers        "Unit": "QPI LL"
20062201368SIan Rogers    },
20162201368SIan Rogers    {
20262201368SIan Rogers        "BriefDescription": "VN0 Credit Consumed; NDR",
20362201368SIan Rogers        "Counter": "0,1,2,3",
20462201368SIan Rogers        "EventCode": "0x1e",
20562201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN0.NDR",
20662201368SIan Rogers        "ExtSel": "1",
20762201368SIan Rogers        "PerPkg": "1",
20862201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN0 credit for the NDR message class.",
20962201368SIan Rogers        "UMask": "0x20",
21062201368SIan Rogers        "Unit": "QPI LL"
21162201368SIan Rogers    },
21262201368SIan Rogers    {
21362201368SIan Rogers        "BriefDescription": "VN0 Credit Consumed; SNP",
21462201368SIan Rogers        "Counter": "0,1,2,3",
21562201368SIan Rogers        "EventCode": "0x1e",
21662201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN0.SNP",
21762201368SIan Rogers        "ExtSel": "1",
21862201368SIan Rogers        "PerPkg": "1",
21962201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN0 credit was consumed (i.e. message uses a VN0 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN0 credit for the SNP message class.",
22062201368SIan Rogers        "UMask": "0x10",
22162201368SIan Rogers        "Unit": "QPI LL"
22262201368SIan Rogers    },
22362201368SIan Rogers    {
22462201368SIan Rogers        "BriefDescription": "VN1 Credit Consumed; DRS",
22562201368SIan Rogers        "Counter": "0,1,2,3",
22662201368SIan Rogers        "EventCode": "0x39",
22762201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN1.DRS",
22862201368SIan Rogers        "ExtSel": "1",
22962201368SIan Rogers        "PerPkg": "1",
23062201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN1 credit for the DRS message class.",
23162201368SIan Rogers        "UMask": "0x1",
23262201368SIan Rogers        "Unit": "QPI LL"
23362201368SIan Rogers    },
23462201368SIan Rogers    {
23562201368SIan Rogers        "BriefDescription": "VN1 Credit Consumed; HOM",
23662201368SIan Rogers        "Counter": "0,1,2,3",
23762201368SIan Rogers        "EventCode": "0x39",
23862201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN1.HOM",
23962201368SIan Rogers        "ExtSel": "1",
24062201368SIan Rogers        "PerPkg": "1",
24162201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN1 credit for the HOM message class.",
24262201368SIan Rogers        "UMask": "0x8",
24362201368SIan Rogers        "Unit": "QPI LL"
24462201368SIan Rogers    },
24562201368SIan Rogers    {
24662201368SIan Rogers        "BriefDescription": "VN1 Credit Consumed; NCB",
24762201368SIan Rogers        "Counter": "0,1,2,3",
24862201368SIan Rogers        "EventCode": "0x39",
24962201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN1.NCB",
25062201368SIan Rogers        "ExtSel": "1",
25162201368SIan Rogers        "PerPkg": "1",
25262201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN1 credit for the NCB message class.",
25362201368SIan Rogers        "UMask": "0x2",
25462201368SIan Rogers        "Unit": "QPI LL"
25562201368SIan Rogers    },
25662201368SIan Rogers    {
25762201368SIan Rogers        "BriefDescription": "VN1 Credit Consumed; NCS",
25862201368SIan Rogers        "Counter": "0,1,2,3",
25962201368SIan Rogers        "EventCode": "0x39",
26062201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN1.NCS",
26162201368SIan Rogers        "ExtSel": "1",
26262201368SIan Rogers        "PerPkg": "1",
26362201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN1 credit for the NCS message class.",
26462201368SIan Rogers        "UMask": "0x4",
26562201368SIan Rogers        "Unit": "QPI LL"
26662201368SIan Rogers    },
26762201368SIan Rogers    {
26862201368SIan Rogers        "BriefDescription": "VN1 Credit Consumed; NDR",
26962201368SIan Rogers        "Counter": "0,1,2,3",
27062201368SIan Rogers        "EventCode": "0x39",
27162201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN1.NDR",
27262201368SIan Rogers        "ExtSel": "1",
27362201368SIan Rogers        "PerPkg": "1",
27462201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN1 credit for the NDR message class.",
27562201368SIan Rogers        "UMask": "0x20",
27662201368SIan Rogers        "Unit": "QPI LL"
27762201368SIan Rogers    },
27862201368SIan Rogers    {
27962201368SIan Rogers        "BriefDescription": "VN1 Credit Consumed; SNP",
28062201368SIan Rogers        "Counter": "0,1,2,3",
28162201368SIan Rogers        "EventCode": "0x39",
28262201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VN1.SNP",
28362201368SIan Rogers        "ExtSel": "1",
28462201368SIan Rogers        "PerPkg": "1",
28562201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VN1 credit was consumed (i.e. message uses a VN1 credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.; VN1 credit for the SNP message class.",
28662201368SIan Rogers        "UMask": "0x10",
28762201368SIan Rogers        "Unit": "QPI LL"
28862201368SIan Rogers    },
28962201368SIan Rogers    {
29062201368SIan Rogers        "BriefDescription": "VNA Credit Consumed",
29162201368SIan Rogers        "Counter": "0,1,2,3",
29262201368SIan Rogers        "EventCode": "0x1d",
29362201368SIan Rogers        "EventName": "UNC_Q_RxL_CREDITS_CONSUMED_VNA",
29462201368SIan Rogers        "ExtSel": "1",
29562201368SIan Rogers        "PerPkg": "1",
29662201368SIan Rogers        "PublicDescription": "Counts the number of times that an RxQ VNA credit was consumed (i.e. message uses a VNA credit for the Rx Buffer).  This includes packets that went through the RxQ and those that were bypasssed.",
29762201368SIan Rogers        "Unit": "QPI LL"
29862201368SIan Rogers    },
29962201368SIan Rogers    {
30062201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty",
30162201368SIan Rogers        "Counter": "0,1,2,3",
30262201368SIan Rogers        "EventCode": "0xa",
30362201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE",
30462201368SIan Rogers        "PerPkg": "1",
30562201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.",
30662201368SIan Rogers        "Unit": "QPI LL"
30762201368SIan Rogers    },
30862201368SIan Rogers    {
30962201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - DRS; for VN0",
31062201368SIan Rogers        "Counter": "0,1,2,3",
31162201368SIan Rogers        "EventCode": "0xF",
31262201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_DRS.VN0",
31362201368SIan Rogers        "ExtSel": "1",
31462201368SIan Rogers        "PerPkg": "1",
31562201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors DRS flits only.",
31662201368SIan Rogers        "UMask": "0x1",
31762201368SIan Rogers        "Unit": "QPI LL"
31862201368SIan Rogers    },
31962201368SIan Rogers    {
32062201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - DRS; for VN1",
32162201368SIan Rogers        "Counter": "0,1,2,3",
32262201368SIan Rogers        "EventCode": "0xF",
32362201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_DRS.VN1",
32462201368SIan Rogers        "ExtSel": "1",
32562201368SIan Rogers        "PerPkg": "1",
32662201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors DRS flits only.",
32762201368SIan Rogers        "UMask": "0x2",
32862201368SIan Rogers        "Unit": "QPI LL"
32962201368SIan Rogers    },
33062201368SIan Rogers    {
33162201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - HOM; for VN0",
33262201368SIan Rogers        "Counter": "0,1,2,3",
33362201368SIan Rogers        "EventCode": "0x12",
33462201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_HOM.VN0",
33562201368SIan Rogers        "ExtSel": "1",
33662201368SIan Rogers        "PerPkg": "1",
33762201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors HOM flits only.",
33862201368SIan Rogers        "UMask": "0x1",
33962201368SIan Rogers        "Unit": "QPI LL"
34062201368SIan Rogers    },
34162201368SIan Rogers    {
34262201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - HOM; for VN1",
34362201368SIan Rogers        "Counter": "0,1,2,3",
34462201368SIan Rogers        "EventCode": "0x12",
34562201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_HOM.VN1",
34662201368SIan Rogers        "ExtSel": "1",
34762201368SIan Rogers        "PerPkg": "1",
34862201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors HOM flits only.",
34962201368SIan Rogers        "UMask": "0x2",
35062201368SIan Rogers        "Unit": "QPI LL"
35162201368SIan Rogers    },
35262201368SIan Rogers    {
35362201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - NCB; for VN0",
35462201368SIan Rogers        "Counter": "0,1,2,3",
35562201368SIan Rogers        "EventCode": "0x10",
35662201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_NCB.VN0",
35762201368SIan Rogers        "ExtSel": "1",
35862201368SIan Rogers        "PerPkg": "1",
35962201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors NCB flits only.",
36062201368SIan Rogers        "UMask": "0x1",
36162201368SIan Rogers        "Unit": "QPI LL"
36262201368SIan Rogers    },
36362201368SIan Rogers    {
36462201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - NCB; for VN1",
36562201368SIan Rogers        "Counter": "0,1,2,3",
36662201368SIan Rogers        "EventCode": "0x10",
36762201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_NCB.VN1",
36862201368SIan Rogers        "ExtSel": "1",
36962201368SIan Rogers        "PerPkg": "1",
37062201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors NCB flits only.",
37162201368SIan Rogers        "UMask": "0x2",
37262201368SIan Rogers        "Unit": "QPI LL"
37362201368SIan Rogers    },
37462201368SIan Rogers    {
37562201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - NCS; for VN0",
37662201368SIan Rogers        "Counter": "0,1,2,3",
37762201368SIan Rogers        "EventCode": "0x11",
37862201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_NCS.VN0",
37962201368SIan Rogers        "ExtSel": "1",
38062201368SIan Rogers        "PerPkg": "1",
38162201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors NCS flits only.",
38262201368SIan Rogers        "UMask": "0x1",
38362201368SIan Rogers        "Unit": "QPI LL"
38462201368SIan Rogers    },
38562201368SIan Rogers    {
38662201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - NCS; for VN1",
38762201368SIan Rogers        "Counter": "0,1,2,3",
38862201368SIan Rogers        "EventCode": "0x11",
38962201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_NCS.VN1",
39062201368SIan Rogers        "ExtSel": "1",
39162201368SIan Rogers        "PerPkg": "1",
39262201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors NCS flits only.",
39362201368SIan Rogers        "UMask": "0x2",
39462201368SIan Rogers        "Unit": "QPI LL"
39562201368SIan Rogers    },
39662201368SIan Rogers    {
39762201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - NDR; for VN0",
39862201368SIan Rogers        "Counter": "0,1,2,3",
39962201368SIan Rogers        "EventCode": "0x14",
40062201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_NDR.VN0",
40162201368SIan Rogers        "ExtSel": "1",
40262201368SIan Rogers        "PerPkg": "1",
40362201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors NDR flits only.",
40462201368SIan Rogers        "UMask": "0x1",
40562201368SIan Rogers        "Unit": "QPI LL"
40662201368SIan Rogers    },
40762201368SIan Rogers    {
40862201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - NDR; for VN1",
40962201368SIan Rogers        "Counter": "0,1,2,3",
41062201368SIan Rogers        "EventCode": "0x14",
41162201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_NDR.VN1",
41262201368SIan Rogers        "ExtSel": "1",
41362201368SIan Rogers        "PerPkg": "1",
41462201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors NDR flits only.",
41562201368SIan Rogers        "UMask": "0x2",
41662201368SIan Rogers        "Unit": "QPI LL"
41762201368SIan Rogers    },
41862201368SIan Rogers    {
41962201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - SNP; for VN0",
42062201368SIan Rogers        "Counter": "0,1,2,3",
42162201368SIan Rogers        "EventCode": "0x13",
42262201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_SNP.VN0",
42362201368SIan Rogers        "ExtSel": "1",
42462201368SIan Rogers        "PerPkg": "1",
42562201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors SNP flits only.",
42662201368SIan Rogers        "UMask": "0x1",
42762201368SIan Rogers        "Unit": "QPI LL"
42862201368SIan Rogers    },
42962201368SIan Rogers    {
43062201368SIan Rogers        "BriefDescription": "RxQ Cycles Not Empty - SNP; for VN1",
43162201368SIan Rogers        "Counter": "0,1,2,3",
43262201368SIan Rogers        "EventCode": "0x13",
43362201368SIan Rogers        "EventName": "UNC_Q_RxL_CYCLES_NE_SNP.VN1",
43462201368SIan Rogers        "ExtSel": "1",
43562201368SIan Rogers        "PerPkg": "1",
43662201368SIan Rogers        "PublicDescription": "Counts the number of cycles that the QPI RxQ was not empty.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy Accumulator event to calculate the average occupancy.  This monitors SNP flits only.",
43762201368SIan Rogers        "UMask": "0x2",
43862201368SIan Rogers        "Unit": "QPI LL"
43962201368SIan Rogers    },
44062201368SIan Rogers    {
44162201368SIan Rogers        "BriefDescription": "Flits Received - Group 0; Data Tx Flits",
44262201368SIan Rogers        "Counter": "0,1,2,3",
44362201368SIan Rogers        "EventCode": "0x1",
44462201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G0.DATA",
44562201368SIan Rogers        "PerPkg": "1",
446*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  It includes filters for Idle, protocol, and Data Flits.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time (for L0) or 4B instead of 8B for L0p.; Number of data flits received over QPI.  Each flit contains 64b of data.  This includes both DRS and NCB data flits (coherent and non-coherent).  This can be used to calculate the data bandwidth of the QPI link.  One can get a good picture of the QPI-link characteristics by evaluating the protocol flits, data flits, and idle/null flits.  This does not include the header flits that go in data packets.",
44762201368SIan Rogers        "UMask": "0x2",
44862201368SIan Rogers        "Unit": "QPI LL"
44962201368SIan Rogers    },
45062201368SIan Rogers    {
45162201368SIan Rogers        "BriefDescription": "Flits Received - Group 0; Idle and Null Flits",
45262201368SIan Rogers        "Counter": "0,1,2,3",
45362201368SIan Rogers        "EventCode": "0x1",
45462201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G0.IDLE",
45562201368SIan Rogers        "PerPkg": "1",
456*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  It includes filters for Idle, protocol, and Data Flits.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time (for L0) or 4B instead of 8B for L0p.; Number of flits received over QPI that do not hold protocol payload.  When QPI is not in a power saving state, it continuously transmits flits across the link.  When there are no protocol flits to send, it will send IDLE and NULL flits  across.  These flits sometimes do carry a payload, such as credit returns, but are generally not considered part of the QPI bandwidth.",
45762201368SIan Rogers        "UMask": "0x1",
45862201368SIan Rogers        "Unit": "QPI LL"
45962201368SIan Rogers    },
46062201368SIan Rogers    {
46162201368SIan Rogers        "BriefDescription": "Flits Received - Group 0; Non-Data protocol Tx Flits",
46262201368SIan Rogers        "Counter": "0,1,2,3",
46362201368SIan Rogers        "EventCode": "0x1",
46462201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G0.NON_DATA",
46562201368SIan Rogers        "PerPkg": "1",
466*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  It includes filters for Idle, protocol, and Data Flits.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time (for L0) or 4B instead of 8B for L0p.; Number of non-NULL non-data flits received across QPI.  This basically tracks the protocol overhead on the QPI link.  One can get a good picture of the QPI-link characteristics by evaluating the protocol flits, data flits, and idle/null flits.  This includes the header flits for data packets.",
46762201368SIan Rogers        "UMask": "0x4",
46862201368SIan Rogers        "Unit": "QPI LL"
46962201368SIan Rogers    },
47062201368SIan Rogers    {
47162201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; DRS Flits (both Header and Data)",
47262201368SIan Rogers        "Counter": "0,1,2,3",
47362201368SIan Rogers        "EventCode": "0x2",
47462201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.DRS",
47562201368SIan Rogers        "ExtSel": "1",
47662201368SIan Rogers        "PerPkg": "1",
477*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of flits received over QPI on the DRS (Data Response) channel.  DRS flits are used to transmit data with coherency.  This does not count data flits received over the NCB channel which transmits non-coherent data.",
47862201368SIan Rogers        "UMask": "0x18",
47962201368SIan Rogers        "Unit": "QPI LL"
48062201368SIan Rogers    },
48162201368SIan Rogers    {
48262201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; DRS Data Flits",
48362201368SIan Rogers        "Counter": "0,1,2,3",
48462201368SIan Rogers        "EventCode": "0x2",
48562201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.DRS_DATA",
48662201368SIan Rogers        "ExtSel": "1",
48762201368SIan Rogers        "PerPkg": "1",
488*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of data flits received over QPI on the DRS (Data Response) channel.  DRS flits are used to transmit data with coherency.  This does not count data flits received over the NCB channel which transmits non-coherent data.  This includes only the data flits (not the header).",
48962201368SIan Rogers        "UMask": "0x8",
49062201368SIan Rogers        "Unit": "QPI LL"
49162201368SIan Rogers    },
49262201368SIan Rogers    {
49362201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; DRS Header Flits",
49462201368SIan Rogers        "Counter": "0,1,2,3",
49562201368SIan Rogers        "EventCode": "0x2",
49662201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.DRS_NONDATA",
49762201368SIan Rogers        "ExtSel": "1",
49862201368SIan Rogers        "PerPkg": "1",
499*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of protocol flits received over QPI on the DRS (Data Response) channel.  DRS flits are used to transmit data with coherency.  This does not count data flits received over the NCB channel which transmits non-coherent data.  This includes only the header flits (not the data).  This includes extended headers.",
50062201368SIan Rogers        "UMask": "0x10",
50162201368SIan Rogers        "Unit": "QPI LL"
50262201368SIan Rogers    },
50362201368SIan Rogers    {
50462201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; HOM Flits",
50562201368SIan Rogers        "Counter": "0,1,2,3",
50662201368SIan Rogers        "EventCode": "0x2",
50762201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.HOM",
50862201368SIan Rogers        "ExtSel": "1",
50962201368SIan Rogers        "PerPkg": "1",
510*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of flits received over QPI on the home channel.",
51162201368SIan Rogers        "UMask": "0x6",
51262201368SIan Rogers        "Unit": "QPI LL"
51362201368SIan Rogers    },
51462201368SIan Rogers    {
51562201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; HOM Non-Request Flits",
51662201368SIan Rogers        "Counter": "0,1,2,3",
51762201368SIan Rogers        "EventCode": "0x2",
51862201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.HOM_NONREQ",
51962201368SIan Rogers        "ExtSel": "1",
52062201368SIan Rogers        "PerPkg": "1",
521*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of non-request flits received over QPI on the home channel.  These are most commonly snoop responses, and this event can be used as a proxy for that.",
52262201368SIan Rogers        "UMask": "0x4",
52362201368SIan Rogers        "Unit": "QPI LL"
52462201368SIan Rogers    },
52562201368SIan Rogers    {
52662201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; HOM Request Flits",
52762201368SIan Rogers        "Counter": "0,1,2,3",
52862201368SIan Rogers        "EventCode": "0x2",
52962201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.HOM_REQ",
53062201368SIan Rogers        "ExtSel": "1",
53162201368SIan Rogers        "PerPkg": "1",
532*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of data request received over QPI on the home channel.  This basically counts the number of remote memory requests received over QPI.  In conjunction with the local read count in the Home Agent, one can calculate the number of LLC Misses.",
53362201368SIan Rogers        "UMask": "0x2",
53462201368SIan Rogers        "Unit": "QPI LL"
53562201368SIan Rogers    },
53662201368SIan Rogers    {
53762201368SIan Rogers        "BriefDescription": "Flits Received - Group 1; SNP Flits",
53862201368SIan Rogers        "Counter": "0,1,2,3",
53962201368SIan Rogers        "EventCode": "0x2",
54062201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G1.SNP",
54162201368SIan Rogers        "ExtSel": "1",
54262201368SIan Rogers        "PerPkg": "1",
543*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of snoop request flits received over QPI.  These requests are contained in the snoop channel.  This does not include snoop responses, which are received on the home channel.",
54462201368SIan Rogers        "UMask": "0x1",
54562201368SIan Rogers        "Unit": "QPI LL"
54662201368SIan Rogers    },
54762201368SIan Rogers    {
54862201368SIan Rogers        "BriefDescription": "Flits Received - Group 2; Non-Coherent Rx Flits",
54962201368SIan Rogers        "Counter": "0,1,2,3",
55062201368SIan Rogers        "EventCode": "0x3",
55162201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G2.NCB",
55262201368SIan Rogers        "ExtSel": "1",
55362201368SIan Rogers        "PerPkg": "1",
554*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of Non-Coherent Bypass flits.  These packets are generally used to transmit non-coherent data across QPI.",
55562201368SIan Rogers        "UMask": "0xC",
55662201368SIan Rogers        "Unit": "QPI LL"
55762201368SIan Rogers    },
55862201368SIan Rogers    {
55962201368SIan Rogers        "BriefDescription": "Flits Received - Group 2; Non-Coherent data Rx Flits",
56062201368SIan Rogers        "Counter": "0,1,2,3",
56162201368SIan Rogers        "EventCode": "0x3",
56262201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G2.NCB_DATA",
56362201368SIan Rogers        "ExtSel": "1",
56462201368SIan Rogers        "PerPkg": "1",
565*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of Non-Coherent Bypass data flits.  These flits are generally used to transmit non-coherent data across QPI.  This does not include a count of the DRS (coherent) data flits.  This only counts the data flits, not the NCB headers.",
56662201368SIan Rogers        "UMask": "0x4",
56762201368SIan Rogers        "Unit": "QPI LL"
56862201368SIan Rogers    },
56962201368SIan Rogers    {
57062201368SIan Rogers        "BriefDescription": "Flits Received - Group 2; Non-Coherent non-data Rx Flits",
57162201368SIan Rogers        "Counter": "0,1,2,3",
57262201368SIan Rogers        "EventCode": "0x3",
57362201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G2.NCB_NONDATA",
57462201368SIan Rogers        "ExtSel": "1",
57562201368SIan Rogers        "PerPkg": "1",
576*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of Non-Coherent Bypass non-data flits.  These packets are generally used to transmit non-coherent data across QPI, and the flits counted here are for headers and other non-data flits.  This includes extended headers.",
57762201368SIan Rogers        "UMask": "0x8",
57862201368SIan Rogers        "Unit": "QPI LL"
57962201368SIan Rogers    },
58062201368SIan Rogers    {
58162201368SIan Rogers        "BriefDescription": "Flits Received - Group 2; Non-Coherent standard Rx Flits",
58262201368SIan Rogers        "Counter": "0,1,2,3",
58362201368SIan Rogers        "EventCode": "0x3",
58462201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G2.NCS",
58562201368SIan Rogers        "ExtSel": "1",
58662201368SIan Rogers        "PerPkg": "1",
587*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of NCS (non-coherent standard) flits received over QPI.    This includes extended headers.",
58862201368SIan Rogers        "UMask": "0x10",
58962201368SIan Rogers        "Unit": "QPI LL"
59062201368SIan Rogers    },
59162201368SIan Rogers    {
59262201368SIan Rogers        "BriefDescription": "Flits Received - Group 2; Non-Data Response Rx Flits - AD",
59362201368SIan Rogers        "Counter": "0,1,2,3",
59462201368SIan Rogers        "EventCode": "0x3",
59562201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G2.NDR_AD",
59662201368SIan Rogers        "ExtSel": "1",
59762201368SIan Rogers        "PerPkg": "1",
598*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of flits received over the NDR (Non-Data Response) channel.  This channel is used to send a variety of protocol flits including grants and completions.  This is only for NDR packets to the local socket which use the AK ring.",
59962201368SIan Rogers        "UMask": "0x1",
60062201368SIan Rogers        "Unit": "QPI LL"
60162201368SIan Rogers    },
60262201368SIan Rogers    {
60362201368SIan Rogers        "BriefDescription": "Flits Received - Group 2; Non-Data Response Rx Flits - AK",
60462201368SIan Rogers        "Counter": "0,1,2,3",
60562201368SIan Rogers        "EventCode": "0x3",
60662201368SIan Rogers        "EventName": "UNC_Q_RxL_FLITS_G2.NDR_AK",
60762201368SIan Rogers        "ExtSel": "1",
60862201368SIan Rogers        "PerPkg": "1",
609*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits received from the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of flits received over the NDR (Non-Data Response) channel.  This channel is used to send a variety of protocol flits including grants and completions.  This is only for NDR packets destined for Route-thru to a remote socket.",
61062201368SIan Rogers        "UMask": "0x2",
61162201368SIan Rogers        "Unit": "QPI LL"
61262201368SIan Rogers    },
61362201368SIan Rogers    {
61462201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations",
61562201368SIan Rogers        "Counter": "0,1,2,3",
61662201368SIan Rogers        "EventCode": "0x8",
61762201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS",
61862201368SIan Rogers        "PerPkg": "1",
61962201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.",
62062201368SIan Rogers        "Unit": "QPI LL"
62162201368SIan Rogers    },
62262201368SIan Rogers    {
62362201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - DRS",
62462201368SIan Rogers        "Counter": "0,1,2,3",
62562201368SIan Rogers        "EventCode": "0x9",
62662201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_DRS",
62762201368SIan Rogers        "ExtSel": "1",
62862201368SIan Rogers        "PerPkg": "1",
62962201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only DRS flits.",
63062201368SIan Rogers        "Unit": "QPI LL"
63162201368SIan Rogers    },
63262201368SIan Rogers    {
63362201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - DRS; for VN0",
63462201368SIan Rogers        "Counter": "0,1,2,3",
63562201368SIan Rogers        "EventCode": "0x9",
63662201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_DRS.VN0",
63762201368SIan Rogers        "ExtSel": "1",
63862201368SIan Rogers        "PerPkg": "1",
63962201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only DRS flits.",
64062201368SIan Rogers        "UMask": "0x1",
64162201368SIan Rogers        "Unit": "QPI LL"
64262201368SIan Rogers    },
64362201368SIan Rogers    {
64462201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - DRS; for VN1",
64562201368SIan Rogers        "Counter": "0,1,2,3",
64662201368SIan Rogers        "EventCode": "0x9",
64762201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_DRS.VN1",
64862201368SIan Rogers        "ExtSel": "1",
64962201368SIan Rogers        "PerPkg": "1",
65062201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only DRS flits.",
65162201368SIan Rogers        "UMask": "0x2",
65262201368SIan Rogers        "Unit": "QPI LL"
65362201368SIan Rogers    },
65462201368SIan Rogers    {
65562201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - HOM",
65662201368SIan Rogers        "Counter": "0,1,2,3",
65762201368SIan Rogers        "EventCode": "0xc",
65862201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_HOM",
65962201368SIan Rogers        "ExtSel": "1",
66062201368SIan Rogers        "PerPkg": "1",
66162201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only HOM flits.",
66262201368SIan Rogers        "Unit": "QPI LL"
66362201368SIan Rogers    },
66462201368SIan Rogers    {
66562201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - HOM; for VN0",
66662201368SIan Rogers        "Counter": "0,1,2,3",
66762201368SIan Rogers        "EventCode": "0xC",
66862201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_HOM.VN0",
66962201368SIan Rogers        "ExtSel": "1",
67062201368SIan Rogers        "PerPkg": "1",
67162201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only HOM flits.",
67262201368SIan Rogers        "UMask": "0x1",
67362201368SIan Rogers        "Unit": "QPI LL"
67462201368SIan Rogers    },
67562201368SIan Rogers    {
67662201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - HOM; for VN1",
67762201368SIan Rogers        "Counter": "0,1,2,3",
67862201368SIan Rogers        "EventCode": "0xC",
67962201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_HOM.VN1",
68062201368SIan Rogers        "ExtSel": "1",
68162201368SIan Rogers        "PerPkg": "1",
68262201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only HOM flits.",
68362201368SIan Rogers        "UMask": "0x2",
68462201368SIan Rogers        "Unit": "QPI LL"
68562201368SIan Rogers    },
68662201368SIan Rogers    {
68762201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NCB",
68862201368SIan Rogers        "Counter": "0,1,2,3",
68962201368SIan Rogers        "EventCode": "0xa",
69062201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NCB",
69162201368SIan Rogers        "ExtSel": "1",
69262201368SIan Rogers        "PerPkg": "1",
69362201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NCB flits.",
69462201368SIan Rogers        "Unit": "QPI LL"
69562201368SIan Rogers    },
69662201368SIan Rogers    {
69762201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NCB; for VN0",
69862201368SIan Rogers        "Counter": "0,1,2,3",
69962201368SIan Rogers        "EventCode": "0xA",
70062201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NCB.VN0",
70162201368SIan Rogers        "ExtSel": "1",
70262201368SIan Rogers        "PerPkg": "1",
70362201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NCB flits.",
70462201368SIan Rogers        "UMask": "0x1",
70562201368SIan Rogers        "Unit": "QPI LL"
70662201368SIan Rogers    },
70762201368SIan Rogers    {
70862201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NCB; for VN1",
70962201368SIan Rogers        "Counter": "0,1,2,3",
71062201368SIan Rogers        "EventCode": "0xA",
71162201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NCB.VN1",
71262201368SIan Rogers        "ExtSel": "1",
71362201368SIan Rogers        "PerPkg": "1",
71462201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NCB flits.",
71562201368SIan Rogers        "UMask": "0x2",
71662201368SIan Rogers        "Unit": "QPI LL"
71762201368SIan Rogers    },
71862201368SIan Rogers    {
71962201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NCS",
72062201368SIan Rogers        "Counter": "0,1,2,3",
72162201368SIan Rogers        "EventCode": "0xb",
72262201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NCS",
72362201368SIan Rogers        "ExtSel": "1",
72462201368SIan Rogers        "PerPkg": "1",
72562201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NCS flits.",
72662201368SIan Rogers        "Unit": "QPI LL"
72762201368SIan Rogers    },
72862201368SIan Rogers    {
72962201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NCS; for VN0",
73062201368SIan Rogers        "Counter": "0,1,2,3",
73162201368SIan Rogers        "EventCode": "0xB",
73262201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NCS.VN0",
73362201368SIan Rogers        "ExtSel": "1",
73462201368SIan Rogers        "PerPkg": "1",
73562201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NCS flits.",
73662201368SIan Rogers        "UMask": "0x1",
73762201368SIan Rogers        "Unit": "QPI LL"
73862201368SIan Rogers    },
73962201368SIan Rogers    {
74062201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NCS; for VN1",
74162201368SIan Rogers        "Counter": "0,1,2,3",
74262201368SIan Rogers        "EventCode": "0xB",
74362201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NCS.VN1",
74462201368SIan Rogers        "ExtSel": "1",
74562201368SIan Rogers        "PerPkg": "1",
74662201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NCS flits.",
74762201368SIan Rogers        "UMask": "0x2",
74862201368SIan Rogers        "Unit": "QPI LL"
74962201368SIan Rogers    },
75062201368SIan Rogers    {
75162201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NDR",
75262201368SIan Rogers        "Counter": "0,1,2,3",
75362201368SIan Rogers        "EventCode": "0xe",
75462201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NDR",
75562201368SIan Rogers        "ExtSel": "1",
75662201368SIan Rogers        "PerPkg": "1",
75762201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NDR flits.",
75862201368SIan Rogers        "Unit": "QPI LL"
75962201368SIan Rogers    },
76062201368SIan Rogers    {
76162201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NDR; for VN0",
76262201368SIan Rogers        "Counter": "0,1,2,3",
76362201368SIan Rogers        "EventCode": "0xE",
76462201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NDR.VN0",
76562201368SIan Rogers        "ExtSel": "1",
76662201368SIan Rogers        "PerPkg": "1",
76762201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NDR flits.",
76862201368SIan Rogers        "UMask": "0x1",
76962201368SIan Rogers        "Unit": "QPI LL"
77062201368SIan Rogers    },
77162201368SIan Rogers    {
77262201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - NDR; for VN1",
77362201368SIan Rogers        "Counter": "0,1,2,3",
77462201368SIan Rogers        "EventCode": "0xE",
77562201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_NDR.VN1",
77662201368SIan Rogers        "ExtSel": "1",
77762201368SIan Rogers        "PerPkg": "1",
77862201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only NDR flits.",
77962201368SIan Rogers        "UMask": "0x2",
78062201368SIan Rogers        "Unit": "QPI LL"
78162201368SIan Rogers    },
78262201368SIan Rogers    {
78362201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - SNP",
78462201368SIan Rogers        "Counter": "0,1,2,3",
78562201368SIan Rogers        "EventCode": "0xd",
78662201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_SNP",
78762201368SIan Rogers        "ExtSel": "1",
78862201368SIan Rogers        "PerPkg": "1",
78962201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only SNP flits.",
79062201368SIan Rogers        "Unit": "QPI LL"
79162201368SIan Rogers    },
79262201368SIan Rogers    {
79362201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - SNP; for VN0",
79462201368SIan Rogers        "Counter": "0,1,2,3",
79562201368SIan Rogers        "EventCode": "0xD",
79662201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_SNP.VN0",
79762201368SIan Rogers        "ExtSel": "1",
79862201368SIan Rogers        "PerPkg": "1",
79962201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only SNP flits.",
80062201368SIan Rogers        "UMask": "0x1",
80162201368SIan Rogers        "Unit": "QPI LL"
80262201368SIan Rogers    },
80362201368SIan Rogers    {
80462201368SIan Rogers        "BriefDescription": "Rx Flit Buffer Allocations - SNP; for VN1",
80562201368SIan Rogers        "Counter": "0,1,2,3",
80662201368SIan Rogers        "EventCode": "0xD",
80762201368SIan Rogers        "EventName": "UNC_Q_RxL_INSERTS_SNP.VN1",
80862201368SIan Rogers        "ExtSel": "1",
80962201368SIan Rogers        "PerPkg": "1",
81062201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Rx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.  This monitors only SNP flits.",
81162201368SIan Rogers        "UMask": "0x2",
81262201368SIan Rogers        "Unit": "QPI LL"
81362201368SIan Rogers    },
81462201368SIan Rogers    {
81562201368SIan Rogers        "BriefDescription": "RxQ Occupancy - All Packets",
81662201368SIan Rogers        "Counter": "0,1,2,3",
81762201368SIan Rogers        "EventCode": "0xb",
81862201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY",
81962201368SIan Rogers        "PerPkg": "1",
82062201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.",
82162201368SIan Rogers        "Unit": "QPI LL"
82262201368SIan Rogers    },
82362201368SIan Rogers    {
82462201368SIan Rogers        "BriefDescription": "RxQ Occupancy - DRS",
82562201368SIan Rogers        "Counter": "0,1,2,3",
82662201368SIan Rogers        "EventCode": "0x15",
82762201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_DRS",
82862201368SIan Rogers        "ExtSel": "1",
82962201368SIan Rogers        "PerPkg": "1",
83062201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors DRS flits only.",
83162201368SIan Rogers        "Unit": "QPI LL"
83262201368SIan Rogers    },
83362201368SIan Rogers    {
83462201368SIan Rogers        "BriefDescription": "RxQ Occupancy - DRS; for VN0",
83562201368SIan Rogers        "Counter": "0,1,2,3",
83662201368SIan Rogers        "EventCode": "0x15",
83762201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_DRS.VN0",
83862201368SIan Rogers        "ExtSel": "1",
83962201368SIan Rogers        "PerPkg": "1",
84062201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors DRS flits only.",
84162201368SIan Rogers        "UMask": "0x1",
84262201368SIan Rogers        "Unit": "QPI LL"
84362201368SIan Rogers    },
84462201368SIan Rogers    {
84562201368SIan Rogers        "BriefDescription": "RxQ Occupancy - DRS; for VN1",
84662201368SIan Rogers        "Counter": "0,1,2,3",
84762201368SIan Rogers        "EventCode": "0x15",
84862201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_DRS.VN1",
84962201368SIan Rogers        "ExtSel": "1",
85062201368SIan Rogers        "PerPkg": "1",
85162201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors DRS flits only.",
85262201368SIan Rogers        "UMask": "0x2",
85362201368SIan Rogers        "Unit": "QPI LL"
85462201368SIan Rogers    },
85562201368SIan Rogers    {
85662201368SIan Rogers        "BriefDescription": "RxQ Occupancy - HOM",
85762201368SIan Rogers        "Counter": "0,1,2,3",
85862201368SIan Rogers        "EventCode": "0x18",
85962201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_HOM",
86062201368SIan Rogers        "ExtSel": "1",
86162201368SIan Rogers        "PerPkg": "1",
86262201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors HOM flits only.",
86362201368SIan Rogers        "Unit": "QPI LL"
86462201368SIan Rogers    },
86562201368SIan Rogers    {
86662201368SIan Rogers        "BriefDescription": "RxQ Occupancy - HOM; for VN0",
86762201368SIan Rogers        "Counter": "0,1,2,3",
86862201368SIan Rogers        "EventCode": "0x18",
86962201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_HOM.VN0",
87062201368SIan Rogers        "ExtSel": "1",
87162201368SIan Rogers        "PerPkg": "1",
87262201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors HOM flits only.",
87362201368SIan Rogers        "UMask": "0x1",
87462201368SIan Rogers        "Unit": "QPI LL"
87562201368SIan Rogers    },
87662201368SIan Rogers    {
87762201368SIan Rogers        "BriefDescription": "RxQ Occupancy - HOM; for VN1",
87862201368SIan Rogers        "Counter": "0,1,2,3",
87962201368SIan Rogers        "EventCode": "0x18",
88062201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_HOM.VN1",
88162201368SIan Rogers        "ExtSel": "1",
88262201368SIan Rogers        "PerPkg": "1",
88362201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors HOM flits only.",
88462201368SIan Rogers        "UMask": "0x2",
88562201368SIan Rogers        "Unit": "QPI LL"
88662201368SIan Rogers    },
88762201368SIan Rogers    {
88862201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NCB",
88962201368SIan Rogers        "Counter": "0,1,2,3",
89062201368SIan Rogers        "EventCode": "0x16",
89162201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NCB",
89262201368SIan Rogers        "ExtSel": "1",
89362201368SIan Rogers        "PerPkg": "1",
89462201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NCB flits only.",
89562201368SIan Rogers        "Unit": "QPI LL"
89662201368SIan Rogers    },
89762201368SIan Rogers    {
89862201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NCB; for VN0",
89962201368SIan Rogers        "Counter": "0,1,2,3",
90062201368SIan Rogers        "EventCode": "0x16",
90162201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NCB.VN0",
90262201368SIan Rogers        "ExtSel": "1",
90362201368SIan Rogers        "PerPkg": "1",
90462201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NCB flits only.",
90562201368SIan Rogers        "UMask": "0x1",
90662201368SIan Rogers        "Unit": "QPI LL"
90762201368SIan Rogers    },
90862201368SIan Rogers    {
90962201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NCB; for VN1",
91062201368SIan Rogers        "Counter": "0,1,2,3",
91162201368SIan Rogers        "EventCode": "0x16",
91262201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NCB.VN1",
91362201368SIan Rogers        "ExtSel": "1",
91462201368SIan Rogers        "PerPkg": "1",
91562201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NCB flits only.",
91662201368SIan Rogers        "UMask": "0x2",
91762201368SIan Rogers        "Unit": "QPI LL"
91862201368SIan Rogers    },
91962201368SIan Rogers    {
92062201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NCS",
92162201368SIan Rogers        "Counter": "0,1,2,3",
92262201368SIan Rogers        "EventCode": "0x17",
92362201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NCS",
92462201368SIan Rogers        "ExtSel": "1",
92562201368SIan Rogers        "PerPkg": "1",
92662201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NCS flits only.",
92762201368SIan Rogers        "Unit": "QPI LL"
92862201368SIan Rogers    },
92962201368SIan Rogers    {
93062201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NCS; for VN0",
93162201368SIan Rogers        "Counter": "0,1,2,3",
93262201368SIan Rogers        "EventCode": "0x17",
93362201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NCS.VN0",
93462201368SIan Rogers        "ExtSel": "1",
93562201368SIan Rogers        "PerPkg": "1",
93662201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NCS flits only.",
93762201368SIan Rogers        "UMask": "0x1",
93862201368SIan Rogers        "Unit": "QPI LL"
93962201368SIan Rogers    },
94062201368SIan Rogers    {
94162201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NCS; for VN1",
94262201368SIan Rogers        "Counter": "0,1,2,3",
94362201368SIan Rogers        "EventCode": "0x17",
94462201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NCS.VN1",
94562201368SIan Rogers        "ExtSel": "1",
94662201368SIan Rogers        "PerPkg": "1",
94762201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NCS flits only.",
94862201368SIan Rogers        "UMask": "0x2",
94962201368SIan Rogers        "Unit": "QPI LL"
95062201368SIan Rogers    },
95162201368SIan Rogers    {
95262201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NDR",
95362201368SIan Rogers        "Counter": "0,1,2,3",
95462201368SIan Rogers        "EventCode": "0x1a",
95562201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NDR",
95662201368SIan Rogers        "ExtSel": "1",
95762201368SIan Rogers        "PerPkg": "1",
95862201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NDR flits only.",
95962201368SIan Rogers        "Unit": "QPI LL"
96062201368SIan Rogers    },
96162201368SIan Rogers    {
96262201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NDR; for VN0",
96362201368SIan Rogers        "Counter": "0,1,2,3",
96462201368SIan Rogers        "EventCode": "0x1A",
96562201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NDR.VN0",
96662201368SIan Rogers        "ExtSel": "1",
96762201368SIan Rogers        "PerPkg": "1",
96862201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NDR flits only.",
96962201368SIan Rogers        "UMask": "0x1",
97062201368SIan Rogers        "Unit": "QPI LL"
97162201368SIan Rogers    },
97262201368SIan Rogers    {
97362201368SIan Rogers        "BriefDescription": "RxQ Occupancy - NDR; for VN1",
97462201368SIan Rogers        "Counter": "0,1,2,3",
97562201368SIan Rogers        "EventCode": "0x1A",
97662201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_NDR.VN1",
97762201368SIan Rogers        "ExtSel": "1",
97862201368SIan Rogers        "PerPkg": "1",
97962201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors NDR flits only.",
98062201368SIan Rogers        "UMask": "0x2",
98162201368SIan Rogers        "Unit": "QPI LL"
98262201368SIan Rogers    },
98362201368SIan Rogers    {
98462201368SIan Rogers        "BriefDescription": "RxQ Occupancy - SNP",
98562201368SIan Rogers        "Counter": "0,1,2,3",
98662201368SIan Rogers        "EventCode": "0x19",
98762201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_SNP",
98862201368SIan Rogers        "ExtSel": "1",
98962201368SIan Rogers        "PerPkg": "1",
99062201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors SNP flits only.",
99162201368SIan Rogers        "Unit": "QPI LL"
99262201368SIan Rogers    },
99362201368SIan Rogers    {
99462201368SIan Rogers        "BriefDescription": "RxQ Occupancy - SNP; for VN0",
99562201368SIan Rogers        "Counter": "0,1,2,3",
99662201368SIan Rogers        "EventCode": "0x19",
99762201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_SNP.VN0",
99862201368SIan Rogers        "ExtSel": "1",
99962201368SIan Rogers        "PerPkg": "1",
100062201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors SNP flits only.",
100162201368SIan Rogers        "UMask": "0x1",
100262201368SIan Rogers        "Unit": "QPI LL"
100362201368SIan Rogers    },
100462201368SIan Rogers    {
100562201368SIan Rogers        "BriefDescription": "RxQ Occupancy - SNP; for VN1",
100662201368SIan Rogers        "Counter": "0,1,2,3",
100762201368SIan Rogers        "EventCode": "0x19",
100862201368SIan Rogers        "EventName": "UNC_Q_RxL_OCCUPANCY_SNP.VN1",
100962201368SIan Rogers        "ExtSel": "1",
101062201368SIan Rogers        "PerPkg": "1",
101162201368SIan Rogers        "PublicDescription": "Accumulates the number of elements in the QPI RxQ in each cycle.  Generally, when data is transmitted across QPI, it will bypass the RxQ and pass directly to the ring interface.  If things back up getting transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the latency.  This event can be used in conjunction with the Flit Buffer Not Empty event to calculate average occupancy, or with the Flit Buffer Allocations event to track average lifetime.  This monitors SNP flits only.",
101262201368SIan Rogers        "UMask": "0x2",
101362201368SIan Rogers        "Unit": "QPI LL"
101462201368SIan Rogers    },
101562201368SIan Rogers    {
101662201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; BGF Stall - HOM",
101762201368SIan Rogers        "Counter": "0,1,2,3",
101862201368SIan Rogers        "EventCode": "0x35",
101962201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.BGF_DRS",
102062201368SIan Rogers        "ExtSel": "1",
102162201368SIan Rogers        "PerPkg": "1",
102262201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet from the HOM message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
102362201368SIan Rogers        "UMask": "0x1",
102462201368SIan Rogers        "Unit": "QPI LL"
102562201368SIan Rogers    },
102662201368SIan Rogers    {
102762201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; BGF Stall - DRS",
102862201368SIan Rogers        "Counter": "0,1,2,3",
102962201368SIan Rogers        "EventCode": "0x35",
103062201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.BGF_HOM",
103162201368SIan Rogers        "ExtSel": "1",
103262201368SIan Rogers        "PerPkg": "1",
103362201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet from the DRS message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
103462201368SIan Rogers        "UMask": "0x8",
103562201368SIan Rogers        "Unit": "QPI LL"
103662201368SIan Rogers    },
103762201368SIan Rogers    {
103862201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; BGF Stall - SNP",
103962201368SIan Rogers        "Counter": "0,1,2,3",
104062201368SIan Rogers        "EventCode": "0x35",
104162201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.BGF_NCB",
104262201368SIan Rogers        "ExtSel": "1",
104362201368SIan Rogers        "PerPkg": "1",
104462201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet from the SNP message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
104562201368SIan Rogers        "UMask": "0x2",
104662201368SIan Rogers        "Unit": "QPI LL"
104762201368SIan Rogers    },
104862201368SIan Rogers    {
104962201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; BGF Stall - NDR",
105062201368SIan Rogers        "Counter": "0,1,2,3",
105162201368SIan Rogers        "EventCode": "0x35",
105262201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.BGF_NCS",
105362201368SIan Rogers        "ExtSel": "1",
105462201368SIan Rogers        "PerPkg": "1",
105562201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet from the NDR message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
105662201368SIan Rogers        "UMask": "0x4",
105762201368SIan Rogers        "Unit": "QPI LL"
105862201368SIan Rogers    },
105962201368SIan Rogers    {
106062201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; BGF Stall - NCS",
106162201368SIan Rogers        "Counter": "0,1,2,3",
106262201368SIan Rogers        "EventCode": "0x35",
106362201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.BGF_NDR",
106462201368SIan Rogers        "ExtSel": "1",
106562201368SIan Rogers        "PerPkg": "1",
106662201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet from the NCS message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
106762201368SIan Rogers        "UMask": "0x20",
106862201368SIan Rogers        "Unit": "QPI LL"
106962201368SIan Rogers    },
107062201368SIan Rogers    {
107162201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; BGF Stall - NCB",
107262201368SIan Rogers        "Counter": "0,1,2,3",
107362201368SIan Rogers        "EventCode": "0x35",
107462201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.BGF_SNP",
107562201368SIan Rogers        "ExtSel": "1",
107662201368SIan Rogers        "PerPkg": "1",
107762201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet from the NCB message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
107862201368SIan Rogers        "UMask": "0x10",
107962201368SIan Rogers        "Unit": "QPI LL"
108062201368SIan Rogers    },
108162201368SIan Rogers    {
108262201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; Egress Credits",
108362201368SIan Rogers        "Counter": "0,1,2,3",
108462201368SIan Rogers        "EventCode": "0x35",
108562201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.EGRESS_CREDITS",
108662201368SIan Rogers        "ExtSel": "1",
108762201368SIan Rogers        "PerPkg": "1",
108862201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled a packet because there were insufficient BGF credits.  For details on a message class granularity, use the Egress Credit Occupancy events.",
108962201368SIan Rogers        "UMask": "0x40",
109062201368SIan Rogers        "Unit": "QPI LL"
109162201368SIan Rogers    },
109262201368SIan Rogers    {
109362201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN0; GV",
109462201368SIan Rogers        "Counter": "0,1,2,3",
109562201368SIan Rogers        "EventCode": "0x35",
109662201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN0.GV",
109762201368SIan Rogers        "ExtSel": "1",
109862201368SIan Rogers        "PerPkg": "1",
109962201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 0; Stalled because a GV transition (frequency transition) was taking place.",
110062201368SIan Rogers        "UMask": "0x80",
110162201368SIan Rogers        "Unit": "QPI LL"
110262201368SIan Rogers    },
110362201368SIan Rogers    {
110462201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN1; BGF Stall - HOM",
110562201368SIan Rogers        "Counter": "0,1,2,3",
110662201368SIan Rogers        "EventCode": "0x3a",
110762201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN1.BGF_DRS",
110862201368SIan Rogers        "ExtSel": "1",
110962201368SIan Rogers        "PerPkg": "1",
111062201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 1.; Stalled a packet from the HOM message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
111162201368SIan Rogers        "UMask": "0x1",
111262201368SIan Rogers        "Unit": "QPI LL"
111362201368SIan Rogers    },
111462201368SIan Rogers    {
111562201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN1; BGF Stall - DRS",
111662201368SIan Rogers        "Counter": "0,1,2,3",
111762201368SIan Rogers        "EventCode": "0x3a",
111862201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN1.BGF_HOM",
111962201368SIan Rogers        "ExtSel": "1",
112062201368SIan Rogers        "PerPkg": "1",
112162201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 1.; Stalled a packet from the DRS message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
112262201368SIan Rogers        "UMask": "0x8",
112362201368SIan Rogers        "Unit": "QPI LL"
112462201368SIan Rogers    },
112562201368SIan Rogers    {
112662201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN1; BGF Stall - SNP",
112762201368SIan Rogers        "Counter": "0,1,2,3",
112862201368SIan Rogers        "EventCode": "0x3a",
112962201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN1.BGF_NCB",
113062201368SIan Rogers        "ExtSel": "1",
113162201368SIan Rogers        "PerPkg": "1",
113262201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 1.; Stalled a packet from the SNP message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
113362201368SIan Rogers        "UMask": "0x2",
113462201368SIan Rogers        "Unit": "QPI LL"
113562201368SIan Rogers    },
113662201368SIan Rogers    {
113762201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN1; BGF Stall - NDR",
113862201368SIan Rogers        "Counter": "0,1,2,3",
113962201368SIan Rogers        "EventCode": "0x3a",
114062201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN1.BGF_NCS",
114162201368SIan Rogers        "ExtSel": "1",
114262201368SIan Rogers        "PerPkg": "1",
114362201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 1.; Stalled a packet from the NDR message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
114462201368SIan Rogers        "UMask": "0x4",
114562201368SIan Rogers        "Unit": "QPI LL"
114662201368SIan Rogers    },
114762201368SIan Rogers    {
114862201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN1; BGF Stall - NCS",
114962201368SIan Rogers        "Counter": "0,1,2,3",
115062201368SIan Rogers        "EventCode": "0x3a",
115162201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN1.BGF_NDR",
115262201368SIan Rogers        "ExtSel": "1",
115362201368SIan Rogers        "PerPkg": "1",
115462201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 1.; Stalled a packet from the NCS message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
115562201368SIan Rogers        "UMask": "0x20",
115662201368SIan Rogers        "Unit": "QPI LL"
115762201368SIan Rogers    },
115862201368SIan Rogers    {
115962201368SIan Rogers        "BriefDescription": "Stalls Sending to R3QPI on VN1; BGF Stall - NCB",
116062201368SIan Rogers        "Counter": "0,1,2,3",
116162201368SIan Rogers        "EventCode": "0x3a",
116262201368SIan Rogers        "EventName": "UNC_Q_RxL_STALLS_VN1.BGF_SNP",
116362201368SIan Rogers        "ExtSel": "1",
116462201368SIan Rogers        "PerPkg": "1",
116562201368SIan Rogers        "PublicDescription": "Number of stalls trying to send to R3QPI on Virtual Network 1.; Stalled a packet from the NCB message class because there were not enough BGF credits.  In bypass mode, we will stall on the packet boundary, while in RxQ mode we will stall on the flit boundary.",
116662201368SIan Rogers        "UMask": "0x10",
116762201368SIan Rogers        "Unit": "QPI LL"
116862201368SIan Rogers    },
116962201368SIan Rogers    {
117062201368SIan Rogers        "BriefDescription": "Cycles in L0p",
117162201368SIan Rogers        "Counter": "0,1,2,3",
117262201368SIan Rogers        "EventCode": "0xd",
117362201368SIan Rogers        "EventName": "UNC_Q_TxL0P_POWER_CYCLES",
117462201368SIan Rogers        "PerPkg": "1",
117562201368SIan Rogers        "PublicDescription": "Number of QPI qfclk cycles spent in L0p power mode.  L0p is a mode where we disable 1/2 of the QPI lanes, decreasing our bandwidth in order to save power.  It increases snoop and data transfer latencies and decreases overall bandwidth.  This mode can be very useful in NUMA optimized workloads that largely only utilize QPI for snoops and their responses.  Use edge detect to count the number of instances when the QPI link entered L0p.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.",
117662201368SIan Rogers        "Unit": "QPI LL"
117762201368SIan Rogers    },
117862201368SIan Rogers    {
117962201368SIan Rogers        "BriefDescription": "Cycles in L0",
118062201368SIan Rogers        "Counter": "0,1,2,3",
118162201368SIan Rogers        "EventCode": "0xc",
118262201368SIan Rogers        "EventName": "UNC_Q_TxL0_POWER_CYCLES",
118362201368SIan Rogers        "PerPkg": "1",
118462201368SIan Rogers        "PublicDescription": "Number of QPI qfclk cycles spent in L0 power mode in the Link Layer.  L0 is the default mode which provides the highest performance with the most power.  Use edge detect to count the number of instances that the link entered L0.  Link power states are per link and per direction, so for example the Tx direction could be in one state while Rx was in another.  The phy layer  sometimes leaves L0 for training, which will not be captured by this event.",
118562201368SIan Rogers        "Unit": "QPI LL"
118662201368SIan Rogers    },
118762201368SIan Rogers    {
118862201368SIan Rogers        "BriefDescription": "Tx Flit Buffer Bypassed",
118962201368SIan Rogers        "Counter": "0,1,2,3",
119062201368SIan Rogers        "EventCode": "0x5",
119162201368SIan Rogers        "EventName": "UNC_Q_TxL_BYPASSED",
119262201368SIan Rogers        "PerPkg": "1",
119362201368SIan Rogers        "PublicDescription": "Counts the number of times that an incoming flit was able to bypass the Tx flit buffer and pass directly out the QPI Link. Generally, when data is transmitted across QPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link.",
119462201368SIan Rogers        "Unit": "QPI LL"
119562201368SIan Rogers    },
119662201368SIan Rogers    {
119762201368SIan Rogers        "BriefDescription": "Cycles Stalled with no LLR Credits; LLR is almost full",
119862201368SIan Rogers        "Counter": "0,1,2,3",
119962201368SIan Rogers        "EventCode": "0x2",
120062201368SIan Rogers        "EventName": "UNC_Q_TxL_CRC_NO_CREDITS.ALMOST_FULL",
120162201368SIan Rogers        "PerPkg": "1",
120262201368SIan Rogers        "PublicDescription": "Number of cycles when the Tx side ran out of Link Layer Retry credits, causing the Tx to stall.; When LLR is almost full, we block some but not all packets.",
120362201368SIan Rogers        "UMask": "0x2",
120462201368SIan Rogers        "Unit": "QPI LL"
120562201368SIan Rogers    },
120662201368SIan Rogers    {
120762201368SIan Rogers        "BriefDescription": "Cycles Stalled with no LLR Credits; LLR is full",
120862201368SIan Rogers        "Counter": "0,1,2,3",
120962201368SIan Rogers        "EventCode": "0x2",
121062201368SIan Rogers        "EventName": "UNC_Q_TxL_CRC_NO_CREDITS.FULL",
121162201368SIan Rogers        "PerPkg": "1",
121262201368SIan Rogers        "PublicDescription": "Number of cycles when the Tx side ran out of Link Layer Retry credits, causing the Tx to stall.; When LLR is totally full, we are not allowed to send any packets.",
121362201368SIan Rogers        "UMask": "0x1",
121462201368SIan Rogers        "Unit": "QPI LL"
121562201368SIan Rogers    },
121662201368SIan Rogers    {
121762201368SIan Rogers        "BriefDescription": "Tx Flit Buffer Cycles not Empty",
121862201368SIan Rogers        "Counter": "0,1,2,3",
121962201368SIan Rogers        "EventCode": "0x6",
122062201368SIan Rogers        "EventName": "UNC_Q_TxL_CYCLES_NE",
122162201368SIan Rogers        "PerPkg": "1",
122262201368SIan Rogers        "PublicDescription": "Counts the number of cycles when the TxQ is not empty. Generally, when data is transmitted across QPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link.",
122362201368SIan Rogers        "Unit": "QPI LL"
122462201368SIan Rogers    },
122562201368SIan Rogers    {
122662201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 0; Data Tx Flits",
122762201368SIan Rogers        "Counter": "0,1,2,3",
122862201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G0.DATA",
122962201368SIan Rogers        "PerPkg": "1",
1230*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  It includes filters for Idle, protocol, and Data Flits.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time (for L0) or 4B instead of 8B for L0p.; Number of data flits transmitted over QPI.  Each flit contains 64b of data.  This includes both DRS and NCB data flits (coherent and non-coherent).  This can be used to calculate the data bandwidth of the QPI link.  One can get a good picture of the QPI-link characteristics by evaluating the protocol flits, data flits, and idle/null flits.  This does not include the header flits that go in data packets.",
123162201368SIan Rogers        "UMask": "0x2",
123262201368SIan Rogers        "Unit": "QPI LL"
123362201368SIan Rogers    },
123462201368SIan Rogers    {
123562201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 0; Non-Data protocol Tx Flits",
12366b138c7bSAndi Kleen        "Counter": "0,1,2,3",
12376b138c7bSAndi Kleen        "EventName": "UNC_Q_TxL_FLITS_G0.NON_DATA",
12386b138c7bSAndi Kleen        "PerPkg": "1",
1239*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  It includes filters for Idle, protocol, and Data Flits.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time (for L0) or 4B instead of 8B for L0p.; Number of non-NULL non-data flits transmitted across QPI.  This basically tracks the protocol overhead on the QPI link.  One can get a good picture of the QPI-link characteristics by evaluating the protocol flits, data flits, and idle/null flits.  This includes the header flits for data packets.",
12406b138c7bSAndi Kleen        "UMask": "0x4",
12416b138c7bSAndi Kleen        "Unit": "QPI LL"
124262201368SIan Rogers    },
124362201368SIan Rogers    {
124462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; DRS Flits (both Header and Data)",
124562201368SIan Rogers        "Counter": "0,1,2,3",
124662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.DRS",
124762201368SIan Rogers        "ExtSel": "1",
124862201368SIan Rogers        "PerPkg": "1",
1249*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of flits transmitted over QPI on the DRS (Data Response) channel.  DRS flits are used to transmit data with coherency.",
125062201368SIan Rogers        "UMask": "0x18",
125162201368SIan Rogers        "Unit": "QPI LL"
125262201368SIan Rogers    },
125362201368SIan Rogers    {
125462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; DRS Data Flits",
125562201368SIan Rogers        "Counter": "0,1,2,3",
125662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.DRS_DATA",
125762201368SIan Rogers        "ExtSel": "1",
125862201368SIan Rogers        "PerPkg": "1",
1259*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of data flits transmitted over QPI on the DRS (Data Response) channel.  DRS flits are used to transmit data with coherency.  This does not count data flits transmitted over the NCB channel which transmits non-coherent data.  This includes only the data flits (not the header).",
126062201368SIan Rogers        "UMask": "0x8",
126162201368SIan Rogers        "Unit": "QPI LL"
126262201368SIan Rogers    },
126362201368SIan Rogers    {
126462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; DRS Header Flits",
126562201368SIan Rogers        "Counter": "0,1,2,3",
126662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.DRS_NONDATA",
126762201368SIan Rogers        "ExtSel": "1",
126862201368SIan Rogers        "PerPkg": "1",
1269*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of protocol flits transmitted over QPI on the DRS (Data Response) channel.  DRS flits are used to transmit data with coherency.  This does not count data flits transmitted over the NCB channel which transmits non-coherent data.  This includes only the header flits (not the data).  This includes extended headers.",
127062201368SIan Rogers        "UMask": "0x10",
127162201368SIan Rogers        "Unit": "QPI LL"
127262201368SIan Rogers    },
127362201368SIan Rogers    {
127462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; HOM Flits",
127562201368SIan Rogers        "Counter": "0,1,2,3",
127662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.HOM",
127762201368SIan Rogers        "ExtSel": "1",
127862201368SIan Rogers        "PerPkg": "1",
1279*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of flits transmitted over QPI on the home channel.",
128062201368SIan Rogers        "UMask": "0x6",
128162201368SIan Rogers        "Unit": "QPI LL"
128262201368SIan Rogers    },
128362201368SIan Rogers    {
128462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; HOM Non-Request Flits",
128562201368SIan Rogers        "Counter": "0,1,2,3",
128662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.HOM_NONREQ",
128762201368SIan Rogers        "ExtSel": "1",
128862201368SIan Rogers        "PerPkg": "1",
1289*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of non-request flits transmitted over QPI on the home channel.  These are most commonly snoop responses, and this event can be used as a proxy for that.",
129062201368SIan Rogers        "UMask": "0x4",
129162201368SIan Rogers        "Unit": "QPI LL"
129262201368SIan Rogers    },
129362201368SIan Rogers    {
129462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; HOM Request Flits",
129562201368SIan Rogers        "Counter": "0,1,2,3",
129662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.HOM_REQ",
129762201368SIan Rogers        "ExtSel": "1",
129862201368SIan Rogers        "PerPkg": "1",
1299*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of data request transmitted over QPI on the home channel.  This basically counts the number of remote memory requests transmitted over QPI.  In conjunction with the local read count in the Home Agent, one can calculate the number of LLC Misses.",
130062201368SIan Rogers        "UMask": "0x2",
130162201368SIan Rogers        "Unit": "QPI LL"
130262201368SIan Rogers    },
130362201368SIan Rogers    {
130462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 1; SNP Flits",
130562201368SIan Rogers        "Counter": "0,1,2,3",
130662201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G1.SNP",
130762201368SIan Rogers        "ExtSel": "1",
130862201368SIan Rogers        "PerPkg": "1",
1309*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for SNP, HOM, and DRS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the number of snoop request flits transmitted over QPI.  These requests are contained in the snoop channel.  This does not include snoop responses, which are transmitted on the home channel.",
131062201368SIan Rogers        "UMask": "0x1",
131162201368SIan Rogers        "Unit": "QPI LL"
131262201368SIan Rogers    },
131362201368SIan Rogers    {
131462201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 2; Non-Coherent Bypass Tx Flits",
131562201368SIan Rogers        "Counter": "0,1,2,3",
131662201368SIan Rogers        "EventCode": "0x1",
131762201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G2.NCB",
131862201368SIan Rogers        "ExtSel": "1",
131962201368SIan Rogers        "PerPkg": "1",
1320*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of Non-Coherent Bypass flits.  These packets are generally used to transmit non-coherent data across QPI.",
132162201368SIan Rogers        "UMask": "0xC",
132262201368SIan Rogers        "Unit": "QPI LL"
132362201368SIan Rogers    },
132462201368SIan Rogers    {
132562201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 2; Non-Coherent data Tx Flits",
132662201368SIan Rogers        "Counter": "0,1,2,3",
132762201368SIan Rogers        "EventCode": "0x1",
132862201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G2.NCB_DATA",
132962201368SIan Rogers        "ExtSel": "1",
133062201368SIan Rogers        "PerPkg": "1",
1331*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of Non-Coherent Bypass data flits.  These flits are generally used to transmit non-coherent data across QPI.  This does not include a count of the DRS (coherent) data flits.  This only counts the data flits, not the NCB headers.",
133262201368SIan Rogers        "UMask": "0x4",
133362201368SIan Rogers        "Unit": "QPI LL"
133462201368SIan Rogers    },
133562201368SIan Rogers    {
133662201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 2; Non-Coherent non-data Tx Flits",
133762201368SIan Rogers        "Counter": "0,1,2,3",
133862201368SIan Rogers        "EventCode": "0x1",
133962201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G2.NCB_NONDATA",
134062201368SIan Rogers        "ExtSel": "1",
134162201368SIan Rogers        "PerPkg": "1",
1342*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of Non-Coherent Bypass non-data flits.  These packets are generally used to transmit non-coherent data across QPI, and the flits counted here are for headers and other non-data flits.  This includes extended headers.",
134362201368SIan Rogers        "UMask": "0x8",
134462201368SIan Rogers        "Unit": "QPI LL"
134562201368SIan Rogers    },
134662201368SIan Rogers    {
134762201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 2; Non-Coherent standard Tx Flits",
134862201368SIan Rogers        "Counter": "0,1,2,3",
134962201368SIan Rogers        "EventCode": "0x1",
135062201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G2.NCS",
135162201368SIan Rogers        "ExtSel": "1",
135262201368SIan Rogers        "PerPkg": "1",
1353*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Number of NCS (non-coherent standard) flits transmitted over QPI.    This includes extended headers.",
135462201368SIan Rogers        "UMask": "0x10",
135562201368SIan Rogers        "Unit": "QPI LL"
135662201368SIan Rogers    },
135762201368SIan Rogers    {
135862201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 2; Non-Data Response Tx Flits - AD",
135962201368SIan Rogers        "Counter": "0,1,2,3",
136062201368SIan Rogers        "EventCode": "0x1",
136162201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G2.NDR_AD",
136262201368SIan Rogers        "ExtSel": "1",
136362201368SIan Rogers        "PerPkg": "1",
1364*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of flits transmitted over the NDR (Non-Data Response) channel.  This channel is used to send a variety of protocol flits including grants and completions.  This is only for NDR packets to the local socket which use the AK ring.",
136562201368SIan Rogers        "UMask": "0x1",
136662201368SIan Rogers        "Unit": "QPI LL"
136762201368SIan Rogers    },
136862201368SIan Rogers    {
136962201368SIan Rogers        "BriefDescription": "Flits Transferred - Group 2; Non-Data Response Tx Flits - AK",
137062201368SIan Rogers        "Counter": "0,1,2,3",
137162201368SIan Rogers        "EventCode": "0x1",
137262201368SIan Rogers        "EventName": "UNC_Q_TxL_FLITS_G2.NDR_AK",
137362201368SIan Rogers        "ExtSel": "1",
137462201368SIan Rogers        "PerPkg": "1",
1375*d2aaf040SIan Rogers        "PublicDescription": "Counts the number of flits transmitted across the QPI Link.  This is one of three groups that allow us to track flits.  It includes filters for NDR, NCB, and NCS message classes.  Each flit is made up of 80 bits of information (in addition to some ECC data).  In full-width (L0) mode, flits are made up of four fits, each of which contains 20 bits of data (along with some additional ECC data).   In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many fits to transmit a flit.  When one talks about QPI speed (for example, 8.0 GT/s), the transfers here refer to fits.  Therefore, in L0, the system will transfer 1 flit at the rate of 1/4th the QPI speed.  One can calculate the bandwidth of the link by taking: flits*80b/time.  Note that this is not the same as data bandwidth.  For example, when we are transferring a 64B cacheline across QPI, we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual data and an additional 16 bits of other information.  To calculate data bandwidth, one should therefore do: data flits * 8B / time.; Counts the total number of flits transmitted over the NDR (Non-Data Response) channel.  This channel is used to send a variety of protocol flits including grants and completions.  This is only for NDR packets destined for Route-thru to a remote socket.",
137662201368SIan Rogers        "UMask": "0x2",
137762201368SIan Rogers        "Unit": "QPI LL"
137862201368SIan Rogers    },
137962201368SIan Rogers    {
138062201368SIan Rogers        "BriefDescription": "Tx Flit Buffer Allocations",
138162201368SIan Rogers        "Counter": "0,1,2,3",
138262201368SIan Rogers        "EventCode": "0x4",
138362201368SIan Rogers        "EventName": "UNC_Q_TxL_INSERTS",
138462201368SIan Rogers        "PerPkg": "1",
138562201368SIan Rogers        "PublicDescription": "Number of allocations into the QPI Tx Flit Buffer.  Generally, when data is transmitted across QPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link.  This event can be used in conjunction with the Flit Buffer Occupancy event in order to calculate the average flit buffer lifetime.",
138662201368SIan Rogers        "Unit": "QPI LL"
138762201368SIan Rogers    },
138862201368SIan Rogers    {
138962201368SIan Rogers        "BriefDescription": "Tx Flit Buffer Occupancy",
139062201368SIan Rogers        "Counter": "0,1,2,3",
139162201368SIan Rogers        "EventCode": "0x7",
139262201368SIan Rogers        "EventName": "UNC_Q_TxL_OCCUPANCY",
139362201368SIan Rogers        "PerPkg": "1",
139462201368SIan Rogers        "PublicDescription": "Accumulates the number of flits in the TxQ.  Generally, when data is transmitted across QPI, it will bypass the TxQ and pass directly to the link.  However, the TxQ will be used with L0p and when LLR occurs, increasing latency to transfer out to the link. This can be used with the cycles not empty event to track average occupancy, or the allocations event to track average lifetime in the TxQ.",
139562201368SIan Rogers        "Unit": "QPI LL"
139662201368SIan Rogers    },
139762201368SIan Rogers    {
139862201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - HOM; for VN0",
139962201368SIan Rogers        "Counter": "0,1,2,3",
140062201368SIan Rogers        "EventCode": "0x26",
140162201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_HOM_CREDIT_ACQUIRED.VN0",
140262201368SIan Rogers        "ExtSel": "1",
140362201368SIan Rogers        "PerPkg": "1",
140462201368SIan Rogers        "PublicDescription": "Number of link layer credits into the R3 (for transactions across the BGF) acquired each cycle. Flow Control FIFO for Home messages on AD.",
140562201368SIan Rogers        "UMask": "0x1",
140662201368SIan Rogers        "Unit": "QPI LL"
140762201368SIan Rogers    },
140862201368SIan Rogers    {
140962201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - HOM; for VN1",
141062201368SIan Rogers        "Counter": "0,1,2,3",
141162201368SIan Rogers        "EventCode": "0x26",
141262201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_HOM_CREDIT_ACQUIRED.VN1",
141362201368SIan Rogers        "ExtSel": "1",
141462201368SIan Rogers        "PerPkg": "1",
141562201368SIan Rogers        "PublicDescription": "Number of link layer credits into the R3 (for transactions across the BGF) acquired each cycle. Flow Control FIFO for Home messages on AD.",
141662201368SIan Rogers        "UMask": "0x2",
141762201368SIan Rogers        "Unit": "QPI LL"
141862201368SIan Rogers    },
141962201368SIan Rogers    {
142062201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD HOM; for VN0",
142162201368SIan Rogers        "Counter": "0,1,2,3",
142262201368SIan Rogers        "EventCode": "0x22",
142362201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_HOM_CREDIT_OCCUPANCY.VN0",
142462201368SIan Rogers        "ExtSel": "1",
142562201368SIan Rogers        "PerPkg": "1",
142662201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of link layer credits into the R3 (for transactions across the BGF) available in each cycle.  Flow Control FIFO for HOM messages on AD.",
142762201368SIan Rogers        "UMask": "0x1",
142862201368SIan Rogers        "Unit": "QPI LL"
142962201368SIan Rogers    },
143062201368SIan Rogers    {
143162201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD HOM; for VN1",
143262201368SIan Rogers        "Counter": "0,1,2,3",
143362201368SIan Rogers        "EventCode": "0x22",
143462201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_HOM_CREDIT_OCCUPANCY.VN1",
143562201368SIan Rogers        "ExtSel": "1",
143662201368SIan Rogers        "PerPkg": "1",
143762201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of link layer credits into the R3 (for transactions across the BGF) available in each cycle.  Flow Control FIFO for HOM messages on AD.",
143862201368SIan Rogers        "UMask": "0x2",
143962201368SIan Rogers        "Unit": "QPI LL"
144062201368SIan Rogers    },
144162201368SIan Rogers    {
144262201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD NDR; for VN0",
144362201368SIan Rogers        "Counter": "0,1,2,3",
144462201368SIan Rogers        "EventCode": "0x28",
144562201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_NDR_CREDIT_ACQUIRED.VN0",
144662201368SIan Rogers        "ExtSel": "1",
144762201368SIan Rogers        "PerPkg": "1",
144862201368SIan Rogers        "PublicDescription": "Number of link layer credits into the R3 (for transactions across the BGF) acquired each cycle.  Flow Control FIFO for NDR messages on AD.",
144962201368SIan Rogers        "UMask": "0x1",
145062201368SIan Rogers        "Unit": "QPI LL"
145162201368SIan Rogers    },
145262201368SIan Rogers    {
145362201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD NDR; for VN1",
145462201368SIan Rogers        "Counter": "0,1,2,3",
145562201368SIan Rogers        "EventCode": "0x28",
145662201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_NDR_CREDIT_ACQUIRED.VN1",
145762201368SIan Rogers        "ExtSel": "1",
145862201368SIan Rogers        "PerPkg": "1",
145962201368SIan Rogers        "PublicDescription": "Number of link layer credits into the R3 (for transactions across the BGF) acquired each cycle.  Flow Control FIFO for NDR messages on AD.",
146062201368SIan Rogers        "UMask": "0x2",
146162201368SIan Rogers        "Unit": "QPI LL"
146262201368SIan Rogers    },
146362201368SIan Rogers    {
146462201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD NDR; for VN0",
146562201368SIan Rogers        "Counter": "0,1,2,3",
146662201368SIan Rogers        "EventCode": "0x24",
146762201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_NDR_CREDIT_OCCUPANCY.VN0",
146862201368SIan Rogers        "ExtSel": "1",
146962201368SIan Rogers        "PerPkg": "1",
147062201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of link layer credits into the R3 (for transactions across the BGF) available in each cycle. Flow Control FIFO  for NDR messages on AD.",
147162201368SIan Rogers        "UMask": "0x1",
147262201368SIan Rogers        "Unit": "QPI LL"
147362201368SIan Rogers    },
147462201368SIan Rogers    {
147562201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD NDR; for VN1",
147662201368SIan Rogers        "Counter": "0,1,2,3",
147762201368SIan Rogers        "EventCode": "0x24",
147862201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_NDR_CREDIT_OCCUPANCY.VN1",
147962201368SIan Rogers        "ExtSel": "1",
148062201368SIan Rogers        "PerPkg": "1",
148162201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of link layer credits into the R3 (for transactions across the BGF) available in each cycle. Flow Control FIFO  for NDR messages on AD.",
148262201368SIan Rogers        "UMask": "0x2",
148362201368SIan Rogers        "Unit": "QPI LL"
148462201368SIan Rogers    },
148562201368SIan Rogers    {
148662201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - SNP; for VN0",
148762201368SIan Rogers        "Counter": "0,1,2,3",
148862201368SIan Rogers        "EventCode": "0x27",
148962201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_SNP_CREDIT_ACQUIRED.VN0",
149062201368SIan Rogers        "ExtSel": "1",
149162201368SIan Rogers        "PerPkg": "1",
149262201368SIan Rogers        "PublicDescription": "Number of link layer credits into the R3 (for transactions across the BGF) acquired each cycle.  Flow Control FIFO for Snoop messages on AD.",
149362201368SIan Rogers        "UMask": "0x1",
149462201368SIan Rogers        "Unit": "QPI LL"
149562201368SIan Rogers    },
149662201368SIan Rogers    {
149762201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - SNP; for VN1",
149862201368SIan Rogers        "Counter": "0,1,2,3",
149962201368SIan Rogers        "EventCode": "0x27",
150062201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_SNP_CREDIT_ACQUIRED.VN1",
150162201368SIan Rogers        "ExtSel": "1",
150262201368SIan Rogers        "PerPkg": "1",
150362201368SIan Rogers        "PublicDescription": "Number of link layer credits into the R3 (for transactions across the BGF) acquired each cycle.  Flow Control FIFO for Snoop messages on AD.",
150462201368SIan Rogers        "UMask": "0x2",
150562201368SIan Rogers        "Unit": "QPI LL"
150662201368SIan Rogers    },
150762201368SIan Rogers    {
150862201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD SNP; for VN0",
150962201368SIan Rogers        "Counter": "0,1,2,3",
151062201368SIan Rogers        "EventCode": "0x23",
151162201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_SNP_CREDIT_OCCUPANCY.VN0",
151262201368SIan Rogers        "ExtSel": "1",
151362201368SIan Rogers        "PerPkg": "1",
1514*d2aaf040SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of link layer credits into the R3 (for transactions across the BGF) available in each cycle.  Flow Control FIFO for Snoop messages on AD.",
151562201368SIan Rogers        "UMask": "0x1",
151662201368SIan Rogers        "Unit": "QPI LL"
151762201368SIan Rogers    },
151862201368SIan Rogers    {
151962201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AD SNP; for VN1",
152062201368SIan Rogers        "Counter": "0,1,2,3",
152162201368SIan Rogers        "EventCode": "0x23",
152262201368SIan Rogers        "EventName": "UNC_Q_TxR_AD_SNP_CREDIT_OCCUPANCY.VN1",
152362201368SIan Rogers        "ExtSel": "1",
152462201368SIan Rogers        "PerPkg": "1",
1525*d2aaf040SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of link layer credits into the R3 (for transactions across the BGF) available in each cycle.  Flow Control FIFO for Snoop messages on AD.",
152662201368SIan Rogers        "UMask": "0x2",
152762201368SIan Rogers        "Unit": "QPI LL"
152862201368SIan Rogers    },
152962201368SIan Rogers    {
153062201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AK NDR",
153162201368SIan Rogers        "Counter": "0,1,2,3",
153262201368SIan Rogers        "EventCode": "0x29",
153362201368SIan Rogers        "EventName": "UNC_Q_TxR_AK_NDR_CREDIT_ACQUIRED",
153462201368SIan Rogers        "ExtSel": "1",
153562201368SIan Rogers        "PerPkg": "1",
153662201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. Local NDR message class to AK Egress.",
153762201368SIan Rogers        "Unit": "QPI LL"
153862201368SIan Rogers    },
153962201368SIan Rogers    {
154062201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AK NDR: for VN0",
154162201368SIan Rogers        "Counter": "0,1,2,3",
154262201368SIan Rogers        "EventCode": "0x29",
154362201368SIan Rogers        "EventName": "UNC_Q_TxR_AK_NDR_CREDIT_ACQUIRED.VN0",
154462201368SIan Rogers        "ExtSel": "1",
154562201368SIan Rogers        "PerPkg": "1",
154662201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. Local NDR message class to AK Egress.",
154762201368SIan Rogers        "UMask": "0x1",
154862201368SIan Rogers        "Unit": "QPI LL"
154962201368SIan Rogers    },
155062201368SIan Rogers    {
155162201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AK NDR: for VN1",
155262201368SIan Rogers        "Counter": "0,1,2,3",
155362201368SIan Rogers        "EventCode": "0x29",
155462201368SIan Rogers        "EventName": "UNC_Q_TxR_AK_NDR_CREDIT_ACQUIRED.VN1",
155562201368SIan Rogers        "ExtSel": "1",
155662201368SIan Rogers        "PerPkg": "1",
155762201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. Local NDR message class to AK Egress.",
155862201368SIan Rogers        "UMask": "0x2",
155962201368SIan Rogers        "Unit": "QPI LL"
156062201368SIan Rogers    },
156162201368SIan Rogers    {
156262201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AK NDR",
156362201368SIan Rogers        "Counter": "0,1,2,3",
156462201368SIan Rogers        "EventCode": "0x25",
156562201368SIan Rogers        "EventName": "UNC_Q_TxR_AK_NDR_CREDIT_OCCUPANCY",
156662201368SIan Rogers        "ExtSel": "1",
156762201368SIan Rogers        "PerPkg": "1",
156862201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  Local NDR message class to AK Egress.",
156962201368SIan Rogers        "Unit": "QPI LL"
157062201368SIan Rogers    },
157162201368SIan Rogers    {
157262201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AK NDR: for VN0",
157362201368SIan Rogers        "Counter": "0,1,2,3",
157462201368SIan Rogers        "EventCode": "0x25",
157562201368SIan Rogers        "EventName": "UNC_Q_TxR_AK_NDR_CREDIT_OCCUPANCY.VN0",
157662201368SIan Rogers        "ExtSel": "1",
157762201368SIan Rogers        "PerPkg": "1",
157862201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  Local NDR message class to AK Egress.",
157962201368SIan Rogers        "UMask": "0x1",
158062201368SIan Rogers        "Unit": "QPI LL"
158162201368SIan Rogers    },
158262201368SIan Rogers    {
158362201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - AK NDR: for VN1",
158462201368SIan Rogers        "Counter": "0,1,2,3",
158562201368SIan Rogers        "EventCode": "0x25",
158662201368SIan Rogers        "EventName": "UNC_Q_TxR_AK_NDR_CREDIT_OCCUPANCY.VN1",
158762201368SIan Rogers        "ExtSel": "1",
158862201368SIan Rogers        "PerPkg": "1",
158962201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  Local NDR message class to AK Egress.",
159062201368SIan Rogers        "UMask": "0x2",
159162201368SIan Rogers        "Unit": "QPI LL"
159262201368SIan Rogers    },
159362201368SIan Rogers    {
159462201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - DRS; for VN0",
159562201368SIan Rogers        "Counter": "0,1,2,3",
159662201368SIan Rogers        "EventCode": "0x2a",
159762201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_DRS_CREDIT_ACQUIRED.VN0",
159862201368SIan Rogers        "ExtSel": "1",
159962201368SIan Rogers        "PerPkg": "1",
160062201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. DRS message class to BL Egress.",
160162201368SIan Rogers        "UMask": "0x1",
160262201368SIan Rogers        "Unit": "QPI LL"
160362201368SIan Rogers    },
160462201368SIan Rogers    {
160562201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - DRS; for VN1",
160662201368SIan Rogers        "Counter": "0,1,2,3",
160762201368SIan Rogers        "EventCode": "0x2a",
160862201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_DRS_CREDIT_ACQUIRED.VN1",
160962201368SIan Rogers        "ExtSel": "1",
161062201368SIan Rogers        "PerPkg": "1",
161162201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. DRS message class to BL Egress.",
161262201368SIan Rogers        "UMask": "0x2",
161362201368SIan Rogers        "Unit": "QPI LL"
161462201368SIan Rogers    },
161562201368SIan Rogers    {
161662201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - DRS; for Shared VN",
161762201368SIan Rogers        "Counter": "0,1,2,3",
161862201368SIan Rogers        "EventCode": "0x2a",
161962201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_DRS_CREDIT_ACQUIRED.VN_SHR",
162062201368SIan Rogers        "ExtSel": "1",
162162201368SIan Rogers        "PerPkg": "1",
162262201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. DRS message class to BL Egress.",
162362201368SIan Rogers        "UMask": "0x4",
162462201368SIan Rogers        "Unit": "QPI LL"
162562201368SIan Rogers    },
162662201368SIan Rogers    {
162762201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL DRS; for VN0",
162862201368SIan Rogers        "Counter": "0,1,2,3",
162962201368SIan Rogers        "EventCode": "0x1f",
163062201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_DRS_CREDIT_OCCUPANCY.VN0",
163162201368SIan Rogers        "ExtSel": "1",
163262201368SIan Rogers        "PerPkg": "1",
163362201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  DRS message class to BL Egress.",
163462201368SIan Rogers        "UMask": "0x1",
163562201368SIan Rogers        "Unit": "QPI LL"
163662201368SIan Rogers    },
163762201368SIan Rogers    {
163862201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL DRS; for VN1",
163962201368SIan Rogers        "Counter": "0,1,2,3",
164062201368SIan Rogers        "EventCode": "0x1f",
164162201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_DRS_CREDIT_OCCUPANCY.VN1",
164262201368SIan Rogers        "ExtSel": "1",
164362201368SIan Rogers        "PerPkg": "1",
164462201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  DRS message class to BL Egress.",
164562201368SIan Rogers        "UMask": "0x2",
164662201368SIan Rogers        "Unit": "QPI LL"
164762201368SIan Rogers    },
164862201368SIan Rogers    {
164962201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL DRS; for Shared VN",
165062201368SIan Rogers        "Counter": "0,1,2,3",
165162201368SIan Rogers        "EventCode": "0x1f",
165262201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_DRS_CREDIT_OCCUPANCY.VN_SHR",
165362201368SIan Rogers        "ExtSel": "1",
165462201368SIan Rogers        "PerPkg": "1",
165562201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  DRS message class to BL Egress.",
165662201368SIan Rogers        "UMask": "0x4",
165762201368SIan Rogers        "Unit": "QPI LL"
165862201368SIan Rogers    },
165962201368SIan Rogers    {
166062201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - NCB; for VN0",
166162201368SIan Rogers        "Counter": "0,1,2,3",
166262201368SIan Rogers        "EventCode": "0x2b",
166362201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCB_CREDIT_ACQUIRED.VN0",
166462201368SIan Rogers        "ExtSel": "1",
166562201368SIan Rogers        "PerPkg": "1",
166662201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. NCB message class to BL Egress.",
166762201368SIan Rogers        "UMask": "0x1",
166862201368SIan Rogers        "Unit": "QPI LL"
166962201368SIan Rogers    },
167062201368SIan Rogers    {
167162201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - NCB; for VN1",
167262201368SIan Rogers        "Counter": "0,1,2,3",
167362201368SIan Rogers        "EventCode": "0x2b",
167462201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCB_CREDIT_ACQUIRED.VN1",
167562201368SIan Rogers        "ExtSel": "1",
167662201368SIan Rogers        "PerPkg": "1",
167762201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. NCB message class to BL Egress.",
167862201368SIan Rogers        "UMask": "0x2",
167962201368SIan Rogers        "Unit": "QPI LL"
168062201368SIan Rogers    },
168162201368SIan Rogers    {
168262201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL NCB; for VN0",
168362201368SIan Rogers        "Counter": "0,1,2,3",
168462201368SIan Rogers        "EventCode": "0x20",
168562201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCB_CREDIT_OCCUPANCY.VN0",
168662201368SIan Rogers        "ExtSel": "1",
168762201368SIan Rogers        "PerPkg": "1",
168862201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  NCB message class to BL Egress.",
168962201368SIan Rogers        "UMask": "0x1",
169062201368SIan Rogers        "Unit": "QPI LL"
169162201368SIan Rogers    },
169262201368SIan Rogers    {
169362201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL NCB; for VN1",
169462201368SIan Rogers        "Counter": "0,1,2,3",
169562201368SIan Rogers        "EventCode": "0x20",
169662201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCB_CREDIT_OCCUPANCY.VN1",
169762201368SIan Rogers        "ExtSel": "1",
169862201368SIan Rogers        "PerPkg": "1",
169962201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  NCB message class to BL Egress.",
170062201368SIan Rogers        "UMask": "0x2",
170162201368SIan Rogers        "Unit": "QPI LL"
170262201368SIan Rogers    },
170362201368SIan Rogers    {
170462201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - NCS; for VN0",
170562201368SIan Rogers        "Counter": "0,1,2,3",
170662201368SIan Rogers        "EventCode": "0x2c",
170762201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCS_CREDIT_ACQUIRED.VN0",
170862201368SIan Rogers        "ExtSel": "1",
170962201368SIan Rogers        "PerPkg": "1",
171062201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. NCS message class to BL Egress.",
171162201368SIan Rogers        "UMask": "0x1",
171262201368SIan Rogers        "Unit": "QPI LL"
171362201368SIan Rogers    },
171462201368SIan Rogers    {
171562201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - NCS; for VN1",
171662201368SIan Rogers        "Counter": "0,1,2,3",
171762201368SIan Rogers        "EventCode": "0x2c",
171862201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCS_CREDIT_ACQUIRED.VN1",
171962201368SIan Rogers        "ExtSel": "1",
172062201368SIan Rogers        "PerPkg": "1",
172162201368SIan Rogers        "PublicDescription": "Number of credits into the R3 (for transactions across the BGF) acquired each cycle. NCS message class to BL Egress.",
172262201368SIan Rogers        "UMask": "0x2",
172362201368SIan Rogers        "Unit": "QPI LL"
172462201368SIan Rogers    },
172562201368SIan Rogers    {
172662201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL NCS; for VN0",
172762201368SIan Rogers        "Counter": "0,1,2,3",
172862201368SIan Rogers        "EventCode": "0x21",
172962201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCS_CREDIT_OCCUPANCY.VN0",
173062201368SIan Rogers        "ExtSel": "1",
173162201368SIan Rogers        "PerPkg": "1",
173262201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  NCS message class to BL Egress.",
173362201368SIan Rogers        "UMask": "0x1",
173462201368SIan Rogers        "Unit": "QPI LL"
173562201368SIan Rogers    },
173662201368SIan Rogers    {
173762201368SIan Rogers        "BriefDescription": "R3QPI Egress Credit Occupancy - BL NCS; for VN1",
173862201368SIan Rogers        "Counter": "0,1,2,3",
173962201368SIan Rogers        "EventCode": "0x21",
174062201368SIan Rogers        "EventName": "UNC_Q_TxR_BL_NCS_CREDIT_OCCUPANCY.VN1",
174162201368SIan Rogers        "ExtSel": "1",
174262201368SIan Rogers        "PerPkg": "1",
174362201368SIan Rogers        "PublicDescription": "Occupancy event that tracks the number of credits into the R3 (for transactions across the BGF) available in each cycle.  NCS message class to BL Egress.",
174462201368SIan Rogers        "UMask": "0x2",
174562201368SIan Rogers        "Unit": "QPI LL"
174662201368SIan Rogers    },
174762201368SIan Rogers    {
174862201368SIan Rogers        "BriefDescription": "VNA Credits Returned",
174962201368SIan Rogers        "Counter": "0,1,2,3",
175062201368SIan Rogers        "EventCode": "0x1c",
175162201368SIan Rogers        "EventName": "UNC_Q_VNA_CREDIT_RETURNS",
175262201368SIan Rogers        "ExtSel": "1",
175362201368SIan Rogers        "PerPkg": "1",
175462201368SIan Rogers        "PublicDescription": "Number of VNA credits returned.",
175562201368SIan Rogers        "Unit": "QPI LL"
175662201368SIan Rogers    },
175762201368SIan Rogers    {
175862201368SIan Rogers        "BriefDescription": "VNA Credits Pending Return - Occupancy",
175962201368SIan Rogers        "Counter": "0,1,2,3",
176062201368SIan Rogers        "EventCode": "0x1b",
176162201368SIan Rogers        "EventName": "UNC_Q_VNA_CREDIT_RETURN_OCCUPANCY",
176262201368SIan Rogers        "ExtSel": "1",
176362201368SIan Rogers        "PerPkg": "1",
176462201368SIan Rogers        "PublicDescription": "Number of VNA credits in the Rx side that are waitng to be returned back across the link.",
176562201368SIan Rogers        "Unit": "QPI LL"
17666b138c7bSAndi Kleen    }
17676b138c7bSAndi Kleen]
1768