From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pu Wen Subject: [PATCH v2 13/17] x86/xen: enable Hygon support to Xen Date: Mon, 23 Jul 2018 21:20:33 +0800 Message-ID: <1532352037-7151-14-git-send-email-puwen@hygon.cn> References: <1532352037-7151-1-git-send-email-puwen@hygon.cn> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1532352037-7151-1-git-send-email-puwen@hygon.cn> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" 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-arch@vger.kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org List-Id: linux-arch.vger.kernel.org VG8gbWFrZSBYZW4gd29yayBjb3JyZWN0bHkgb24gSHlnb24gcGxhdGZvcm1zLCByZXVzZSBBTUQn cyBYZW4gc3VwcG9ydApjb2RlIHBhdGggYW5kIGFkZCB2ZW5kb3IgY2hlY2sgZm9yIEh5Z29uIGFs b25nIHdpdGggQU1ELgoKU2lnbmVkLW9mZi1ieTogUHUgV2VuIDxwdXdlbkBoeWdvbi5jbj4KLS0t CiBhcmNoL3g4Ni94ZW4vcG11LmMgfCAxMiArKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVu L3BtdS5jIGIvYXJjaC94ODYveGVuL3BtdS5jCmluZGV4IDdkMDBkNGEuLmUyYmVlNzAgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L3hlbi9wbXUuYworKysgYi9hcmNoL3g4Ni94ZW4vcG11LmMKQEAgLTY4 LDcgKzY4LDggQEAgc3RhdGljIF9fcmVhZF9tb3N0bHkgaW50IGludGVsX251bV9hcmNoX2NvdW50 ZXJzLCBpbnRlbF9udW1fZml4ZWRfY291bnRlcnM7CiAKIHN0YXRpYyB2b2lkIHhlbl9wbXVfYXJj aF9pbml0KHZvaWQpCiB7Ci0JaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVO RE9SX0FNRCkgeworCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9B TUQgfHwKKwkgICAgYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSFlHT04p IHsKIAogCQlzd2l0Y2ggKGJvb3RfY3B1X2RhdGEueDg2KSB7CiAJCWNhc2UgMHgxNToKQEAgLTI4 NSw3ICsyODYsOCBAQCBzdGF0aWMgYm9vbCB4ZW5fYW1kX3BtdV9lbXVsYXRlKHVuc2lnbmVkIGlu dCBtc3IsIHU2NCAqdmFsLCBib29sIGlzX3JlYWQpCiAKIGJvb2wgcG11X21zcl9yZWFkKHVuc2ln bmVkIGludCBtc3IsIHVpbnQ2NF90ICp2YWwsIGludCAqZXJyKQogewotCWlmIChib290X2NwdV9k YXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQpIHsKKwlpZiAoYm9vdF9jcHVfZGF0YS54 ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EIHx8CisJICAgIGJvb3RfY3B1X2RhdGEueDg2X3Zl bmRvciA9PSBYODZfVkVORE9SX0hZR09OKSB7CiAJCWlmIChpc19hbWRfcG11X21zcihtc3IpKSB7 CiAJCQlpZiAoIXhlbl9hbWRfcG11X2VtdWxhdGUobXNyLCB2YWwsIDEpKQogCQkJCSp2YWwgPSBu YXRpdmVfcmVhZF9tc3Jfc2FmZShtc3IsIGVycik7CkBAIC0zMDgsNyArMzEwLDggQEAgYm9vbCBw bXVfbXNyX3dyaXRlKHVuc2lnbmVkIGludCBtc3IsIHVpbnQzMl90IGxvdywgdWludDMyX3QgaGln aCwgaW50ICplcnIpCiB7CiAJdWludDY0X3QgdmFsID0gKCh1aW50NjRfdCloaWdoIDw8IDMyKSB8 IGxvdzsKIAotCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQp IHsKKwlpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EIHx8CisJ ICAgIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0hZR09OKSB7CiAJCWlm IChpc19hbWRfcG11X21zcihtc3IpKSB7CiAJCQlpZiAoIXhlbl9hbWRfcG11X2VtdWxhdGUobXNy LCAmdmFsLCAwKSkKIAkJCQkqZXJyID0gbmF0aXZlX3dyaXRlX21zcl9zYWZlKG1zciwgbG93LCBo aWdoKTsKQEAgLTM3OSw3ICszODIsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHhlbl9p bnRlbF9yZWFkX3BtYyhpbnQgY291bnRlcikKIAogdW5zaWduZWQgbG9uZyBsb25nIHhlbl9yZWFk X3BtYyhpbnQgY291bnRlcikKIHsKLQlpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4 Nl9WRU5ET1JfQU1EKQorCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRP Ul9BTUQgfHwKKwkgICAgYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSFlH T04pCiAJCXJldHVybiB4ZW5fYW1kX3JlYWRfcG1jKGNvdW50ZXIpOwogCWVsc2UKIAkJcmV0dXJu IHhlbl9pbnRlbF9yZWFkX3BtYyhjb3VudGVyKTsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp21.cstnet.cn ([159.226.251.21]:52150 "EHLO cstnet.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388471AbeGWO3h (ORCPT ); Mon, 23 Jul 2018 10:29:37 -0400 From: Pu Wen Subject: [PATCH v2 13/17] x86/xen: enable Hygon support to Xen Date: Mon, 23 Jul 2018 21:20:33 +0800 Message-ID: <1532352037-7151-14-git-send-email-puwen@hygon.cn> In-Reply-To: <1532352037-7151-1-git-send-email-puwen@hygon.cn> References: <1532352037-7151-1-git-send-email-puwen@hygon.cn> Sender: linux-arch-owner@vger.kernel.org List-ID: 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 Message-ID: <20180723132033.LDR7DGpShwfCtjQLBy5p9VatqoaKhfUGk6YcCGgPq4c@z> To make Xen work correctly on Hygon platforms, reuse AMD's Xen support code path and add vendor check for Hygon along with AMD. Signed-off-by: Pu Wen --- arch/x86/xen/pmu.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c index 7d00d4a..e2bee70 100644 --- a/arch/x86/xen/pmu.c +++ b/arch/x86/xen/pmu.c @@ -68,7 +68,8 @@ static __read_mostly int intel_num_arch_counters, intel_num_fixed_counters; static void xen_pmu_arch_init(void) { - 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) { switch (boot_cpu_data.x86) { case 0x15: @@ -285,7 +286,8 @@ static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read) bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err) { - 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) { if (is_amd_pmu_msr(msr)) { if (!xen_amd_pmu_emulate(msr, val, 1)) *val = native_read_msr_safe(msr, err); @@ -308,7 +310,8 @@ bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err) { uint64_t val = ((uint64_t)high << 32) | low; - 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) { if (is_amd_pmu_msr(msr)) { if (!xen_amd_pmu_emulate(msr, &val, 0)) *err = native_write_msr_safe(msr, low, high); @@ -379,7 +382,8 @@ static unsigned long long xen_intel_read_pmc(int counter) unsigned long long xen_read_pmc(int counter) { - 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 xen_amd_read_pmc(counter); else return xen_intel_read_pmc(counter); -- 2.7.4