Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932984AbcKOQ41 (ORCPT ); Tue, 15 Nov 2016 11:56:27 -0500 Received: from mail-qt0-f169.google.com ([209.85.216.169]:35045 "EHLO mail-qt0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932261AbcKOQ40 (ORCPT ); Tue, 15 Nov 2016 11:56:26 -0500 From: Oskar Senft To: linux-kernel@vger.kernel.org Cc: kan.liang@intel.com, mark@voidzero.net, Oskar Senft Subject: [PATCH 1/2] Revert "perf/x86/intel/uncore: Remove SBOX support for Broadwell server" Date: Tue, 15 Nov 2016 11:56:09 -0500 Message-Id: <1479228970-15245-1-git-send-email-osk@google.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1836 Lines: 56 This reverts commit 3b94a891667c ("perf/x86/intel/uncore: Remove SBOX support for Broadwell server"). Note that this commit will cause a GP fault during boot on Broadwell CPUs that do not have SBOXes. This is in preparation for a follow-up change which fixes the SBOX support for Broadwell CPUs. Signed-off-by: Oskar Senft --- arch/x86/events/intel/uncore_snbep.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/x86/events/intel/uncore_snbep.c b/arch/x86/events/intel/uncore_snbep.c index 2724277..bcb54d7 100644 --- a/arch/x86/events/intel/uncore_snbep.c +++ b/arch/x86/events/intel/uncore_snbep.c @@ -3028,10 +3028,27 @@ static struct intel_uncore_type bdx_uncore_cbox = { .format_group = &hswep_uncore_cbox_format_group, }; +static struct intel_uncore_type bdx_uncore_sbox = { + .name = "sbox", + .num_counters = 4, + .num_boxes = 4, + .perf_ctr_bits = 48, + .event_ctl = HSWEP_S0_MSR_PMON_CTL0, + .perf_ctr = HSWEP_S0_MSR_PMON_CTR0, + .event_mask = HSWEP_S_MSR_PMON_RAW_EVENT_MASK, + .box_ctl = HSWEP_S0_MSR_PMON_BOX_CTL, + .msr_offset = HSWEP_SBOX_MSR_OFFSET, + .ops = &hswep_uncore_sbox_msr_ops, + .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, &hswep_uncore_pcu, + &bdx_uncore_sbox, NULL, }; @@ -3040,6 +3057,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 = { -- 2.8.0.rc3.226.g39d4020