From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S942966AbdDTR3j (ORCPT ); Thu, 20 Apr 2017 13:29:39 -0400 Received: from mail-bn3nam01on0073.outbound.protection.outlook.com ([104.47.33.73]:27554 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S941989AbdDTR3e (ORCPT ); Thu, 20 Apr 2017 13:29:34 -0400 Authentication-Results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH v5 05/32] x86/CPU/AMD: Handle SME reduction in physical address size To: Borislav Petkov References: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> <20170418211711.10190.30861.stgit@tlendack-t1.amdoffice.net> <20170420165922.j2inlwbchrs6senw@pd.tnic> CC: , , , , , , , , , , Rik van Riel , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Larry Woodman , Brijesh Singh , Ingo Molnar , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov From: Tom Lendacky Message-ID: Date: Thu, 20 Apr 2017 12:29:20 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170420165922.j2inlwbchrs6senw@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: MWHPR17CA0061.namprd17.prod.outlook.com (10.173.106.151) To DM5PR12MB1148.namprd12.prod.outlook.com (10.168.236.143) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 252da41f-05f0-4566-1487-08d48812cc41 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;3:xtdOF/W+BqsllMHpe82E+/36BF0KRXpohBMPr9h0/IFArh7g+qkgYeA45TNKeAtqUM/QLiiTgrIErXixp5+EoIOuuVkz18y+4vAKXBtddOCP77Y8zyBhh/tQ2IUJ2KLdKq+YDhq8DD7Yk+aZxncHvzES7P3ricvZsUmoMqlrfuZTtH18OqMGN1kbKl7OdCXdK9foVC4PmntxNbznm1V/BrpwqbttV7ItawDZzKj62z1voPK3cROccXblzoD+JXSLHQA9UXvBggr+9uARjnoFh2Z0qpQPxQbFwutt2NHh6YfAQJf/IDFjeysF6U7KIrHK8d1gSXjt/R4dYdSQfrQ0fZDwZPDZQ73vLx7QPkCIUv0=;25:f7KmJF+t5dBG6UD9sT+VrdiC9PMKFApaCC6TMe9cf7miTzIu/s6WXm2D2pSyyA8+Jni6nRfHo8+YB/ZNzeDhEZkPo17fU36kPJBwHoX3VTtGCZoCntoaGD59qOruNjZqkW+XQEk+CM1ymjJKWZxOvTWzXMASon2pqWxWRTbH1fo6sxUrsiC7TLp72X8xGkygmPfOdzUb930ej678ZwGq6SbcZUdIVT/oozxZgAO+YbZ9UmnVv65I0nQzuMwC+JDtlmQlL8Mqf7JzrdzLAPQ751Rph+v1VVGpENRXxtUJX17qYYxxCsgLAOCS7L41EHiUYzRBFp/ZtNhCRXsQfQ/bBP12IhLsZ8M2NVdWF5/NoxmMF/ep1WuC+twbTX9s0LA4+8ROUi6CYsVvvZDg9v+bzRptPL8sCwJTBzaiFeH6laPWxu1mk6zrt5pDmlD6/6bb2LHXWZsY4Y8+J/67fUT7Tw== X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;31:nyCluytDm9fnqO1ez3taMAMLmOMPWzycoQAzyQeaBhs5dj3K6fN/5vwcqDsh1tmhufVTJ3b4JxjcG9DnrhXkYZFcwohAd6m/TsYFLMYJoKvqyOVYgzIoOdeHs+40ILebCXFOTtqn/mulwxTyQEw+rYjR7Vv6u+lzNYyqE2qr8kUQMXN9IalJ9Eag3RaCVym4o+beh5nGwVL+e18AGBceSc1nag2clWMTkHOCy9Vxlj8=;20:AyRkxmi167rbYALyT0off3Sml79QNm7G64FoaR9KwIpoO5l0gz3SCduFWc0ZsWy+1UAil2TcQOHe/oKjmKyhSA4/z9OMCMtZDbcQM/d5oWGmGdgDgz4OC9H5SHcsVI+tchqg3vq3abgYuTyHbGVn/q7sijb8TVP0QS+r6k5nJOIFOGJllJtr//QOumWTw3VU7YhIqvadCGh/s1I5d3+nq3B3ffqdEyCsu7BdT5ksgLgsCqwBHz2ZXy7hI5/AoytNi90CNMEnzMqTwRENTqb/Qj8lB/xpLvlZraXdrOZQCVIzozSFfFKUM9zt+5/2whuuHHylvhWlzwMMUcXDr6WXXtLX//h72YVjNpc3AtS4SR2Riy4IRjXh9SVmGBO7v3ftQXJrh4wtRcMwMJ2D8mhmnFr2coOf6EuuHUEzmzkVN1efUW0XMd7Vw1kU5IuhXzfFL0+eDnPpQNyvII6dn+jXDubU7Ye51zZ32seTV1Tz2TQSehrmyyGJYT1HbwXHtbiR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148);SRVR:DM5PR12MB1148;BCL:0;PCL:0;RULEID:;SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;4:pPoQW3ErHjiJvuQKTXKceWKX53oMpSuebZg0Me+xpdMhrK/jHWyBY/pwVcgIGA+7MivR6I2a+dmOIXqlst3DEtcdhMcj3adezMb4sHioVgplzKKknp31N/muXhVES5gJpcXB7REUDkOQ/56JpKYViWXD9LTK4m2wACOLbsanxOVil555ZwWArkGqgdEESxpLk6NI8c1x38NX49EpKKqtkNFztrjFhCR2DTzDrPgblQLCY6iYq7ddU3fWyv0EuxkNR/HmNA3r8jxueXRgf4p6jftdT9ljInhOU0cXzGzoCEqGin4tLm5qqxwANrol4p2/STlSOcbhKwqTXQK9LYiGYglSAnYfi/dsyug3eeZW3Rqx+cvCcNV/sLgCdMoNsinQkSTnhvB6nA+3zx36XEjcDl1S4sn/cFd19dpD9T50bXTe9mOfVgHMchjw1xw1BW+brAJ4tpS72pHUSIKbPZYtBGRP5RSai+wP/Gvq/go8259nb8vr9WL+1EerMvUGEWJs0WTxMW0aMG9ydKKWd7Cko0OHcH+2D4kWcSNJDH9Dt0KTKXY8XrkZ9DkA+OSyiRnyB4RvClrv3+4D8kxBw7oRL7aa9TC4iN3qMva/ee/1exyT/MtGLNmrpehqnMhKK0ooAzyXYro8+gGv9HkYGPb8KkQo1iBdWC5jDMKXoOFzEUVNgQzMKd9mhK57/oTysm5WyYlvjxbU5Vx3AlqHYaJHGODaIgdAy95tdXgSJ5/4tQXx+oN4P1kpX+IPjgHrWJx/TVVnypZoG5rexyVr5oj7HA== X-Forefront-PRVS: 02830F0362 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39860400002)(39410400002)(39850400002)(39450400003)(39840400002)(39400400002)(24454002)(377454003)(5660300001)(2950100002)(110136004)(38730400002)(6666003)(6916009)(6116002)(33646002)(50466002)(7406005)(31696002)(3846002)(2906002)(7736002)(66066001)(230700001)(86362001)(6246003)(53936002)(305945005)(47776003)(42186005)(31686004)(54356999)(8676002)(36756003)(76176999)(81166006)(189998001)(6486002)(53546009)(77096006)(50986999)(4326008)(65826007)(54906002)(23676002)(25786009)(3260700006)(229853002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1148;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ4OzIzOm1oYkF1cGRlcGtXQ0hLTWpiUXdadnhyYklH?= =?utf-8?B?Qjk1RzQrekorTU0zVjVlSXU3eG1WTEtvOGVFdkVjRlVOUXJrUThsZUNOdzBu?= =?utf-8?B?dWRhclBqMTJTczlQRUpYc25SMXF1WG0xNkdGeVVxZGNNbyt1Z21HdTVEeXBj?= =?utf-8?B?eW4rRGU2UGhIaGZISy9YWHduVm5KSDdTVXhKS0x2MGVjZmhzM0tsV1B1dWNG?= =?utf-8?B?MXBWZlAxMG5ReDlLZ2hXSENhNXVqZThmeEUzQU1waEFkRGJCc1lIZEtFTENB?= =?utf-8?B?Yys3dmlrenJ6RTIxSGJ6SDkxeW5sMnVTWXRmWktOS0pnSkJQODc2ZUtPNUxa?= =?utf-8?B?TWZZMVJtMnk2WVk0ZUpRbUx0U3ZCeFUvY1RDcGFNaDJWWTBaeXpZN2ZlcGFD?= =?utf-8?B?dGRrWHNkcWpoZmcwR25qUWw2Z0dvOEFIZHBMVE92NmpFcjhoQ3ZiVFJ6YWxK?= =?utf-8?B?QzduVDk0OTE5T3d2WWcwMXFIL1lkRmN0cG51OGZLUnBnTGpVS2pOU0NJUVF5?= =?utf-8?B?TDRLcFlNT2E0SzM2RDgwSUEwUEZPaUJxbWRUeWE1TFZMdlJuTzVJeGJST0hj?= =?utf-8?B?UGNCdjJkS3JINzAzbkxJcU00WXo2UGJiSFhoTWgwWEpHdjFRZytiazVHQy9u?= =?utf-8?B?VlRMK0JEeTdIbHpKcG9WVWVIeVliMEZQczBCM2JsZjRaTUwvOXFKVVd3dVl0?= =?utf-8?B?L1ZCN0dNMWVrd0RlRGpwRFYyNDF1SURlYUZZTCsxMEQreHFpV0ZmQzFXSEk2?= =?utf-8?B?V3o2SFhkbjJHQXdkVTFZWk5YQWFsbmtuSUdWek9iNWpHSG9lRmxDR0FLQW5M?= =?utf-8?B?V1pQd242ZkczL1FRY294TzY3YjAyc1JYRmUzSlNCV2Y0NHcrTDdVNmVzazE2?= =?utf-8?B?RloxWmJOTEwvR3BYZVVRSjAzblY0Y293TmRLVG1MdHNCM1hFZmx5V3B5aDUz?= =?utf-8?B?M3JSaG5KWXZ6N0E1TXJyOXE3RjZDV2pMZWQ3UWptMk5oTzA1aytjYjA0RFY2?= =?utf-8?B?RE5rWXdZaExOVC92T1VLei9ZTlZPYXF0b1BmdEJGVDJsVmprR1NxMGtkUWtL?= =?utf-8?B?eGxvam9IZFRESkxzdzRtYXdkR0UxS0RrdU1GV2E4MjJ4Q29uYVREQWlicU1Q?= =?utf-8?B?RWNiTWNWMFdRU3cyKytSUHl5MzF4VnNZSkNpbi9DSWlMM3dvOUR1aS8wL3ZF?= =?utf-8?B?ak96bU4vTjZuNGc4M2xXRWdJdk9qTHljVVVCQ1lOT1k5MjRSUUoxWU9RUm1y?= =?utf-8?B?dzRuVjhLM0xRcFlVdXpGY1pRemRIRG5nWG5hYVB1clJWZ1dsL1JidWJwR2FP?= =?utf-8?B?UUJRZGg4NkVGbXlUaGNyOHJmUnJHa2VoVWJnNEtPQnpvbTF5YXBLUkpCS2p5?= =?utf-8?B?M25scjA3L0o4YUpBQXl5cFc3bGhxRFB3UkkxOUYyTytielp1cEQzRmIwQmwr?= =?utf-8?B?eUlxdzVHcVpNdlZkWVFuUWVuSllZOGRFMDNmSjUrNmN2M2h6WDQzdFBiUyty?= =?utf-8?B?S1BtaGIwbmV4UzA2dDltNjhRbEtiR0VwRTdURXJwVkw1YXo5Q3ZKVU5oSy8x?= =?utf-8?B?RmIwc0tVRTVTRVlaRnFQS1NqdC9uYjIzVGtIdDNXQlRmejZjOGcxUm5iSUpM?= =?utf-8?B?YnRYS0NENHRRVGJXMDB1dm8yWXc2WUdYSHQ0bGpRNkdYZjlEbWw1K3hxL1ls?= =?utf-8?Q?9eSVcwlmw2fYk6nwdk=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;6:lNp60wt90ysq8eXRIUnULFaVpOC97yx3oDDR9PB9Pjex7IQawFUjF/2NrRKoBJw1Qo1HfZAsCFZ+i4Vf3/fDBa7BbVbkBbDmWFe0ylEW+7f1fNxdwra54hWO7QKH06MUAg2xbTazMI+krIv5e1IqyEci/o8lJk2geUG8IrKKAmNcJxf73BfoxKDhDehsiYpO9NzO/0hTi1BOBjP4xQeq4Uk6ypHmCeM3GD64kx2fTQTDvlzJ2lL3vAwLrQWluAauk+Jr4DuNlSvrxMOl80e4p5xEgRo1hT++wCfGTyvqH2oJVYpbEpE2vh2H76BXpzs8FlorcFFimrrxPu7FgOpJ5T6plCBpVxlz3DTmJRxXWCzMMWIX63AR85+WqNp51X+Wlc0YF4hEmyrVusLDPPyyzII2Dh8OpEXZBrk4vLs4YCMEnNR4tMIKnKo1ilsqU5YmczG0fJmmd+AcNQ96swn/jsfz6Ur3NRFjXQ4y3eXVKBDBVatR29+Z8Umpgbs2S3qJuc0w1JlUL0R7j+qgtW+Oo09ivW73DfZ4UzC/l992pqA=;5:adjsNNQQqajcDO79pB/2ZOhU5Ej35K1b5GpcJW6hZcFsnO1pr7ng8D3eub62z3EMXTn9BNxw/9gXM6qLVnHElobPfMIbbypPA/Q3Qahv2621dT2cEqwl+KnnyeK1PB04Rza9D7AvebKx/Himb8THCw==;24:N12BrDKBy2ztafbhmk5KmBNw1NT8/WAO5r2tw1xVZEOM8d08wAdyLVq9+FP841OpQwVN6d3eWAW4ZVLQozU8E66WFDGJtoV50ZdKd02ZIE0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;7:GO58o0AgAy9tUGLCmosvdEuMVBtQ+Bq2XTIUiQ2/x5TqutSHvL9e2T8KDaOcPtc/6hPoBUSgFe5hcvz8MKNeZ0uLosNOAEgJguZOWyxIFj17hRTnYFcoc1HHeew4Mk4DjBZ8D28E0eGa2sn9KwBEI1/il879lY9nzz2bzucpGvCu6ITOCkSlRsyaZVK9q0V7e5e3O4IcsMOY7L9LMyMswf8xAT8Yo+HMNZ3Ua/bSp4cLV18UZV5zwCxicMob1dx/irp/ffbdwQvnvsezT0PjOlm/wakx+NgiRpB+H9X+hgzBk44S95i2y60OYq+GinvRUFUOiBJ4MB6aqH5O5RMNPg==;20:hYAJ8eqCzjMEuyVMNHtfIuIox9wRNv6yawwAgjUit/COkRVeH24NFmv9V9VUZgFnkHF/XEH/bpaSQ0mn0YAn4jTxlVUByxurm7/i1ywlpaTJVyuCMkeIF5ZA/h5jUNz8rkiTZOPbdEQpiFYHGFksulQm4+aCAh0mBD6GrAiEFZ3av+HJxXpJcZODBKgoMlBcopgS1pMB9ThTMC6fJc6APGxjnqCguKA5dEiMmobW3mOyzOWyHlADyJpBMpPQ9AeD X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2017 17:29:24.8199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1148 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/20/2017 11:59 AM, Borislav Petkov wrote: > On Tue, Apr 18, 2017 at 04:17:11PM -0500, Tom Lendacky wrote: >> When System Memory Encryption (SME) is enabled, the physical address >> space is reduced. Adjust the x86_phys_bits value to reflect this >> reduction. >> >> Signed-off-by: Tom Lendacky >> --- >> arch/x86/kernel/cpu/amd.c | 14 +++++++++++--- >> 1 file changed, 11 insertions(+), 3 deletions(-) > > ... > >> @@ -622,8 +624,14 @@ static void early_init_amd(struct cpuinfo_x86 *c) >> >> /* Check if SME is enabled */ >> rdmsrl(MSR_K8_SYSCFG, msr); >> - if (!(msr & MSR_K8_SYSCFG_MEM_ENCRYPT)) >> + if (msr & MSR_K8_SYSCFG_MEM_ENCRYPT) { >> + unsigned int ebx; >> + >> + ebx = cpuid_ebx(0x8000001f); >> + c->x86_phys_bits -= (ebx >> 6) & 0x3f; >> + } else { >> clear_cpu_cap(c, X86_FEATURE_SME); >> + } > > Lemme do some simplifying to save an indent level, get rid of local var > ebx and kill some { }-brackets for a bit better readability: > > if (c->extended_cpuid_level >= 0x8000001f) { > u64 msr; > > if (!cpu_has(c, X86_FEATURE_SME)) > return; > > /* Check if SME is enabled */ > rdmsrl(MSR_K8_SYSCFG, msr); > if (msr & MSR_K8_SYSCFG_MEM_ENCRYPT) > c->x86_phys_bits -= (cpuid_ebx(0x8000001f) >> 6) & 0x3f; > else > clear_cpu_cap(c, X86_FEATURE_SME); > } > Hmmm... and actually if cpu_has(X86_FEATURE_SME) is true then it's a given that extended_cpuid_level >= 0x8000001f. So this can be simplified to just: if (cpu_has(c, X86_FEATURE_SME)) { ... the rest of your suggestion (minus cpu_has()) ... } Thanks, Tom