Thanks, that fixes it. Note: your patch appears to be against linux-next. I had to change "arch/x86/events/intel/uncore_snbep.c" to "arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c" for the patch to apply against current linux-git.
Tested-by: Tony Battersby <to...@cybernetics.com> On 02/24/2016 10:37 AM, Liang, Kan wrote: > I have no idea why the original email was redirected to Junk folder. > Sorry for the late response. > > I extended BDX-DE uncore code to support BDX-EP. So they share > the same code path. But there is no sbox in BDX-DE. > I once tried the BDX-EP patch on my BDX-DE, it boots fine. > But it looks it doesn't work well for all machines. :( > > Could you please try the patch as below? It specially handles the > BDX-DE by removing SBOX support. > > Thanks, > Kan > > > >From 7e09100dda852de7263ba569dcfba737668c828e Mon Sep 17 00:00:00 2001 > From: Kan Liang <kan.li...@intel.com> > Date: Wed, 24 Feb 2016 05:07:43 -0500 > Subject: [PATCH 1/1] x86/perf/intel/uncore: remove SBOX support for BDX-DE > > BDX-DE and BDX-EP share the same uncore code path. But there is no sbox > in BDX-DE. This patch remove SBOX support for BDX-DE. > > Signed-off-by: Kan Liang <kan.li...@intel.com> > --- > arch/x86/events/intel/uncore_snbep.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/events/intel/uncore_snbep.c > b/arch/x86/events/intel/uncore_snbep.c > index 0c801f7..d967fcc 100644 > --- a/arch/x86/events/intel/uncore_snbep.c > +++ b/arch/x86/events/intel/uncore_snbep.c > @@ -2874,11 +2874,13 @@ static struct intel_uncore_type bdx_uncore_sbox = { > .format_group = &hswep_uncore_sbox_format_group, > }; > > +#define BDX_MSR_UNCORE_SBOX 3 > + > static struct intel_uncore_type *bdx_msr_uncores[] = { > &bdx_uncore_ubox, > &bdx_uncore_cbox, > - &bdx_uncore_sbox, > &hswep_uncore_pcu, > + &bdx_uncore_sbox, > NULL, > }; > > @@ -2887,6 +2889,10 @@ void bdx_uncore_cpu_init(void) > if (bdx_uncore_cbox.num_boxes > boot_cpu_data.x86_max_cores) > bdx_uncore_cbox.num_boxes = boot_cpu_data.x86_max_cores; > uncore_msr_uncores = bdx_msr_uncores; > + > + /* BDX-DE doesn't have SBOX */ > + if (boot_cpu_data.x86_model == 86) > + uncore_msr_uncores[BDX_MSR_UNCORE_SBOX] = NULL; > } > > static struct intel_uncore_type bdx_uncore_ha = {