From patchwork Mon Nov 6 17:44:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janakarajan Natarajan X-Patchwork-Id: 10043941 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9869060247 for ; Mon, 6 Nov 2017 17:45:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 86B9C29D3C for ; Mon, 6 Nov 2017 17:45:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7B6DA29DB0; Mon, 6 Nov 2017 17:45:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F8EA29E2F for ; Mon, 6 Nov 2017 17:45:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754105AbdKFRot (ORCPT ); Mon, 6 Nov 2017 12:44:49 -0500 Received: from mail-sn1nam01on0086.outbound.protection.outlook.com ([104.47.32.86]:16416 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754098AbdKFRon (ORCPT ); Mon, 6 Nov 2017 12:44:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=L1HmhnpgwwvBoNwAh63egUQRw03Th3oZ1y3r/qKKCKI=; b=FVQoQvCUfEIFxRc75oVExDgakw/qv1pgfX0fue5tyWG17FEi5UrBPXnWf7SatWZQ2Djusz8WirINzI7F6GdpPxWP+cEoxURzH3I0sXByViLElpaLeF2iRfN9DE/JjYGPJipttRbQRcqzOLgTymTcjp1kwhQ0+eqJj3P9JHyXNDM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Janakarajan.Natarajan@amd.com; Received: from gi-joe.amd.com (165.204.77.1) by BN6PR12MB1668.namprd12.prod.outlook.com (10.172.19.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.156.4; Mon, 6 Nov 2017 17:44:38 +0000 From: Janakarajan Natarajan To: kvm@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Paolo Bonzini , Radim Krcmar , Len Brown , Kyle Huey , Borislav Petkov , Kan Liang , Grzegorz Andrejczuk , Tom Lendacky , Tony Luck , Janakarajan Natarajan Subject: [PATCH v2 4/4] Expose AMD Core Perf Extension flag to guests Date: Mon, 6 Nov 2017 11:44:26 -0600 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR16CA0012.namprd16.prod.outlook.com (10.172.212.150) To BN6PR12MB1668.namprd12.prod.outlook.com (10.172.19.19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cb4484b-41fc-452f-ca9e-08d5253e0dd2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603249); SRVR:BN6PR12MB1668; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1668; 3:w0NxcM11eZOfyjht3NKjRL6BLcBSR1xP7QSUMHCLN3Hy8rn4lxaw8qjiNHMhYswE09SnyU4aw6AboQ27EEYu6crP9zp4IpSY6q9Z2UhoEWQ4d4SYdiRpRhOvlQf88R7spCP5BSfuDhxLhtlMlZPJx06h/z91uJK0oM+LyWjOxiRjpiF+ZJxj2EU1RoJ1fY/pcQDtJg+kcPe3temAbdsqHOR1TYdWQsi3dJbL+/o8NjyXRHj86Ua06SIB0AX6gA3+; 25:S5ZJJxPAwXKHOmYG/r1+fMaReBqUJc3cV/NrpJasFnBHMpfJvb/4Nys2a6k5J4IGOHCEILJpX8IW+w8GSasgd2z7LjX3FNsBwTHsJOQ0B8T+V7NRsQw81ZDjyOLYqOf/8QPwkOG74V38Arh3Kym/Bzyet7C7z/VyP2zelv45LcAQL4ZblEGpuF1AixOuhQT/jGGtrXy6NJHTTRqJArfWBulzDfSlP6cS4+nxwsNjyjIJuXjpKrghvvfMs4GlVXvAHlvoKuy1jPE9tWDhN0ajPZhh0mmEiC5h8DysWX9KZRCGd2aD2r6UKJhgMaoNx/swqhACv7DGnGN6lda6a3CbAQ==; 31:bvN9rDsFeYfg4o0gkbBmnOOoz6Na8YHLr2HyBECK+BuUcoyaYhFuIZYxsy1ba0rb7/aGWtzZpn+2zKd71S9jNXjj7mwrV5wuVEg3l8b2ZwwjNgKe4GTfxo6PZ4ThP85V8R1mNOYb0T3/Go3UVxOGjLktzeVxxiIwYarG4Au6Kqxp8QNT8RouUX/u1eunc7ThXa0LcyPNtc7A+svNUwGxSrmrQR2KhRNmLgR/QZCn51w= X-MS-TrafficTypeDiagnostic: BN6PR12MB1668: X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1668; 20:JTFyUfekj1hv0+LH4Xn5Pl27qUzA5LtOPWqIbV1Kj/dSTj3h+uqlLgd8rwg2lmwiMS4gHXK64kywhuzqGJF34DrXSu6WymptzhZc4C/v87QG1r7ez2AnYqLuXLV5MQ3HAIZ2XkY9EqQXq+coPunZpvA70KUsmK6r4Um7VMRWNIS6goTWnTTo9FFU1vuZy+W7WVn4SDl06mE5cy1wuBgDzX2U1YkZIud4LaEkz6Qx8a56HklrvfGfiPADCcaIKoeGRNAxQYV4lZbA9zZr1ZKHI+qkNrGZGm0dioh8qNGud8fLlEEsAaM0+8p36OwAvecY5BJQ07swjNRRK2Ac8DB+NdIWb1t+P8rYUzwcN5COo6MyKKC7sqodvaHr/YFteGUcRRvX/9QA0jGodesAUxDeNO4IxxtW2G/d5WoLtM97unVymfIlu9AhcJnwcbwoI8ZGVoNmsn7xJho2JBxAKO1zQMoNJ6m/VcbU++KT313j7rTfpExVT3w5Jor0E7ooKHX+; 4:Oy7RefB97KZvJBN/AqiHA3es0rE8moo6Zho0zofPxvddgR/xDc1QR31YB+sVkyJ7v8jaPEYF3yDCiXRh92bOffdtFQXlTUC1XpxNsWM/v7sCOkrWX7OeiDQ+X8cfAjYoqo5XmCZoxe6uYFoIkvpmcUCkKOwfI/MXftwCKZ7zXHsMBJxkNFAtvyPD082WE5iGWZyP6cQjjPkNfkTxL4tLksZZrF/JMceBpYh9C++/YYjUtw7QZByzRODVGno+HDb7v1Kkj67iveVJG26jTnX1VmdeeCAeFWuoKiPgS+ftd4g= X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3231021)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR12MB1668; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR12MB1668; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(189002)(199003)(6486002)(16586007)(25786009)(305945005)(54906003)(3846002)(16526018)(478600001)(189998001)(50226002)(36756003)(66066001)(48376002)(7736002)(47776003)(4326008)(72206003)(316002)(86362001)(2906002)(6116002)(53936002)(76176999)(97736004)(50986999)(105586002)(53416004)(8936002)(68736007)(118296001)(50466002)(7416002)(81166006)(106356001)(5003940100001)(101416001)(81156014)(2950100002)(8676002)(6666003)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1668; H:gi-joe.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1668; 23:5UiLi17XzExlpSCNDwfpz+idBki+HXtvLbOi0Z+ig?= =?us-ascii?Q?TXoQ0x6cssPH1JZtkmMLT6ezJ9JGjemyfdqWvbscVc/hIAg6jJhkAK0u5ABc?= =?us-ascii?Q?9HdA6Dnjl1lHG/c3YVyi/m0mbC0jx0r+ZwYRhlzH0O+f24DlTiCG1knYSnCC?= =?us-ascii?Q?fr3c52UJ9hFcX427zWBKQqethP++nJy7ESg1Dz8GlXGjrqWBQ/PoFHXk4G/X?= =?us-ascii?Q?JZs1nOmVWu5Oyyn6BDDukXVT1dQ15KqWI8JER3B2tGOteTSva/C/QpwNckPZ?= =?us-ascii?Q?OFDURoLRunOhq0+rbYJKANyEJNS3jRtJDSDeY2VBnAlLqke0xa2R/bgI3BTZ?= =?us-ascii?Q?bcqUewrW5X+t+VThLfgTcPbxp+SShMmvobsYIaTMbxIX+WcsTrXbg+FlJ9j8?= =?us-ascii?Q?ssy6iu5tJtbMXrB9YQ2GEj325Zi6SVIaMtxXrncuAltsXuRJavxWCtOMvY0G?= =?us-ascii?Q?qWfBt9IPMERyoF+GA6Hw5jC1HMCZK15UGMRGk+8zUD9bW7NFEYTSwdLIgPBG?= =?us-ascii?Q?mAQYv5QC0lsdnUMFU1e3vC3mJAUH5fQV4auUFODwAftmQzFmWuF/xZyLrOkX?= =?us-ascii?Q?hjvcXxUWrhHM2IWNSNVdWfdwSSozvy/HYmccShar0bh6MZwD0wGNjLw81LI9?= =?us-ascii?Q?ROf5R/Bxkgg565A46XoNB8P/8z09agzaoGUn9hH+bGA3Lb4kIFOrm3ZfaUs6?= =?us-ascii?Q?VTMMr32BlHO3+o4X9aZAneznUht2SvddNI2g/58TB9+ZidAcfrfT3bOtDBvn?= =?us-ascii?Q?sZgfa41pxcehs4vUqsQJC1DZ6gL2n3m2hMO4UCu2ANmHsGOedPtHAypHTrQb?= =?us-ascii?Q?Mx/9CngjjroK3Etgri0y0IRmEnMZUDC4zdKkQnFTKvR2LECATl459gV/ei3m?= =?us-ascii?Q?BdDswOrXFP8SI9lbKvnhmLlXI4lX5W6hHOsBXwbn5972Y+rEutmE8sYLO0ht?= =?us-ascii?Q?aGhLPa+0M005YrT7b9iLcwr0nYHUhebkI48uTNuLGN66v9wC3NYSLDiH86gi?= =?us-ascii?Q?2DldvtM63Qa1DQKKLuPy6eF7ySQi3tsRKkeu4B0bmadHj+h9+e4ufooXSHtb?= =?us-ascii?Q?aBAq1V+lsyeJDxTXUC+Ze7OWLf/WAbOtS9EV5d8dYzFoLZoH8aLaKBp4Wigi?= =?us-ascii?Q?c99FpkEm5A=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1668; 6:16t2NTAiz4iHj1JhTYEnhnW6CUSNUxYKvXFxdOFi/CREXf6hG8o2B4NLhzjWibJcy69/VB5+63T9JisJ9m+2YBmnUo9SpIRMZ2SD6zlu0Jl9t6iVdNtFml70SrDUMRWHi9Dg7KdPk2EIeoVICJj1rc1ct/3mJ+WGCjaiy6ae/oh874qCyLeF2vzRJzYE7r8Q+S3wCId4XcHtLrP+OrjklPH5lG5s2ZkiEBgo+j0Q0YhZzXRQvG7CxCE+A6LCuiiVVOiMGVSrl7NC+aO2S5ZKd2EtBZfaGz2+JKLkXygp6pM4ok7XKVRfm/4eL/NOecNegJfodbwZ3sKGHdI3U/QKGA==; 5:///MXkgjXEc9i/xDWCCwXy+HC+Tcn5qn+jhbKViVhWQR9+WxcGAZNb/wa1/lM3LolxdoGNSjMYTPjghEag/KwnlLLzPtkFDY5PY23JqYCqWLiaIWOi/RDHefkYyg8qjsxUFrdcufTyEa4sn6Vnu2hw==; 24:JSufI4mAyrny5ChLJPtu3fDhtJ+jEB7qKXGj5zc9Rd2wrgoBxGRk2vPGVZsA8iyIx2vaiYnyWmKRdVGg5sjHhiCMlhxzdIclsHL6v8pjhzA=; 7:KbXjkZo9SNNdW/VstqIbq2IXP4uVLD7vc9Kirh3pOjoFVBfY1bhhktFkw0d/1HJ5GrC53zOdv+OIBS3DKodlNkj326f4822oyILRd3nZUDNxau3zrBc3sFl5j6fIrg/dxysTBNmuXhu2+7TmrQWE5TIUhJiLrPy1IXDmEWN3Ugo/BLe9Nvn69NLqap/LNfO9E66JqryoP8y6TOj1Etv4PO+XsoZaLA8I9wN/gyVAtsg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1668; 20:UjjQHuBygVW3qGQNc59m4OjA+IkzH5cnp2TnGB9bUY+fOlOQbzXMTRm8qUQktOZKim+X3+jxSAzIGQEnSlLaC8T9//9ozaJtLnA7+1/L/FYbi5lsrU6Cq4KzOp3ZRJQUQxgZFhVJTs64o7oefe/aDikkF/AAWi0m7QAEFRObmHpxaA97hxg7Qd66KAiy7eG9ILLTxjgnzQDUM4A/viMM+f3sgvahpKy+99iUf6WIZJQ93Om4tAdXrq2lkiLWn8gv X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 17:44:38.5411 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb4484b-41fc-452f-ca9e-08d5253e0dd2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1668 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Expose the AMD Core Perf Extension flag to the guests. Signed-off-by: Janakarajan Natarajan --- arch/x86/kvm/cpuid.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index 0099e10..8c95a7c 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -55,6 +55,11 @@ bool kvm_mpx_supported(void) } EXPORT_SYMBOL_GPL(kvm_mpx_supported); +bool perf_ext_supported(void) +{ + return boot_cpu_has(X86_FEATURE_PERFCTR_CORE); +} + u64 kvm_supported_xcr0(void) { u64 xcr0 = KVM_SUPPORTED_XCR0 & host_xcr0; @@ -327,6 +332,7 @@ static inline int __do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, unsigned f_invpcid = kvm_x86_ops->invpcid_supported() ? F(INVPCID) : 0; unsigned f_mpx = kvm_mpx_supported() ? F(MPX) : 0; unsigned f_xsaves = kvm_x86_ops->xsaves_supported() ? F(XSAVES) : 0; + unsigned f_perfext = perf_ext_supported() ? F(PERFCTR_CORE) : 0; /* cpuid 1.edx */ const u32 kvm_cpuid_1_edx_x86_features = @@ -365,7 +371,7 @@ static inline int __do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, F(LAHF_LM) | F(CMP_LEGACY) | 0 /*SVM*/ | 0 /* ExtApicSpace */ | F(CR8_LEGACY) | F(ABM) | F(SSE4A) | F(MISALIGNSSE) | F(3DNOWPREFETCH) | F(OSVW) | 0 /* IBS */ | F(XOP) | - 0 /* SKINIT, WDT, LWP */ | F(FMA4) | F(TBM); + 0 /* SKINIT, WDT, LWP */ | F(FMA4) | F(TBM) | f_perfext; /* cpuid 0xC0000001.edx */ const u32 kvm_cpuid_C000_0001_edx_x86_features =