|
Packit Service |
a1973e |
/*
|
|
Packit Service |
a1973e |
* Copyright (c) 2017 Google Inc. All rights reserved
|
|
Packit Service |
a1973e |
* Contributed by Stephane Eranian <eranian@gmail.com>
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
Packit Service |
a1973e |
* of this software and associated documentation files (the "Software"), to deal
|
|
Packit Service |
a1973e |
* in the Software without restriction, including without limitation the rights
|
|
Packit Service |
a1973e |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
Packit Service |
a1973e |
* of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
Packit Service |
a1973e |
* subject to the following conditions:
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* The above copyright notice and this permission notice shall be included in all
|
|
Packit Service |
a1973e |
* copies or substantial portions of the Software.
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
Packit Service |
a1973e |
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
Packit Service |
a1973e |
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
Packit Service |
a1973e |
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
Packit Service |
a1973e |
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
Packit Service |
a1973e |
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* This file is part of libpfm, a performance monitoring support library for
|
|
Packit Service |
a1973e |
* applications on Linux.
|
|
Packit Service |
a1973e |
*
|
|
Packit Service |
a1973e |
* PMU: bdx_unc_r2pcie
|
|
Packit Service |
a1973e |
*/
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_iio_credit[]={
|
|
Packit Service |
a1973e |
{ .uname = "ISOCH_QPI0",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.udesc = "TBD",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "ISOCH_QPI1",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.udesc = "TBD",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PRQ_QPI0",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "TBD",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "PRQ_QPI1",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "TBD",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_ring_ad_used[]={
|
|
Packit Service |
a1973e |
{ .uname = "CCW",
|
|
Packit Service |
a1973e |
.ucode = 0xc00,
|
|
Packit Service |
a1973e |
.udesc = "Counterclockwise",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CCW_EVEN",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.udesc = "Counterclockwise and Even",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CCW_ODD",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.udesc = "Counterclockwise and Odd",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CW",
|
|
Packit Service |
a1973e |
.ucode = 0x300,
|
|
Packit Service |
a1973e |
.udesc = "Clockwise",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CW_EVEN",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "Clockwise and Even",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CW_ODD",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "Clockwise and Odd",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_ring_ak_bounces[]={
|
|
Packit Service |
a1973e |
{ .uname = "DN",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "AK Ingress Bounced -- Dn",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "UP",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "AK Ingress Bounced -- Up",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_ring_iv_used[]={
|
|
Packit Service |
a1973e |
{ .uname = "ANY",
|
|
Packit Service |
a1973e |
.ucode = 0xf00,
|
|
Packit Service |
a1973e |
.udesc = "Any directions",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CCW",
|
|
Packit Service |
a1973e |
.ucode = 0xc00,
|
|
Packit Service |
a1973e |
.udesc = "Counterclockwise",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "CW",
|
|
Packit Service |
a1973e |
.ucode = 0x300,
|
|
Packit Service |
a1973e |
.udesc = "Clockwise",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_NCOMBO,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_rxr_cycles_ne[]={
|
|
Packit Service |
a1973e |
{ .uname = "NCB",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.udesc = "NCB",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "NCS",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.udesc = "NCS",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_rxr_occupancy[]={
|
|
Packit Service |
a1973e |
{ .uname = "DRS",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.udesc = "Ingress Occupancy Accumulator -- DRS",
|
|
Packit Service |
a1973e |
.uflags = INTEL_X86_DFL,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_sbo0_credits_acquired[]={
|
|
Packit Service |
a1973e |
{ .uname = "AD",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "SBo0 Credits Acquired -- For AD Ring",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "BL",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "SBo0 Credits Acquired -- For BL Ring",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_stall_no_sbo_credit[]={
|
|
Packit Service |
a1973e |
{ .uname = "SBO0_AD",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "Stall on No Sbo Credits -- For SBo0, AD Ring",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SBO0_BL",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.udesc = "Stall on No Sbo Credits -- For SBo0, BL Ring",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SBO1_AD",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "Stall on No Sbo Credits -- For SBo1, AD Ring",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "SBO1_BL",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.udesc = "Stall on No Sbo Credits -- For SBo1, BL Ring",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_txr_cycles_full[]={
|
|
Packit Service |
a1973e |
{ .uname = "AD",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "Egress Cycles Full -- AD",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "AK",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "Egress Cycles Full -- AK",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "BL",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.udesc = "Egress Cycles Full -- BL",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_txr_cycles_ne[]={
|
|
Packit Service |
a1973e |
{ .uname = "AD",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "Egress Cycles Not Empty -- AD",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "AK",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "Egress Cycles Not Empty -- AK",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "BL",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.udesc = "Egress Cycles Not Empty -- BL",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_umask_t bdx_unc_r2_txr_nack_cw[]={
|
|
Packit Service |
a1973e |
{ .uname = "DN_AD",
|
|
Packit Service |
a1973e |
.ucode = 0x100,
|
|
Packit Service |
a1973e |
.udesc = "Egress CCW NACK -- AD CCW",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DN_AK",
|
|
Packit Service |
a1973e |
.ucode = 0x400,
|
|
Packit Service |
a1973e |
.udesc = "Egress CCW NACK -- AK CCW",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "DN_BL",
|
|
Packit Service |
a1973e |
.ucode = 0x200,
|
|
Packit Service |
a1973e |
.udesc = "Egress CCW NACK -- BL CCW",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "UP_AD",
|
|
Packit Service |
a1973e |
.ucode = 0x800,
|
|
Packit Service |
a1973e |
.udesc = "Egress CCW NACK -- AK CCW",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "UP_AK",
|
|
Packit Service |
a1973e |
.ucode = 0x2000,
|
|
Packit Service |
a1973e |
.udesc = "Egress CCW NACK -- BL CW",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .uname = "UP_BL",
|
|
Packit Service |
a1973e |
.ucode = 0x1000,
|
|
Packit Service |
a1973e |
.udesc = "Egress CCW NACK -- BL CCW",
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
static intel_x86_entry_t intel_bdx_unc_r2_pe[]={
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_CLOCKTICKS",
|
|
Packit Service |
a1973e |
.code = 0x1,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of uclks in the R2PCIe uclk domain. This could be slightly different than the count in the Ubox because of enable/freeze delays. However, because the R2PCIe is close to the Ubox, they generally should not diverge by more than a handful of cycles.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_IIO_CREDIT",
|
|
Packit Service |
a1973e |
.code = 0x2d,
|
|
Packit Service |
a1973e |
.desc = "TBD",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x3,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_iio_credit,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_iio_credit),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RING_AD_USED",
|
|
Packit Service |
a1973e |
.code = 0x7,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles that the AD ring is being used at this ring stop. This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_ring_ad_used,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_ring_ad_used),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RING_AK_BOUNCES",
|
|
Packit Service |
a1973e |
.code = 0x12,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of times when a request destined for the AK ingress bounced.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_ring_ak_bounces,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_ring_ak_bounces),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RING_AK_USED",
|
|
Packit Service |
a1973e |
.code = 0x8,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles that the AK ring is being used at this ring stop. This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_ring_ad_used,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_ring_ad_used),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RING_BL_USED",
|
|
Packit Service |
a1973e |
.code = 0x9,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles that the BL ring is being used at this ring stop. This includes when packets are passing by and when packets are being sunk, but does not include when packets are being sent from the ring stop.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_ring_ad_used,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_ring_ad_used),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RING_IV_USED",
|
|
Packit Service |
a1973e |
.code = 0xa,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles that the IV ring is being used at this ring stop. This includes when packets are passing by and when packets are being sent, but does not include when packets are being sunk into the ring stop.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0xf,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_ring_iv_used,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_ring_iv_used),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RXR_CYCLES_NE",
|
|
Packit Service |
a1973e |
.code = 0x10,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles when the R2PCIe Ingress is not empty. This tracks one of the three rings that are used by the R2PCIe agent. This can be used in conjunction with the R2PCIe Ingress Occupancy Accumulator event in order to calculate average queue occupancy. Multiple ingress buffers can be tracked at a given time using multiple counters.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x3,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_rxr_cycles_ne,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_rxr_cycles_ne),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RXR_INSERTS",
|
|
Packit Service |
a1973e |
.code = 0x11,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of allocations into the R2PCIe Ingress. This tracks one of the three rings that are used by the R2PCIe agent. This can be used in conjunction with the R2PCIe Ingress Occupancy Accumulator event in order to calculate average queue latency. Multiple ingress buffers can be tracked at a given time using multiple counters.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x3,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_rxr_cycles_ne,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_rxr_cycles_ne),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_RXR_OCCUPANCY",
|
|
Packit Service |
a1973e |
.code = 0x13,
|
|
Packit Service |
a1973e |
.desc = "Accumulates the occupancy of a given R2PCIe Ingress queue in each cycles. This tracks one of the three ring Ingress buffers. This can be used with the R2PCIe Ingress Not Empty event to calculate average occupancy or the R2PCIe Ingress Allocations event in order to calculate average queuing latency.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x1,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_rxr_occupancy,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_rxr_occupancy),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_SBO0_CREDITS_ACQUIRED",
|
|
Packit Service |
a1973e |
.code = 0x28,
|
|
Packit Service |
a1973e |
.desc = "Number of Sbo 0 credits acquired in a given cycle, per ring.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x3,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_sbo0_credits_acquired,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_sbo0_credits_acquired),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_STALL_NO_SBO_CREDIT",
|
|
Packit Service |
a1973e |
.code = 0x2c,
|
|
Packit Service |
a1973e |
.desc = "Number of cycles Egress is stalled waiting for an Sbo credit to become available. Per Sbo, per Ring.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x3,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_stall_no_sbo_credit,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_stall_no_sbo_credit),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_TXR_CYCLES_FULL",
|
|
Packit Service |
a1973e |
.code = 0x25,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles when the R2PCIe Egress buffer is full.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x1,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_txr_cycles_full,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_txr_cycles_full),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_TXR_CYCLES_NE",
|
|
Packit Service |
a1973e |
.code = 0x23,
|
|
Packit Service |
a1973e |
.desc = "Counts the number of cycles when the R2PCIe Egress is not empty. This tracks one of the three rings that are used by the R2PCIe agent. This can be used in conjunction with the R2PCIe Egress Occupancy Accumulator event in order to calculate average queue occupancy. Only a single Egress queue can be tracked at any given time. It is not possible to filter based on direction or polarity.",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x1,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_txr_cycles_ne,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_txr_cycles_ne),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
{ .name = "UNC_R2_TXR_NACK_CW",
|
|
Packit Service |
a1973e |
.code = 0x26,
|
|
Packit Service |
a1973e |
.desc = "TBD",
|
|
Packit Service |
a1973e |
.modmsk = BDX_UNC_R2PCIE_ATTRS,
|
|
Packit Service |
a1973e |
.cntmsk = 0x3,
|
|
Packit Service |
a1973e |
.ngrp = 1,
|
|
Packit Service |
a1973e |
.umasks = bdx_unc_r2_txr_nack_cw,
|
|
Packit Service |
a1973e |
.numasks= LIBPFM_ARRAY_SIZE(bdx_unc_r2_txr_nack_cw),
|
|
Packit Service |
a1973e |
},
|
|
Packit Service |
a1973e |
};
|