Blame src/libpfm4/lib/events/intel_bdx_unc_sbo_events.h

Packit 577717
/*
Packit 577717
 * Copyright (c) 2017 Google Inc. All rights reserved
Packit 577717
 * Contributed by Stephane Eranian <eranian@gmail.com>
Packit 577717
 *
Packit 577717
 * Permission is hereby granted, free of charge, to any person obtaining a copy
Packit 577717
 * of this software and associated documentation files (the "Software"), to deal
Packit 577717
 * in the Software without restriction, including without limitation the rights
Packit 577717
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
Packit 577717
 * of the Software, and to permit persons to whom the Software is furnished to do so,
Packit 577717
 * subject to the following conditions:
Packit 577717
 *
Packit 577717
 * The above copyright notice and this permission notice shall be included in all
Packit 577717
 * copies or substantial portions of the Software.
Packit 577717
 *
Packit 577717
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
Packit 577717
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
Packit 577717
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
Packit 577717
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
Packit 577717
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
Packit 577717
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit 577717
 *
Packit 577717
 * This file is part of libpfm, a performance monitoring support library for
Packit 577717
 * applications on Linux.
Packit 577717
 *
Packit 577717
 * PMU: bdx_unc_sbo
Packit 577717
 */
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_ring_ad_used[]={
Packit 577717
	{ .uname = "DOWN_EVEN",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Down and Event",
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN_ODD",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Down and Odd",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_EVEN",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Up and Even",
Packit 577717
	},
Packit 577717
	{ .uname = "UP_ODD",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Up and Odd",
Packit 577717
	},
Packit 577717
	{ .uname = "UP",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "Up",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "DOWN",
Packit 577717
	  .ucode = 0xcc00,
Packit 577717
	  .udesc = "Down",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_ring_bounces[]={
Packit 577717
	{ .uname = "AD_CACHE",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- ",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_CORE",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- Acknowledgements to core",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CORE",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- Data Responses to core",
Packit 577717
	},
Packit 577717
	{ .uname = "IV_CORE",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Number of LLC responses that bounced on the Ring. -- Snoops of processors cachee.",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_ring_iv_used[]={
Packit 577717
	{ .uname = "DN",
Packit 577717
	  .ucode = 0xc00,
Packit 577717
	  .udesc = "BL Ring in Use -- Any",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "UP",
Packit 577717
	  .ucode = 0x300,
Packit 577717
	  .udesc = "BL Ring in Use -- Any",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_rxr_bypass[]={
Packit 577717
	{ .uname = "AD_BNC",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Bypass -- AD - Bounces",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "AD_CRD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Bypass -- AD - Credits",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Bypass -- AK",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "BL_BNC",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Bypass -- BL - Bounces",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CRD",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Bypass -- BL - Credits",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "IV",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Bypass -- IV",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_rxr_inserts[]={
Packit 577717
	{ .uname = "AD_BNC",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Allocations -- AD - Bounces",
Packit 577717
	},
Packit 577717
	{ .uname = "AD_CRD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Allocations -- AD - Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Ingress Allocations -- AK",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_BNC",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Ingress Allocations -- BL - Bounces",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CRD",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Ingress Allocations -- BL - Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "IV",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Ingress Allocations -- IV",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_rxr_occupancy[]={
Packit 577717
	{ .uname = "AD_BNC",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Ingress Occupancy -- AD - Bounces",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "AD_CRD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Ingress Occupancy -- AD - Credits",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Ingress Occupancy -- AK",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "BL_BNC",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Ingress Occupancy -- BL - Bounces",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CRD",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Ingress Occupancy -- BL - Credits",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
	{ .uname = "IV",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Ingress Occupancy -- IV",
Packit 577717
	  .uflags= INTEL_X86_NCOMBO,
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_txr_ads_used[]={
Packit 577717
	{ .uname = "AD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "BL",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_txr_inserts[]={
Packit 577717
	{ .uname = "AD_BNC",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Egress Allocations -- AD - Bounces",
Packit 577717
	},
Packit 577717
	{ .uname = "AD_CRD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Egress Allocations -- AD - Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Egress Allocations -- AK",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_BNC",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Egress Allocations -- BL - Bounces",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CRD",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Egress Allocations -- BL - Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "IV",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Egress Allocations -- IV",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_txr_occupancy[]={
Packit 577717
	{ .uname = "AD_BNC",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "Egress Occupancy -- AD - Bounces",
Packit 577717
	},
Packit 577717
	{ .uname = "AD_CRD",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "Egress Occupancy -- AD - Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "AK",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "Egress Occupancy -- AK",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_BNC",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "Egress Occupancy -- BL - Bounces",
Packit 577717
	},
Packit 577717
	{ .uname = "BL_CRD",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "Egress Occupancy -- BL - Credits",
Packit 577717
	},
Packit 577717
	{ .uname = "IV",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "Egress Occupancy -- IV",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_umask_t bdx_unc_s_txr_ordering[]={
Packit 577717
	{ .uname = "IVSNOOPGO_UP",
Packit 577717
	  .ucode = 0x100,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "IVSNOOP_DN",
Packit 577717
	  .ucode = 0x200,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_U2C_UP_EVEN",
Packit 577717
	  .ucode = 0x400,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_U2C_UP_ODD",
Packit 577717
	  .ucode = 0x800,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_U2C_DN_EVEN",
Packit 577717
	  .ucode = 0x1000,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
	{ .uname = "AK_U2C_DN_ODD",
Packit 577717
	  .ucode = 0x2000,
Packit 577717
	  .udesc = "TBD",
Packit 577717
	},
Packit 577717
};
Packit 577717
Packit 577717
static intel_x86_entry_t intel_bdx_unc_s_pe[]={
Packit 577717
  { .name   = "UNC_S_BOUNCE_CONTROL",
Packit 577717
    .code   = 0xa,
Packit 577717
    .desc   = "TBD",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_CLOCKTICKS",
Packit 577717
    .code   = 0x0,
Packit 577717
    .desc   = "TBD",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_FAST_ASSERTED",
Packit 577717
    .code   = 0x9,
Packit 577717
    .desc   = "Counts the number of cycles either the local or incoming distress signals are asserted.  Incoming distress includes up, dn and across.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RING_AD_USED",
Packit 577717
    .code   = 0x1b,
Packit 577717
    .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 sent, but does not include when packets are being sunk into the ring stop.  We really have two rings in BDX -- a clockwise ring and a counter-clockwise ring.  On the left side of the ring, the UP direction is on the clockwise ring and DN is on the counter-clockwise ring.  On the right side of the ring, this is reversed.  The first half of the CBos are on the left side of the ring, and the 2nd half are on the right side of the ring.  In other words (for example), in a 4c part, Cbo 0 UP AD is NOT the same ring as CBo 2 UP AD because they are on opposite sides of the rhe ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_ring_ad_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_ring_ad_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RING_AK_USED",
Packit 577717
    .code   = 0x1c,
Packit 577717
    .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 sent, but does not include when packets are being sunk into the ring stop. We really have two rings in BDX -- a clockwise ring and a counter-clockwise ring.  On the left side of the ring, the UP direction is on the clockwise ring and DN is on the counter-clockwise ring.  On the right side of the ring, this is reversed.  The first half of the CBos are on the left side of the ring, and the 2nd half are on the right side of the ring.  In other words (for example), in a 4c part, Cbo 0 UP AD is NOT the same ring as CBo 2 UP AD because they are on opposite sides of the rhe ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_ring_ad_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_ring_ad_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RING_BL_USED",
Packit 577717
    .code   = 0x1d,
Packit 577717
    .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 sent, but does not include when packets are being sunk into the ring stop. We really have two rings in BDX -- a clockwise ring and a counter-clockwise ring.  On the left side of the ring, the UP direction is on the clockwise ring and DN is on the counter-clockwise ring.  On the right side of the ring, this is reversed.  The first half of the CBos are on the left side of the ring, and the 2nd half are on the right side of the ring.  In other words (for example), in a 4c part, Cbo 0 UP AD is NOT the same ring as CBo 2 UP AD because they are on opposite sides of the rhe ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_ring_ad_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_ring_ad_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RING_BOUNCES",
Packit 577717
    .code   = 0x5,
Packit 577717
    .desc   = "TBD",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_ring_bounces,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_ring_bounces),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RING_IV_USED",
Packit 577717
    .code   = 0x1e,
Packit 577717
    .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 sent, but does not include when packets are being sunk into the ring stop.  There is only 1 IV ring in BDX.  Therefore, if one wants to monitor the Even ring, they should select both UP_EVEN and DN_EVEN.  To monitor the Odd ring, they should select both UP_ODD and DN_ DN_ODD.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_ring_iv_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_ring_iv_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RXR_BYPASS",
Packit 577717
    .code   = 0x12,
Packit 577717
    .desc   = "Bypass the Sbo Ingress.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_rxr_bypass,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_rxr_bypass),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RXR_INSERTS",
Packit 577717
    .code   = 0x13,
Packit 577717
    .desc   = "Number of allocations into the Sbo Ingress  The Ingress is used to queue up requests received from the ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_rxr_inserts,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_rxr_inserts),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_RXR_OCCUPANCY",
Packit 577717
    .code   = 0x11,
Packit 577717
    .desc   = "Occupancy event for the Ingress buffers in the Sbo.  The Ingress is used to queue up requests received from the ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_rxr_occupancy,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_rxr_occupancy),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_TXR_ADS_USED",
Packit 577717
    .code   = 0x4,
Packit 577717
    .desc   = "",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_txr_ads_used,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_txr_ads_used),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_TXR_INSERTS",
Packit 577717
    .code   = 0x2,
Packit 577717
    .desc   = "Number of allocations into the Sbo Egress.  The Egress is used to queue up requests destined for the ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_txr_inserts,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_txr_inserts),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_TXR_OCCUPANCY",
Packit 577717
    .code   = 0x1,
Packit 577717
    .desc   = "Occupancy event for the Egress buffers in the Sbo.  The egress is used to queue up requests destined for the ring.",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_txr_occupancy,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_txr_occupancy),
Packit 577717
  },
Packit 577717
  { .name   = "UNC_S_TXR_ORDERING",
Packit 577717
    .code   = 0x7,
Packit 577717
    .desc   = "TB",
Packit 577717
    .modmsk = BDX_UNC_SBO_ATTRS,
Packit 577717
    .cntmsk = 0xf,
Packit 577717
    .ngrp   = 1,
Packit 577717
    .umasks = bdx_unc_s_txr_ordering,
Packit 577717
    .numasks= LIBPFM_ARRAY_SIZE(bdx_unc_s_txr_ordering),
Packit 577717
  },
Packit 577717
};