From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753155AbdK0SWE (ORCPT ); Mon, 27 Nov 2017 13:22:04 -0500 Received: from mail-by2nam03on0088.outbound.protection.outlook.com ([104.47.42.88]:41003 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753075AbdK0SWA (ORCPT ); Mon, 27 Nov 2017 13:22:00 -0500 Subject: Re: [PATCH v2 3/4] Add support for AMD Core Perf Extension in guest To: Borislav Petkov , Paolo Bonzini , Radim Krcmar Cc: kvm@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Len Brown , Kyle Huey , Kan Liang , Grzegorz Andrejczuk , Tom Lendacky , Tony Luck References: <5113a9d6e76d2c6050c1fba4007068340321521c.1509985085.git.Janakarajan.Natarajan@amd.com> <20171109183425.rhqc5wrltznt5tcf@pd.tnic> <07f23e5e-2747-b0bc-1b93-f83f3982649a@amd.com> <20171115190755.5n2zskcr2d4bmewp@pd.tnic> <20171116172520.4lgdvpcdxuxenxc7@pd.tnic> <2c785f9f-faac-58d5-2efd-3fce80d24c18@amd.com> <20171117114445.iv2s7sm2mjqusztx@pd.tnic> From: "Natarajan, Janakarajan" Message-ID: <94be62ef-49e9-8f69-d6eb-42959d3f2c01@amd.com> Date: Mon, 27 Nov 2017 12:21:37 -0600 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171117114445.iv2s7sm2mjqusztx@pd.tnic> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR04CA0066.namprd04.prod.outlook.com (10.171.243.159) To BN6PR12MB1667.namprd12.prod.outlook.com (10.172.19.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 960c8e16-345b-444a-a5dd-08d535c3beb7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603258);SRVR:BN6PR12MB1667; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1667;3:btfbnu/HEtINE/RFSLf7+nFG8fG5oMQ/I80Ms1ulZNadzfp1p7wzErD+s913mdZ4rjcltht0XdnewUBtdqiOF8IvvHuTfsM5l2A3WmFtFmyTOy6PEFMHVsgQgko6wAqiDivT4CBPRTlWQIGxabw2wxhoQRrMkQT3DjYVgbOTHbjceeLQmV0N4qeZhdL182rWmtd4gzn4E0kPAh2CSGDaRrq9CcD90y7JFUI//aelfY8QNw9mWOAREUeidUgBANdL;25:J4d9vYfnzYqW/zO3DmTDIF52A202c+EMiylI+wPvu1CjnRhZ7Ad0H+K/aKvK3j5DeZwVTSgrD4jrnlcMdZbK7sqCyljJ8/Pp6wLZQPFsgzZzGSWj5reQzIhFbZl+8T3jdtosqKTa4uETZn4qt18XSOSTlT5hzsVNnn9YRdy2XdmXO6J5kqfrEJoFIH3t4PjubfcZE1bFS2zweuZKG4pOLbIJkuMwF/2TOcm1bxrcPoYYlFe8wyELuR0k5uXDbionTTcqPrGgFQeTeHZbQdlhBl92OwlQ+u+VvdhcpBdInN2U1X+Sj4njfP465b7htb2GeFF+kDdW55rRgFoWqqXjGQ==;31:Ci8Jr3H7P+FmzTZCDlm383U9kvfwS9ciO+dnGYFf1l0/DUJjt0tAKAZlwc+syd02EEMPhEdlNDq44y07AnTKPCeq5I2pg9OOZRAIpgVlC4gqZidKQUHWDNBOt1w6ucKnsPFehe0LSo4LPcUJa3iDcEClDQy4bLyMRdGheE8q61Q/QCekYWcbDVpIyGe3Sttq+eslD565GhAE7uvDlgishESFFAEjE5ULoUPwKSFE6z4= X-MS-TrafficTypeDiagnostic: BN6PR12MB1667: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Janakarajan.Natarajan@amd.com; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1667;20:X70RvP4zmp2xHrVX2aGK0apx1MZhG50uP4g9Y3k/4EslcJe2lZ8qgiSJtceLrVrZAtjPObF3ON4h/KPzjhoZTcGWGD4X1JmjitDuJr2chHD9VOgqFfMn/0nAxEJziMNTuwuQoJ6VeymnI9rEQmPgQi4L4v5DSLWL/las7V2DGgsd2cKtvvKRt0NMTTl0YJ1DXi/K0UaHT0HDEPCe7hQzPRyz7P+sgLCzmxeL0LVrYBnCpkEBQFJFzy7C2ll7h8By/1JuIH98LncJELAC6MAk6Ifv6+BLWiL3FP1MorQIlSfzd84qNY9mh1wuIP2w8cZA2C+E8a1WGOEA53GVUTpZF5404sQyK9mcHKDV8ICxcuPHjDu4zJqjzAIa1T497IknhDADP51qafcFkeij0G5cNRdLHFiQ9osSIpGJTIPrGczcNTFeRllVOoGG/mdg/YItAdCAXRlMSczgi+XIkS0Y6H0dXUXNlRMQPWRvD/sIBU1tF/IXU/eGEqduZf8Z2BG+;4:vJdNuT96PBrGlEUYw+kbsJIhzGo9tHM8qgnqyh9LuydoAArTfGajtO7r+yrIjBH4hFaJSa0dPQF1EcOFriYuWkRP5Ms3Ks8Ruf0aCQZFyBe/VOC7DPVuanNwUU3JSUqn8VVKkI2fRNwY9U61Tt+cnVMOdjUQsErmQy7YndHftnSucKhvX9UFZMW8tJZeSN+TN/MVCrTfFS8VsjyqxiQXpigUIHcNfHI+AVU4kwrMg0SJPXDXKK7NyfSTKAA3of8IbkTDCyLNJP91bwuy6omuUQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231022)(93006095)(93001095)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123560025)(20161123555025)(6072148)(201708071742011);SRVR:BN6PR12MB1667;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:BN6PR12MB1667; X-Forefront-PRVS: 0504F29D72 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(366004)(376002)(39860400002)(346002)(24454002)(199003)(189002)(230700001)(16576012)(53546010)(81166006)(2950100002)(93886005)(478600001)(5660300001)(72206003)(77096006)(6666003)(2906002)(6486002)(90366009)(110136005)(50986999)(4326008)(229853002)(7416002)(50466002)(47776003)(31696002)(6116002)(52146003)(106356001)(65806001)(25786009)(23676004)(53936002)(36756003)(86362001)(6246003)(305945005)(2486003)(81156014)(3846002)(7736002)(33646002)(83506002)(64126003)(8936002)(76176999)(189998001)(67846002)(101416001)(31686004)(65826007)(8676002)(58126008)(54356999)(97736004)(52116002)(68736007)(16526018)(66066001)(316002)(65956001)(105586002)(54906003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1667;H:[10.236.68.193];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxNjY3OzIzOk9uY3JCTXhpRy9kM21NK1h6WS9XWk4vU3lC?= =?utf-8?B?WFpzVno5Y0tUZ0hNTGlGK2VLTDN0UVI1T3ZTbkU2M0pZakpEWWdLTVE5QTdB?= =?utf-8?B?VS9SUE5ZSlJNWjIxMk42anBJYTREZndGbXhEUjR0OFJDRDFoNno5ZkFqMDVj?= =?utf-8?B?OHN4eTQ2YnBSMU03U0ViZTZVUTlNckhoV2xzOFRVZmZ6dG9NNkwweHNUUUdy?= =?utf-8?B?WUc4VzlCdWJEQmpjWmhLQTdFU08rWWJCYi9IUjlzTTZtT2pEVzF4NmZQME81?= =?utf-8?B?ZHkvanUvVDRVdUFUa1VuVkJvTUN5a1luSU10WEtYbW5qWjREYUFnMDB4a0Ez?= =?utf-8?B?eEY4REtjd054L2ZtUDYxYlFyU0xiU2xiaDZCbzN6MkU5TEpsNXkwN3o4T0FQ?= =?utf-8?B?cVN3Y01lSnRVVU9lVUNUMGFINi83ZG1XeFNCS1NaOVpQVzUvckZnM29SK2JL?= =?utf-8?B?Y1lxc240b0I3OG0rcnM3YlRtbkpobmFMd0lDV1lBY1RZS1hxMjRZS1JzOWhr?= =?utf-8?B?dnc4UGhvdzJzNjRVNTNVSHhwMXlUVkhRay9zeUdjM3hidk1VLzA3bVJhVllL?= =?utf-8?B?ZzBaRjRuUEwxRTdGSFFnNFhFaUNrbUdNYlhPOHFTb1JsRi9KNE1NaW1xMytM?= =?utf-8?B?ZGdhU0JmbjZKc3BuZVhzVzIrY2loeTZ5UXJSbVZuZ2FtU3RHU2N4NFg0eTZs?= =?utf-8?B?YkdwblVpSno3d1Y1cE55MHQzaGFKREhWSjczY2VkSkRKNHp3L1czNU5MZnBo?= =?utf-8?B?R3RKcVAzcFBXQWJIbkhpU1N4TG83V1BLbUVyQmUvS3hTN1dIUlJSb3BuMEVp?= =?utf-8?B?VmttN3NrMzhpdzcycjZucTVmTHRVZmJxT2VKOFU5ZzhjMm9tbHFZMUFQWmc5?= =?utf-8?B?b3pSMmJYSGlJQ0tMSzhCakhGdnR6RkxuRDl4aEpiVTdXOTdKRjliMWNiVmtq?= =?utf-8?B?aFNqVDlPUEdnM0VrditPRHNadjNURnlGRm1zRHh5SnM0MXFLMzhtSzdxQXlu?= =?utf-8?B?ejBlcWFTdkg2Y3VuQXE1T2JBL2VHS1BWT3laV1F1Rk5xWEEyWldDb3ZaYjk4?= =?utf-8?B?TnJYOXJxcWtxbVBEYk5HY0NDMCtCVUQ4MUw4L0ZIQjU5SGdyV1lQSHJEZ3ZU?= =?utf-8?B?Ymhza3pxYmNwcG9XUVpwb1Q3UHRiQTNZdlFnNXZUT2lSTlpoL29mME15RTlG?= =?utf-8?B?RVFMUDZqYmdvNGs4WTlXbzlRU3Zoa01iN2paRjN0eC9hdURrY2x2Z3VXcy9K?= =?utf-8?B?MGFta0lPV2Q5c2grdk0wTU4ybTFQMVg4bmdhSVRjZUxmeTlKaFE2ZFdoc2FM?= =?utf-8?B?cjVuNVdNMTZMOHB2bjFOQlJnRXJieHpPK2RyRERuQjZzS1hUUFpJWDRHQWZV?= =?utf-8?B?cnBmNDNXYVRuUkdWMjduS1RlQkNkNnFCYnVna2Nla3Avdkovb1JWMzFBMjlr?= =?utf-8?B?czZLeXN1YmVqWmlkaWZoc3VZSjJ0UnNNNUZ1RXNUVnJneHp0eFV1V0h0clZa?= =?utf-8?B?cDBqd2JqV1B6aHRUNU0zRUdBaFdQZG9MMmZoSU5FZVI5K0Z5SlUyU3RNeXU1?= =?utf-8?B?cDlXK2NqNXBLVHBOZm0xQUVYTUZFb1JDTzhoTWxrODRPQjBLU1Q1dnNCYllj?= =?utf-8?B?Szg2R2VLcW5HRnBaQWNIdkZVQktwTW5MMmRSMi9USkd4R3RJSDJiV3ZvdXpx?= =?utf-8?B?M1pDWS9xTExhdE5kQ00yaTFYUTN1bnRtUVkraCtDY0dKaUZIV1RxV29EclZV?= =?utf-8?B?Z1hkRHNWTDhGSlB3dkJ2clpySU5RRUJmdDNVRklDVTEraW9lWWdsYldsQ2tt?= =?utf-8?B?dVdnb2FGUEN2VE5oSlcreE56dUhjWFlvZnZsWlltWE5KK2RyMTNZK25FYkh3?= =?utf-8?B?YnNqSWlxRndxYzN3QVcxR0NXUHdsTW5NTHNYbEZsQzRLV2NaMHg4cXVLOUdw?= =?utf-8?B?bGpjZXU2eUlEM3dkZ1h1bExWbWFKVXhRRHhleVNOVUJlQkdPKzlyaTRhamI2?= =?utf-8?B?Q2k2bnZXOExqTE1GWW9jUlV6bG80RmgxMVNEbjVGK1dtbkhyTFZZak9BS2s5?= =?utf-8?B?ZThWQ0paYWdycjlKLzlqYmxFalhKMHVrL2tTUk5QSmJVM1gva3luVWROTjJZ?= =?utf-8?B?M2c9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1667;6:WTrC/YgalYEw9oHx9VsMZ3kRPM9IJBp6qF775hBL+8jdGk+pPkaV3ourM7X49dIV7kzpuhpctBaCXYqG+sWdlJ50j/p3p4uolJPNIE8DBUb9jhMdVgQc9RXbNy3oQoe7T57WedpuIlLbOe1XXNRcC3cscuPlAJcL3TUcCOqnoF/1Jz94TsVLhE3L4NjoqEDl6u5cczBKILF0SJ2XanwFbAb+N0h0eHQtgE6xjFaHNVQOAMCRLDxihPS3ln2/td1g64bdnZQIyXigTTp2QkSgBSXp4J8A/pXsWFyWq2eunEzxcyypCvtAYlk1xfoeMDx6ZUyi14MDRPdsTAXsgZcGiqI70sxRZMfC6RFRXU7mmRo=;5:5rkrLYA6nZ1t9kqg2KDS5CUSqU1btAgNmF/AORxmGj0Xc4/8JGF9MqnBb42lx/+NsF+aisdw0nQF8qfzz7RlJoE52ibWYvo8DHXKlnI75ElKlbEMlBf0AZNebDx+qGHo1OoYRONZBXPdarZSzqWsJtEgJFUbY1gGdeqhR/kiy+g=;24:iHBp6rY3I66YmBxf0He6ipsKjuTw/CdFt773FVCka7DI+UpWi9SD3KcqXLfuMkh2Gnzhei2ejB3J2pDuqRUOP6B0/4kYwovg851gJwCOijI=;7:nwWRhMkyiQbdrhslPoI3hmFugUxF85RPiFoSrkn7OSHz0Mj4D6R4idO07apAjwii96UUVc1LYO0sHgFztFLNVudPkbnuBVWrRdu7hQpsZNtx0r++j5Hha0dlZB0AlbzyytWp/KcXRu2eYLS+wwIeXYXZ1zosZB9b+q+YKPz8bTi7CDlbA3akwuH0EUVN8nnX6xF+ycPYX9FPxArTfX8NRfpSJvlWxiaNA/8f1FJj0TD6WVI5phJBV668XgAl3KDU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1667;20:5VI6w++Uw1ju4jBB3xo1hf7acCm48JNZt9KMroBonlcqJ4Qk8PGv9vATK1n6f1bRRGjk5JR/3Z5Lo/JDahnayfmykwMjBrsA5QNtPqIs6N0hIHNfvX7DY9cl/5/pXXFiFfzatMvm7DjvQChWmF8W2yAnpdti82KGRgp6no/KvdAiez5cbG3vLbMlR/4Yi1YZkmeZq7oOwZlhOrDv28874LcFRqxz/hIBYV928ciVxoKFoOq+Hc3VdnbEkUlP5zup X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2017 18:21:54.9425 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 960c8e16-345b-444a-a5dd-08d535c3beb7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1667 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/17/2017 5:44 AM, Borislav Petkov wrote: > On Thu, Nov 16, 2017 at 12:00:11PM -0600, Natarajan, Janakarajan wrote: >> Ah my apologies. So when the pmu is initialized the cpuid entries >> aren't available then. > So let's see: > > ... kvm_arch_vcpu_create() -> > svm_create_vcpu() -> > kvm_vcpu_init() -> > kvm_arch_vcpu_init() -> > > <--- HERE > > kvm_pmu_init() > > But at HERE in kvm_arch_vcpu_init() right before kvm_pmu_init() we do already query > cpuid: > > vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu); cpuid_query_maxphyaddr first checks for for the 0x80000008 cpuid entry, and if it can't find it returns a default value of 36. When invoked in the kvm_arch_vcpu_init(), the default is being returned. The vcpu->arch.maxphyaddr is later updated in the kvm_update_cpuid(), which in my case was setting the maxphyaddr to 40. I believe the cpuid entry is not available when invoked in the init call and a default value is being used as a placeholder until the entries are updated by qemu. > so it's not like we don't know about cpuid leafs at that point. Which > would mean that the code can be made to set the CPU family earlier, > before kvm_pmu_init() runs so that you have the proper CPU family and > thus have this thing properly designed. > > Maybe Paolo and Radim have a better suggestion here... >