Re: PROBLEM: lk 4.5 oops on boot with Xeon D-1520

From: Tony Battersby
Date: Wed Feb 24 2016 - 11:31:15 EST


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 <tonyb@xxxxxxxxxxxxxxx>

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.liang@xxxxxxxxx>
> 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.liang@xxxxxxxxx>
> ---
> 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 = {