From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756282AbdEDOeh (ORCPT ); Thu, 4 May 2017 10:34:37 -0400 Received: from mail-sn1nam01on0083.outbound.protection.outlook.com ([104.47.32.83]:50832 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754981AbdEDOeP (ORCPT ); Thu, 4 May 2017 10:34:15 -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 09/32] x86/mm: Provide general kernel support for memory encryption To: Borislav Petkov References: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> <20170418211754.10190.25082.stgit@tlendack-t1.amdoffice.net> <20170427161227.c57dkvghz63pvmu2@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: <0b6e4055-8e07-3a71-3d52-12b0395c8f04@amd.com> Date: Thu, 4 May 2017 09:34:09 -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: <20170427161227.c57dkvghz63pvmu2@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM3PR12CA0048.namprd12.prod.outlook.com (10.161.151.16) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 06593e72-c86f-46fc-e63e-08d492faa2a2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;3:+alg+uk6o4SdEJpqDM5pvfBit/h/ZlIgITn7ImmExLukX/nabBCxDJPC7sdLwKTxwFkxP1AXXvDn/XE7UhYf35FFP7pBxA6TikVAd1OJU4Kc2pmXyjEOhwU2+MxAeFg07x/dglFwZXUpqxz2ej3AVbi98CZAJZhL5FO56P1vGSarqAnZdLKzJhVx7IDX0Hr4sJDJwe7kUmxLpAI0o0p47SgiUQBZ11rvvgmX6Rz1SUTqdFTH8hC0nDwp9favD7NW+f6faXG5HUglQAH22fC+FL/Jl7DY8tZVGm3z0DZ62JksLRaWXIbtwRliYFd1gDEphnInbMLzzsokgD2450dVR+pPhYnN8XD9w3aH9pvZfsA=;25:AhoByuiLfcuMIcKtUz2/Cmnc06188FSikjySPhulUUZPh15BE8RsI/upS+gObRDVBS+JTdiNHXv2bOpfhujd8/9ixsQid2q2eqV87PiFDraDB5in1xVBXeqJbLcC96GlFTVxgLwUcd61UinoOHmLCd8e9L9M77vO6xvSvRv+6x3mQ7aOULy1esuMcemRp5DxqejgA5fyu1RLOE7UU4P3buO6efJLEBmiy6H/6AcvmZ93cPQZmsoZb5yiWARjTVKYG+WeRjR7WZUXjkF3S32AW383/rGMx1631Ea/UNMHohLBkjFvEBNxnRvL7V77nZnMi9fm4VfDsyyhaillG6am6jh5g/gNlm2fImmOBm2cQqzaJz52rf4lt6xpablUyPv49jlUMc5BMDykCDiRSZNIrm5A//xVj/5j3rtyqNI/fm9+BQkOk0roN4rw1MNpxNCY X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;31:KluvdQpUmqaXAtFuKiExZkj4WiuhYF5fl87PPhHflQc46cnJhv2KYUnQ++P8Ems8Q7Iw1XeivvhdBTQmp+cG/xCSnceViwuLqey/g479422y2+Z/E7bXdAf4Y2jyFhGDn3Ue3du77O5VOzdXnE6L0SnO0zMnbKqLeuuw3uCz2DEIHPgznJwcanBRXaxHwR9hPW5Dss7bKcbV3RRkAP2bA+P0gCQ9HH/hH/JaRgTwQE8=;20:hsKM7G6etoWeoOiSu0U0q+4MFxzSMUYItOeu4qtygc9waov3bBGSmDYrgImuwdQYKl1/+h93cc4WBhrFHoTH03a7zbqSrcor50mM36AhA4Iw+7NaoIg9NwpWqOmgqfTGIxG9ifPMJJsIAWnltuug8Xv0gfIp6I6OFPjST+wKkSOeXJWlUdDeMCKPv6Tkd4F+33SQUkJ+CMoKdfpR171asVdIcxGDqjwTqLs9ii/30fEeHbRq88Qv3xd+cYT0VGIrIglokOvD7Pg2k4mqcO95+klUKNzX/y3ekdjM2KFIkTbY9GoMie8jJQxLb3/8auWrWbfDzF3o41XV3TIBtdgJEZ7Wid8YIKAKwd/bKs1zO8+pO/cPGFr4hhZfC/CPtwdY9OCKAr0B7HjmbzsWqWlch2AO4B5FAJW6U71N+aBSc90gf2D+/8U34dBrjhHCifc8THgFXuQt1P+VIA8+yIX4UrciXuvFrGfNTn+ZCLBnc79oERykMD3Yikj3IKxyS7Lb X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148);SRVR:CY4PR12MB1141;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;4:TqSL5awvLxxOQXHOYXbcsnzMtgIiiu8se9RtD+Lt0OfaphrIDCiFlSGOWdr1XBvdfqzgLy3VctykW74MGeiLtWlZR5Z+n5WHLO618xYazwccK/nMwbkGrCYIZqsmWMi1Ff/WiEF/+yzuqnGYFYOw8sAi1Ke8gJ9z1ZXvtGNpHq2BG+flqvLfj792fwHHot8TgJ44kBZWPCVXqY+9aZrW80RWUicp5qLEnEtYoNjhX+NLnF+MSSO0QU/1d+kNcInnx95R0FnNKIyTzmGrxlzgGJAMtVIIF2t4baI7Juk2sLGYIqY9TWP6Syps5DNVLRFwTJq0oygG2E/GI3IO2ue2EMunoXOTfUzDV6xlFLUy6GZhDt2Cj8HkL8oOVfSS7TOktA9iD7YiiNWy/Ffes5dKUqrtycgwj61MQclPxLtPQR2r5mohF4/MjNk8UoKujLNaTwb9hlYLuP1oZawZfublb00FY9KEzqresc6TuOXVu+WRa5gDy0gmfIcDXzA1T0BP4apH42Uugnk6cx1v5F0VI3o/3811nBEwrAi5eQdKCu7Ydj06GHpMr0PXS0L4I0x6cy6qrDS1aEYFcUTTOFOL+/ob7EYeXeupepXVijgW0bkTM/ERDjmV+bkAXmwUPH6/vkjwo4Kl3vbwJdz4qPTAO72Xx615Rlu5UKawGVMCJkIhqBj+y73uk5b2UtX+9z3btlOsjbghLvlJGnpPqKcikVtHmkStXS9oq6V0sVuqbQ+u5P8E4LI2BCgUEh3dfdJNFsO1rUk9lK68l+Kl/ACJ9RehVMItFtnwgcSKSOGPpXA= X-Forefront-PRVS: 02973C87BC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(39400400002)(39410400002)(39450400003)(39860400002)(39840400002)(39850400002)(209900001)(377454003)(24454002)(478600001)(36756003)(31686004)(6306002)(6246003)(38730400002)(110136004)(229853002)(42186005)(966004)(53376002)(53936002)(50466002)(305945005)(5660300001)(65826007)(47776003)(66066001)(189998001)(64126003)(7416002)(7736002)(23676002)(2950100002)(6916009)(6666003)(6486002)(77096006)(230700001)(3846002)(33646002)(8676002)(50986999)(83506001)(86362001)(4001350100001)(6116002)(2906002)(31696002)(575784001)(3260700006)(53546009)(25786009)(4326008)(81166006)(76176999)(54356999)(6606295002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1141;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzIzOjBnbU1KdFNnNVRCVXlBV3FxVGprVjFlaXdM?= =?utf-8?B?SHhHY0tHQ3RTY2pxZFlOdGVpVHRpZ0hJenVVWHZMN0o4Q0hSY1VOTTdWY1VR?= =?utf-8?B?VHZmUjBhS2swQ0xOeld2UXVrNVArMmxtK1FGSzZvN2t0aytidTdrcnkyTmRN?= =?utf-8?B?TlVZeWpScUVkWVNUc1lhZlppWW15SHA1a1VIdC9jd3IwbmtDK1ByWjRJTWpW?= =?utf-8?B?eEhkbXF2aG5MU3JPQUhaWHpiVHoxZzIyZ2p2K0ZRUzFZMWFZMnFZRTB2emRZ?= =?utf-8?B?L1phOEtsVzFFZklYRFVlRFRYbW5ZdTZnZ1NLcTdONFVpb0dZcFdpbWtMdnht?= =?utf-8?B?RWVhVlZJbjUvWGNsOVFmUk5sWDMzQWNPQ0lCL3MwaG12Tnljejh3aGJFYzBk?= =?utf-8?B?bTlCem8raktWMi9STGd0bGpRWFozRlpGQzE1Y1hnYW82M2ltYlhlQWJvWmZR?= =?utf-8?B?akR0Z2J4TGhueFY0SUVBQlRoWng4RElmK2I2WFFJcTlvSk5mYWN1UzlUa284?= =?utf-8?B?Z2xEL0hmbGJUem5MMXBocTZhQnZmNnBDV3M0OEI3L3VtRlFEcDQvOFRwZC9i?= =?utf-8?B?eTN6OHp1dUYrM1hCQk16a2pMZVVqaUtvUEVQR1Z2V0NXbEFUcjhSYlNLaTlB?= =?utf-8?B?UUEzcDBoMTFPSFNURWEydkNKZFhoV1ZaMDgyVmVSQ2NlU0l3M2Q4dTF0bmdG?= =?utf-8?B?d3RINk03Vkx1c3JCaVhUNnBKUVliMjBLSkxyanNORW5DOE5ieVMwTlZGUW0r?= =?utf-8?B?eUhVZFVPWHJFRUJCdzhnWWloTUI2Ykt6Vm5WUDBidnZPdnhRL0xlZHZSNlhW?= =?utf-8?B?bW55REdwdktkTG9DODhXL3kyengwbi8xQ0k4UUVrTldwRTlEWlVQL3p5OEVx?= =?utf-8?B?Wm81YnhCdUlSeWEyVnRxeVZIWHQvOVpPZGZVbWcyOXcwSTV0MmlFMDV0N05z?= =?utf-8?B?ZExqdFVJbm43N0pUeVd5WUtIY2dWREtnMGFEQllOMHc2T0ErQmZPMTFEd1dI?= =?utf-8?B?WHBWWnl5Z3dTY1hmMTFCMVVueFdFNVVQSnNydmVSS3U5dFU4bEtQa0VDYTIw?= =?utf-8?B?UnExdkdUTHRGVHIrSGJIUHFoVzBQSTFhMm93alRNOVZHNXRaZDRtc0lPQ1RS?= =?utf-8?B?cktJcHNYVVNGcjJPSzhPUS9HY0swd2dUOVZ1bllVc2hUMVExTzlZZUJlVjhY?= =?utf-8?B?Wko0RDZIT0Q5K1VJaml4MGI3M0tPMzlaR0FvamRHNnk4dHpzTzV5VmtaZTNu?= =?utf-8?B?WVNIamlOYW5nQk5pc2h0VjVVRXRJbkEwaWRIWXBHMXk4c1NXdEpwL0I0U2FO?= =?utf-8?B?azE4dlR3ekxxTzJPZ1BOOTZxZWZQZXgyd21OWFVNa1RzMjB3SWh1UFZ0aFF4?= =?utf-8?B?RkdQTXlPWWFQckV5NUNIczRlOUd3VTNKVUFNUDJtQlNEaVFaRXZaUHZmeFFN?= =?utf-8?B?UmhGTE9PcENhYVlLUWhMcHBqb0tLS1kzNnJVckdkNThPaGEvOFU1QzFxQkJw?= =?utf-8?B?QlkzTC9vdWQyY0N1OVcvdVNsbDhYSDkyQjRZWUVyWEYrMGpzekdubzRGVmlJ?= =?utf-8?B?N0hqcHFxdW1HMTdIaXdYdkRqRHlZSzZwelk4bWYvM2tvTEpzUTZJVURqei9F?= =?utf-8?B?WVN6YSsyUVRyRUNmc0ZIMUtEZ3oxazBXL1NDRGptTCt2Vit6YVg0T2xmQnA1?= =?utf-8?B?VEVnbkE0L21OaFlsQ05oaytPTDJVS3dpZ1VmOXNMM2h5Sy81bEFLOEt3NVFh?= =?utf-8?B?NEdFamMyR0dWV3g1WVlwOFRBWE1tdWJvdVZNZVVVQjNRNzZOTnErdkMwK0NR?= =?utf-8?B?eEluNFVKbUJwdFN5dTZnaTZ1R2FMR0N4NGQybU8zVmNsYTA0QjFIY200SzYx?= =?utf-8?B?L0lRbXdsSmxlOTBkTFNyRHUzdUxySWxQWE1CUzNNTnlYS3Q4VXpJUkFZaXhU?= =?utf-8?B?dHMvOVVSMkNXUUlYS1lhaENRNjkwWTN6VjEvNW0wcTJUZ0pKZjRrWVRTM0Mx?= =?utf-8?Q?DG/hTW?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;6:nJpGWuhBwRfsKfWJ5fcXLhFLZoROb8lcCICi5W5KYm4BduFOT/eWRn5pOX8gYTqrSRB1DjmkXxWtz/4eqA7EABF5dYB981AmWW2xSC3U9r5EEwTvdcQ6yVm8Dj6pKElOofpFwQMrDL7em8i1PZ3pni1y1OaRHhzErvE81kojpE1YkfkUYDwUxzePq7xtCwE7cZU9mLj2XJ91ZS7kyqZf1CITEYE/jsVn5E54ccPiLILzPjN/HKD98r9ODoPy8gw8kmwwWrXXIxDB5pVXolXmuqHHKZtdAWA2hZNUIaUn2vuHF/fmTzcH/aphmTBGiwhiDmE6QxxMHwgcQp1mcj2Kkz/41gD7BOrwnjkrMYWuDhFHng6Z7TSNbwPzbNXw87XJYNFNMtGvm3mOn1WFwQ+w/FYj7UspDPpfmqD/aVf0spPmkhbAzScQKaJeSc8DQCqVO8jyXsuxfL/3UaJwdQ0t6PPku3dBbhAN/iVp0IsW/uOquDDiZkk2c/d69eUP25itdOIbphd9zvUhhq2g7XSScb8dGYTIw9vRMz+1HM7/qlk=;5:Wmi+UcmMbRLqJfCsf0VkvW+gD9j9HQedwdCkZy3EVcmh+HB8XQn3fWTTO2/hAyHfFISkWfYuNutoEyuJ4Em57wl5A0tEtPQJBauyX8kiDwbX4IoSu/7liX2lLoNQFGgFtH8w8E8BHfNu1UfisHD4hQ==;24:m+fPujKf1+KlAzxAj2VFo3KyqVRlo8KoWbKiy1VpLas9u8I/X8vIITZyvnMcG9iINlYxmSfVwAe/hAYIJckaVq+ZLobVY00m3+mP3zt8U8s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;7:HsIvmieVxMxGZ27+gcl/b93/vsIId/qG6GsXuecP7/YRBjDX09dBx9i9zDN7cFPL818eZoX19ONYie75R3hyQooXdoZYAHivnfV6/KrZ+7NvMKEFYHVqCbklCwSeEK89yDldmnRipHVwyZLdRqy/zQG554MS/K8Vagbrm5SHMASTFf6JGnblXTZxcyszsst4RDlrAoHj/vVNarCoXKzHY29Cr2tOxHU8k6Ai/FnYkKczT29MWQj7h5e8X68RznjrnusUrLLwYkYEs7VcllsTx4Se6kAaoeBcKngeQ85RstfTxzRvpaKvcA9Dy3MyPOkuurousuSHufuiQGJGAYCuEg==;20:iaIj9DKOfx034rQYjIcWSCR0G+pu5Wxeg2IxAvMk53EfOx6q7BCFgBHbXtG0HhbqBJodeRw2bgsFUszNm3nlsKconheKOL3bRaubprrb6UcAThEXtMxyxHzfxMp56Y18j4w98xm7UO5l2Kwbhc+Eru8gnnYx4vU/5Cdwv12Irf2PDlOQkLX1Qp5hWqRZYkYv5Y0sKN08Qz2KOJr7uHI2u5orGNVcnALLVQqIhUV4ej/wIFCac3r2bj5ccSXIVFKY X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2017 14:34:12.0305 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1141 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/27/2017 11:12 AM, Borislav Petkov wrote: > On Tue, Apr 18, 2017 at 04:17:54PM -0500, Tom Lendacky wrote: >> Changes to the existing page table macros will allow the SME support to >> be enabled in a simple fashion with minimal changes to files that use these >> macros. Since the memory encryption mask will now be part of the regular >> pagetable macros, we introduce two new macros (_PAGE_TABLE_NOENC and >> _KERNPG_TABLE_NOENC) to allow for early pagetable creation/initialization >> without the encryption mask before SME becomes active. Two new pgprot() >> macros are defined to allow setting or clearing the page encryption mask. > > ... > >> @@ -55,7 +57,7 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr, >> __phys_addr_symbol(__phys_reloc_hide((unsigned long)(x))) >> >> #ifndef __va >> -#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) >> +#define __va(x) ((void *)(__sme_clr(x) + PAGE_OFFSET)) >> #endif >> >> #define __boot_va(x) __va(x) >> diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h >> index 7bd0099..fead0a5 100644 >> --- a/arch/x86/include/asm/page_types.h >> +++ b/arch/x86/include/asm/page_types.h >> @@ -15,7 +15,7 @@ >> #define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT) >> #define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1)) >> >> -#define __PHYSICAL_MASK ((phys_addr_t)((1ULL << __PHYSICAL_MASK_SHIFT) - 1)) >> +#define __PHYSICAL_MASK ((phys_addr_t)(__sme_clr((1ULL << __PHYSICAL_MASK_SHIFT) - 1))) > > That looks strange: poking SME mask hole into a mask...? I masked it out here based on a previous comment from Dave Hansen: http://marc.info/?l=linux-kernel&m=148778719826905&w=2 I could move the __sme_clr into the individual defines of: PHYSICAL_PAGE_MASK, PHYSICAL_PMD_PAGE_MASK and PHYSICAL_PUD_PAGE_MASK Either way works for me. Thanks, Tom > >> #define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1) >> >> /* Cast *PAGE_MASK to a signed type so that it is sign-extended if >