From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965132AbdKQPbw (ORCPT ); Fri, 17 Nov 2017 10:31:52 -0500 Received: from terminus.zytor.com ([65.50.211.136]:38123 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759014AbdKQPbp (ORCPT ); Fri, 17 Nov 2017 10:31:45 -0500 Date: Fri, 17 Nov 2017 07:27:01 -0800 From: tip-bot for Andi Kleen Message-ID: Cc: hpa@zytor.com, he.chen@linux.intel.com, dave.hansen@intel.com, minipli@googlemail.com, luto@kernel.org, eranian@google.com, mingo@kernel.org, prarit@redhat.com, kan.liang@intel.com, tim.c.chen@linux.intel.com, arvind.yadav.cs@gmail.com, kirill.shutemov@linux.intel.com, borntraeger@de.ibm.com, thomas.lendacky@amd.com, peterz@infradead.org, ak@linux.intel.com, tglx@linutronix.de, bp@suse.de, linux-kernel@vger.kernel.org, vkuznets@redhat.com, piotr.luc@intel.com Reply-To: bp@suse.de, linux-kernel@vger.kernel.org, vkuznets@redhat.com, piotr.luc@intel.com, peterz@infradead.org, tglx@linutronix.de, ak@linux.intel.com, tim.c.chen@linux.intel.com, arvind.yadav.cs@gmail.com, kan.liang@intel.com, kirill.shutemov@linux.intel.com, thomas.lendacky@amd.com, borntraeger@de.ibm.com, hpa@zytor.com, minipli@googlemail.com, dave.hansen@intel.com, he.chen@linux.intel.com, luto@kernel.org, mingo@kernel.org, prarit@redhat.com, eranian@google.com In-Reply-To: <20171114124257.22013-2-prarit@redhat.com> References: <20171114124257.22013-2-prarit@redhat.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/urgent] perf/x86/intel/uncore: Cache logical pkg id in uncore driver Git-Commit-ID: d46b4c1ce5f0d9a13fb2318763076442669a2bdc X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: d46b4c1ce5f0d9a13fb2318763076442669a2bdc Gitweb: https://git.kernel.org/tip/d46b4c1ce5f0d9a13fb2318763076442669a2bdc Author: Andi Kleen AuthorDate: Tue, 14 Nov 2017 07:42:55 -0500 Committer: Thomas Gleixner CommitDate: Fri, 17 Nov 2017 16:22:30 +0100 perf/x86/intel/uncore: Cache logical pkg id in uncore driver The SNB-EP uncore driver is the only user of topology_phys_to_logical_pkg in a performance critical path. Change it query the logical pkg ID only once at initialization time and then cache it in box structure. This allows to change the logical package management without affecting the performance critical path. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Signed-off-by: Prarit Bhargava Cc: Tom Lendacky Cc: Christian Borntraeger Cc: Peter Zijlstra Cc: Kan Liang Cc: He Chen Cc: Stephane Eranian Cc: Dave Hansen Cc: Piotr Luc Cc: Andy Lutomirski Cc: Arvind Yadav Cc: Vitaly Kuznetsov Cc: Borislav Petkov Cc: Tim Chen Cc: Mathias Krause Cc: "Kirill A. Shutemov" Link: https://lkml.kernel.org/r/20171114124257.22013-2-prarit@redhat.com --- arch/x86/events/intel/uncore.c | 4 ++-- arch/x86/events/intel/uncore.h | 2 +- arch/x86/events/intel/uncore_snbep.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c index d45e063..7874c98 100644 --- a/arch/x86/events/intel/uncore.c +++ b/arch/x86/events/intel/uncore.c @@ -975,10 +975,10 @@ static void uncore_pci_remove(struct pci_dev *pdev) int i, phys_id, pkg; phys_id = uncore_pcibus_to_physid(pdev->bus); - pkg = topology_phys_to_logical_pkg(phys_id); box = pci_get_drvdata(pdev); if (!box) { + pkg = topology_phys_to_logical_pkg(phys_id); for (i = 0; i < UNCORE_EXTRA_PCI_DEV_MAX; i++) { if (uncore_extra_pci_dev[pkg].dev[i] == pdev) { uncore_extra_pci_dev[pkg].dev[i] = NULL; @@ -994,7 +994,7 @@ static void uncore_pci_remove(struct pci_dev *pdev) return; pci_set_drvdata(pdev, NULL); - pmu->boxes[pkg] = NULL; + pmu->boxes[box->pkgid] = NULL; if (atomic_dec_return(&pmu->activeboxes) == 0) uncore_pmu_unregister(pmu); uncore_box_exit(box); diff --git a/arch/x86/events/intel/uncore.h b/arch/x86/events/intel/uncore.h index 4364191..414dc7e 100644 --- a/arch/x86/events/intel/uncore.h +++ b/arch/x86/events/intel/uncore.h @@ -100,7 +100,7 @@ struct intel_uncore_extra_reg { struct intel_uncore_box { int pci_phys_id; - int pkgid; + int pkgid; /* Logical package ID */ int n_active; /* number of active events */ int n_events; int cpu; /* cpu to collect events */ diff --git a/arch/x86/events/intel/uncore_snbep.c b/arch/x86/events/intel/uncore_snbep.c index 95cb19f..de8f862 100644 --- a/arch/x86/events/intel/uncore_snbep.c +++ b/arch/x86/events/intel/uncore_snbep.c @@ -1057,7 +1057,7 @@ static void snbep_qpi_enable_event(struct intel_uncore_box *box, struct perf_eve if (reg1->idx != EXTRA_REG_NONE) { int idx = box->pmu->pmu_idx + SNBEP_PCI_QPI_PORT0_FILTER; - int pkg = topology_phys_to_logical_pkg(box->pci_phys_id); + int pkg = box->pkgid; struct pci_dev *filter_pdev = uncore_extra_pci_dev[pkg].dev[idx]; if (filter_pdev) {