Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5807498imm; Mon, 23 Jul 2018 06:29:40 -0700 (PDT) X-Google-Smtp-Source: AAOMgpddlzh2++D/+vYpYq7TW3N3ImKs6KiWGZfYNdOFh6deTaW1VuNExdhTg+JJp9Z5eCvV+Axs X-Received: by 2002:a17:902:8b86:: with SMTP id ay6-v6mr7027903plb.25.1532352580733; Mon, 23 Jul 2018 06:29:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532352580; cv=none; d=google.com; s=arc-20160816; b=NLVMUUQ729zRW1DcOIVFlGIyEmFOW/IINjHo8hrhFauZwOC9Al1Gl2L6YczMmzvLbM mOtkEyuOnHOpX8BX9+h4MeT/ciLj2bSa9kOdfHnufydVlOpeio7d148sMxHlHklD934+ Mwcx/Jt6ob/ZXBDEzsuTaE929zxf1s7fg+klyg7N9/FQOmFt9v51CAxGsIfx5Xio2MFN JfzNgjeWkaatkrzb50NinMruFgblQhyfpKRYFzFukcyNJlR85FbEX6khtGX5JFaHykAA t/P7J4192vhxFcJzAy/N/aa4ipA62lhmnmu5ya9sTrmbJWcJA/OxQwS9tKkNtqhm1mWl zV0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=vDjCdezYuenSN/Yml+Goxcd7zPQRspcH4hqphTGrVvk=; b=VWvZY5LOTl1BNzc3T8neOD0YjbLakon3s2+tqc5jsg9NnhRQJrpx8HtfVq+ndB1+d/ onj9D4GAjwE2vh2b1nRgu8y82ElS3mG1YoHNBHXrAIRpzsMjnYNgWwtZr6ESMxMUcIxc 4OTce0/iuKfnp9/ElEB8Tl4LyBLC9TPbUTgV4aYsrGQw0/9ozgD7HVBEhPIVqhDbPikN 4L6O4ZioS12BSv42up/p9YcFMg+k3tHUMKu/bzvyihuPE+d6YpnNbRgg3P1jXnoN+PwU mWaL9RL4bjdhythHbjgB2c/otPAXA1VCEKDnb0SFd5C0k0JkTJm76lmd5Zfq2wGzJi2j ESRA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z5-v6si8782696pgn.105.2018.07.23.06.29.26; Mon, 23 Jul 2018 06:29:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388572AbeGWO3j (ORCPT + 99 others); Mon, 23 Jul 2018 10:29:39 -0400 Received: from smtp21.cstnet.cn ([159.226.251.21]:52155 "EHLO cstnet.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388190AbeGWO3h (ORCPT ); Mon, 23 Jul 2018 10:29:37 -0400 Received: from pw-vbox.higon.com (unknown [182.150.46.145]) by APP-01 (Coremail) with SMTP id qwCowAD3_5sl1lVbkm7cEA--.63S12; Mon, 23 Jul 2018 21:21:26 +0800 (CST) From: Pu Wen To: tglx@linutronix.de, bp@alien8.de, thomas.lendacky@amd.com, mingo@redhat.com, hpa@zytor.com, peterz@infradead.org, tony.luck@intel.com, pbonzini@redhat.com, rkrcmar@redhat.com, boris.ostrovsky@oracle.com, jgross@suse.com, rjw@rjwysocki.net, lenb@kernel.org, viresh.kumar@linaro.org, mchehab@kernel.org, trenn@suse.com, shuah@kernel.org, JBeulich@suse.com, x86@kernel.org Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH v2 10/17] x86/events: enable Hygon support to PMU infrastructure Date: Mon, 23 Jul 2018 21:20:30 +0800 Message-Id: <1532352037-7151-11-git-send-email-puwen@hygon.cn> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532352037-7151-1-git-send-email-puwen@hygon.cn> References: <1532352037-7151-1-git-send-email-puwen@hygon.cn> X-CM-TRANSID: qwCowAD3_5sl1lVbkm7cEA--.63S12 X-Coremail-Antispam: 1UD129KBjvJXoWxWr4UCFyUZr1kJw1DCFyDWrg_yoW5Jw43pr 9rArs3tr97WasIq3s8try8Wr4UZFykGF4Fg3y8Gw17AF4UZw15Xr4Ikw1Fya98Jas5Ja4f ta109r4UXFyqvaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUP2b7Iv0xC_Kw4lb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI 8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28C jxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVW8JVW5JwA2z4x0Y4vE2Ix0cI 8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_Gr0_Cr1l84ACjcxK6I8E 87Iv6xkF7I0E14v26r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2 IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r4UJVWx Jr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4IIrI8v6xkF7I0E8cxan2 IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc4 0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r4j6ryUMIIF0xvE2Ix0cI8IcVCY1x0267AK xVW8Jr0_Cr1UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV WxJwCI42IY6I8E87Iv6xkF7I0E14v26r4UJVWxJrUvcSsGvfC2KfnxnUUI43ZEXa7IU5hX o3UUUUU== X-Originating-IP: [182.150.46.145] X-CM-SenderInfo: psxzv046klw03qof0z/ Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hygon PMU arch is similar to AMD Family 17h. To support Hygon PMU, the initialization flow for it just call amd_pmu_init() and change PMU name to "HYGON". To share AMD's flow, add code check for Hygon family ID 18h to run the code path of AMD family 17h in core/uncore functions. Signed-off-by: Pu Wen --- arch/x86/events/amd/core.c | 4 ++++ arch/x86/events/amd/uncore.c | 12 +++++++----- arch/x86/events/core.c | 4 ++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/arch/x86/events/amd/core.c b/arch/x86/events/amd/core.c index c84584b..d2b29bf 100644 --- a/arch/x86/events/amd/core.c +++ b/arch/x86/events/amd/core.c @@ -669,6 +669,10 @@ static int __init amd_core_pmu_init(void) * We fallback to using default amd_get_event_constraints. */ break; + case 0x18: + pr_cont("Fam18h "); + /* Fallback to using default amd_get_event_constraints. */ + break; default: pr_err("core perfctr but no constraints; unknown hardware!\n"); return -ENODEV; diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c index 981ba5e..92ea280 100644 --- a/arch/x86/events/amd/uncore.c +++ b/arch/x86/events/amd/uncore.c @@ -507,17 +507,19 @@ static int __init amd_uncore_init(void) { int ret = -ENODEV; - if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) + if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD && + boot_cpu_data.x86_vendor != X86_VENDOR_HYGON) return -ENODEV; if (!boot_cpu_has(X86_FEATURE_TOPOEXT)) return -ENODEV; - if (boot_cpu_data.x86 == 0x17) { + if (boot_cpu_data.x86 == 0x17 || boot_cpu_data.x86 == 0x18) { /* - * For F17h, the Northbridge counters are repurposed as Data - * Fabric counters. Also, L3 counters are supported too. The PMUs - * are exported based on family as either L2 or L3 and NB or DF. + * For F17h or F18h, the Northbridge counters are + * repurposed as DataFabric counters. Also, L3 counters + * are supported too. The PMUs are exported based on + * family as either L2 or L3 and NB or DF. */ num_counters_nb = NUM_COUNTERS_NB; num_counters_llc = NUM_COUNTERS_L3; diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index 5f4829f..93e026b 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -1776,6 +1776,10 @@ static int __init init_hw_perf_events(void) case X86_VENDOR_AMD: err = amd_pmu_init(); break; + case X86_VENDOR_HYGON: + err = amd_pmu_init(); + x86_pmu.name = "HYGON"; + break; default: err = -ENOTSUPP; } -- 2.7.4