From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932348AbdJZNF4 (ORCPT ); Thu, 26 Oct 2017 09:05:56 -0400 Received: from mail-sn1nam01on0077.outbound.protection.outlook.com ([104.47.32.77]:32992 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932198AbdJZNFx (ORCPT ); Thu, 26 Oct 2017 09:05:53 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: [tip:x86/mm] x86/mm: Add support for early encryption/decryption of memory To: Dave Hansen , arnd@arndb.de, aryabinin@virtuozzo.com, dvyukov@google.com, mingo@kernel.org, pbonzini@redhat.com, peterz@infradead.org, torvalds@linux-foundation.org, toshi.kani@hpe.com, matt@codeblueprint.co.uk, corbet@lwn.net, hpa@zytor.com, konrad.wilk@oracle.com, dyoung@redhat.com, tglx@linutronix.de, linux-kernel@vger.kernel.org, riel@redhat.com, bp@suse.de, lwoodman@redhat.com, glider@google.com, luto@kernel.org, mst@redhat.com, brijesh.singh@amd.com, rkrcmar@redhat.com, bp@alien8.de, linux-tip-commits@vger.kernel.org References: <8a3b1467-a802-1a34-2f8d-7e4d0098cee6@intel.com> From: Tom Lendacky Message-ID: <5384d7fd-b05b-917c-e89a-f2cb5603da77@amd.com> Date: Thu, 26 Oct 2017 08:05:38 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <8a3b1467-a802-1a34-2f8d-7e4d0098cee6@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR18CA0060.namprd18.prod.outlook.com (10.173.57.150) To DM5PR12MB1145.namprd12.prod.outlook.com (10.168.236.140) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0dd3018b-c701-4d4a-a218-08d51c72479c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:DM5PR12MB1145; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;3:Ol6rslXvKgrA+P8jz5zftvDWV5VVG6qE3mfHVOtV5t6sPRzxKAWQOBjPDhC7mV5+0ZT/quTrMXr/spi+ADiP3seh8KJNEGfdd8hZAtFbxrovq3tnkSZYQBBMTe49tRtSNzrthNLDlMfxGPyeGwIV0W8y1XWkArOz8x5aXi322JZaS5SrLdXUqoVKaVloPZBOwLCxi12ZLwT5mGN2+Lba2SHfIhD3we8fYsuTi/GQR/MuK9D/dDaxGLfuFsKW5/3w;25:00HUYRIT/s4qGxDjZS9/Ak6lMG3XsZELsg5lrm0Hy5AKD0HYZKFFUkB/cetbT3ufG9WVamUcXeemOsqIDmneJwdmKJXa/M3foyLXb43uJ13HJK+XzhZ/GUtLeoqqvKCw4Lma0hz2VCC9fE1mIfR1SbD/TVuEQNxrrIQm6RERDsTVx9WYPCh3HY9Rd2Uuqnq0eSQHPvuQwKJqs8Kk2r5tebaKBaJJkhCN+M4bAESWMyWsFPhSNITOALeVjtzJLNkswrxuSDNUn2CtCoPry+pH7RbfQ+zlwAhRsefgkqNHa6oJNvBaDC2gJHpE8/Zh96nRMwvlZl63qh3FwgIx78x1pw==;31:EQHOQQmv6jRz7A4jbk8qAx4YNWPdFYSJrK9G+Z/Xjg4jwJ1WMeewkur8vJMMqg4OHgOTkhfFrbIg1xNJVZVowBBJyHk3Neg8XQNK1iwGLLm0YJYuQng+I/HGtvGBL7+Osq2dVFmMgonWXIsggWe7Ha86Gqk9psYHH33aoYgESNIkptq9RL6xYZKbd4hAKR1D4xbVuIJ2BK0DChTVZgg9L+y6Zgu/awrJq8ePmtmak+U= X-MS-TrafficTypeDiagnostic: DM5PR12MB1145: X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;20:Kh4OLBugAKAFqOAeMwhEVhFtL1AP0NVVLiIBK6QUagL8oAAMR5tl6xT6eEaHiF4G3npHu8tYYLPofCkANgCw9Oaf55Hf2r3leEfB5BTHzkkhnp1UeiKkCfc36CxtdVtJPxZA3WssCH8FioFodyAaxpyaRFPcUO4QLXJ4HL5K8dcAG4h3COD9dDi7zjVEHJLy2XDogoQCS50MkJqBIyNtjOinQbHQYgTRUM8W8tEl8jWo/Et/eM2KBXGxAlMr2F4KgmhvJZZxhUtGZ23lmudTj3E56bIaUHXSwvBlUxIr8iBLA3CoyL60kJhsO1jWibMXzj8VH2anCCH24qLsTDgdQz5IQjNVHOvo+TiCZ/2ttp23E4McS9o5K1EUPun8unay9UTNsXEZgxQUDLOINl4QgJWLb+B0fcUDBaxraeQHRV0X5B6x3h/WCtfaB798t1Jl4xcGMxisUpXoA3/nBN9XstVeDrfwfdApABdzLqLiCbzHlYSK6DShTA5XQxqiIuET;4:N7mpnQsWTdmmNdiTokzyhUUHRdSEAN6K+lWmGQLxEutobOG0QWAHiCZX/Dq3JcuLc9p8pdNUyJPxDZYQdwDYBYYqcTpwShwYaILnwdXBfvfU+Ri+XTHbjBcZuXeaPkPDSi/Ess6Db9zw0tgaLj15Bq0/reJEsWX4TTrJVKDcg4naXYrw2I389dqhbDjIghOBpt2m5VKpq6RIyojdlNtsOVe/NAE/mFy9Zn9Uda8kk4Yl1PHUv/AfEA1CHBH7JCTW X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3231020)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR12MB1145;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR12MB1145; X-Forefront-PRVS: 04724A515E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(376002)(346002)(39860400002)(199003)(189002)(24454002)(305945005)(31696002)(101416001)(7416002)(105586002)(6486002)(229853002)(90366009)(106356001)(16526018)(65826007)(77096006)(6116002)(2950100002)(6666003)(50986999)(64126003)(97736004)(54356999)(230700001)(3846002)(68736007)(5660300001)(33646002)(23676002)(76176999)(50466002)(2906002)(65806001)(86362001)(31686004)(66066001)(65956001)(58126008)(7736002)(47776003)(53546010)(8676002)(8936002)(25786009)(316002)(3260700006)(189998001)(53936002)(81156014)(36756003)(81166006)(6246003)(83506002)(72206003)(16576012)(478600001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1145;H:[10.236.64.70];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ1OzIzOjRMby9CdzRRVVNhY25laFAxZkZVdEg2ZkNK?= =?utf-8?B?VkpCNER1NHZ6d2R3MjVtR2xNN2F1UDcrY0VqYVhKbnFVbDJqbWdmUEJFaStj?= =?utf-8?B?VjVFZ2ZmWWdqK1ZXK0tOUTJuZFp6UndFMTRWeDJwVmtvNXNGdGN5WWVVL0ZU?= =?utf-8?B?RVl0VHk1MkVNeHpIZEFIeDZZTWZSUnFmYWhHWjd3R3dRcEt6KzBxMDloS1VM?= =?utf-8?B?RzBXS3ZUZ2luU0ZKbE1pUkkvQS9TNVBqcG4wQ0xwY0F2Qi9PZkxOTlNRTTJU?= =?utf-8?B?aG1lb1N4MjdjRnAzcUdXMlRuTXpyZ2RIQ3EzODRXQ3ZpbWxDRG9oUmpXZmFU?= =?utf-8?B?ZkdRRFhtT1Jxb0tHcHNJVTNldmRMNk80RDN2Ykp3a0hGZWNNUFRpa3ZEcEda?= =?utf-8?B?Z2ZrOGxta2ZFVHIvdSsraTVGWFUxZlNRL2JQdWFxNmd1MDlHaG0zVXJvZUpw?= =?utf-8?B?U04wVDVsbDdhNjIxMFcwTER0am9rRVBiZ1ZUQytDL01FRVJ6V0w1UEorUUlF?= =?utf-8?B?YWYxVllLN3dEc3QxN0VTSWZjZGgzUjRncFZBUE5yc0IxTFpTYzNxOU94OE5x?= =?utf-8?B?Q0xCWjltOFEySlR4bnVaZHlOazRNeTc3TDEzaTJ2WFdNN2FVcVBjbDRkcWp0?= =?utf-8?B?TW9mK3Y5Z0VDQWlTQk5OVVE2R0x6VGk2LzhQc1F0d0t2OSt5cEtIVnJFelFL?= =?utf-8?B?WVZWc3BWSEh0cjcvNVVlR3FHOFlxZlRoQVZQM3VKbUlRaDFteEhEYTQwOTJX?= =?utf-8?B?aEhQeHE0MUpnUVYxa01IdnVCa2dOZGt5VEdHVU05TFlLSXB2ZnV2VHVad3h1?= =?utf-8?B?azA2YlovTVBWOXRNWU5CVlNoYjByLzZTRDJDenlreDF0TGhBSDJ6NTlySDdC?= =?utf-8?B?UEZWbndWNy9PN2xZTkVQN3E3cGxoNEV3L0RZd2gwRllTdDZJUjFGN3lueW9t?= =?utf-8?B?amgxK3BCVGc4SzN0Q1hTSzNzVHdreDdtdlp4bkhKaCtQUUYvTmVnV1d4U1BX?= =?utf-8?B?TXRjYWNrUFBOZHl6aDd2c1ZMRHhsalhJVllOYkRYNTl4bGJSMUhKVXk3V2RL?= =?utf-8?B?V2hDdHlyelVFeXNZSnR4YW5tT2I4ZDFEK0N0VlFwOERDZUdsZWlkZGNRMEtB?= =?utf-8?B?UnZYYkVUUlI0OWJ2RHUzTjgxUFVhRjMvdHpHaXZSZHhVNTVOdXM5c3pPU216?= =?utf-8?B?dlUzNUlibWt3dGhRRmM0N0VDQ0VVNkgwREhVTTRpdml0QXd5YXZQMTk4Mk1T?= =?utf-8?B?UW55eFUrN3d4alRLS21KcFQ4NVJqS3NvR1BCdjAyRk9kaGJndm9qRkloN1JQ?= =?utf-8?B?YTFQaHc1MHBsbUgwUGdIRHlCUEVsZmR5OGxESFN1QjUzUEV4QmplMFdqcXF6?= =?utf-8?B?RTh3RU1OeC9udm9wckJqM256SHVxcEVZQ21PRXJzTWJmSTNqQjllU3VPV3Nn?= =?utf-8?B?VitGaW1BUG54VkgwcjVaSFpKZTd5OEZWZzRVQXlHQTd2YzJINmc0clVRakEv?= =?utf-8?B?dE5yTG9CeTJOdThXMTc0WHdmNlVxQUYvZGphRFFBS1RybFJ1a1hOaGhnYXp1?= =?utf-8?B?dThQaWlKVFpydVA1Z0JjL2RoVU8yV0FwbXB3ZlkxK2VZSXVMVFdKd3VHSHhL?= =?utf-8?B?OGpVK09iYUMyVGovSlI5cDVSTEV4ei9zdkwvN1phTXBpMWs3RjZFMk56NWVX?= =?utf-8?B?eVlYZUNCRnR0Zk9ZTHMyOE55YXNZVWdpMmZXeHVLeUJNQXZkOUlieHZtb3Q0?= =?utf-8?B?WjYrbjdqbGdTamRBQkVsbTZsUVhrZTFBZjNGc3Z6V1ZxK2pOd3lJMkppMUQ0?= =?utf-8?B?K2U5bktwWm5QVDNvTmdMeHZYU296Ti9GKzZTSGx4Q2xqL2dlTGZua1dTcFhI?= =?utf-8?B?Yi9heU5WaWF1U3lHVjRIU21VUGRIZjJPcDcvQ2tmdGJLbWZFRTE2TnkyeEJk?= =?utf-8?B?b2Erc1hlcDd3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;6:lM/0hXvvYTRTYvRPIJDBForPA8gb5MX0hrQ7MqIq2xlGVFneM1Su+vFXB9c4E3uBBj2w0+yTfXVKxrUYRhrvDrwf13ZpXhDOqjFsb9HCGhEioMrEHt4hVqhR3B48gSZ/hhCQ/h+oyk6uI7/GtAC/KWArRw0QijqXbK20AehKPMIVycvKMtgs2yk4Z7ykfVwl+amLtrlPGO70aCP4Wb3usKtLXrWZwIKBHp1LLfxxUoCN4ICO7BmHX7Fv9HgjfkXUxys5YdOIi070V7220Crq+1xcnhodtQnmIgJrE+ehi8PeXNEyOT2nRMz11Y2Dguons3hBQsc+eayqPwMNDqFYuQ==;5:lQN417ovbN70ylyjjvIDadlj34PLNTdQXDWAv+AB/qmdvvUPrE65HJKNvIN3tgmaZL01/UdKxCoulMM5gitnxJpoMsx405R0fmncAMTTQBEFS+qxChP6de9MPV8HRG8HRQ3Qdyp89vlBiM5ucRYwXg==;24:R2j2q3/ICOLfuVqSzfhdiX6Ef+uV7jZzu43g7SwdxGFgc87cpM6mLw44rLPIymzH/J5r3LufV3O2I9pVQN3/5OI7CCTnhPhW16RrH0+qlcE=;7:s4/qLh24eXVez3InMb67chyN5ye35TPuTM9yNDtihEgsfU7FSVgvsdefqp69m+RL1MG7qJqEtWVTl+9v4jLqdP9Eg/fJYSzT2YXeWtjnjWAQTkjd64hFVjkfuvArkS400Vlf15/moPmklJJK4Yss4hvPjfWgXh2fKvAcQXfxxWWZmpl/jBV/gI8yT5w+j/58VeI0PSlxqsY1pfB35eMsFkdEHFw25i9uCrhtRwueMwc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;20:R0kosXHXUZ79LiMGLanndbI/NIOyZ+rmixYy4tq2Snrf7wbVrukt4VoWl1Yjwe7CaKna/hdbQKGXIGqziLbxb7N3/1xjkXxjqAcGKfaEuffW9X38gHfzzGIiaXe1ubB1QjDvCzG23m/zMAAoSTqEewdHSuq/06RF1liY5Rqpj+lPNB31EUb9XiVz5xF6uqLM7YgQDcxhgSMROcMcx/f4vZLhub90fQa1joLK5LJ4WX85zLZGWrXm8fqS+Y9eIVUQ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2017 13:05:47.1715 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0dd3018b-c701-4d4a-a218-08d51c72479c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1145 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/25/2017 12:34 PM, Dave Hansen wrote: > On 07/18/2017 03:51 AM, tip-bot for Tom Lendacky wrote: >> +/* >> + * This routine does not change the underlying encryption setting of the >> + * page(s) that map this memory. It assumes that eventually the memory is >> + * meant to be accessed as either encrypted or decrypted but the contents >> + * are currently not in the desired state. >> + * >> + * This routine follows the steps outlined in the AMD64 Architecture >> + * Programmer's Manual Volume 2, Section 7.10.8 Encrypt-in-Place. >> + */ >> +static void __init __sme_early_enc_dec(resource_size_t paddr, >> + unsigned long size, bool enc) >> +{ >> + void *src, *dst; >> + size_t len; >> + >> + if (!sme_me_mask) >> + return; >> + >> + local_flush_tlb(); >> + wbinvd(); > > What is this TLB flush for? WBINVD is mentioned in "Volume 2, Section > 7.10.8", but TLB flushes are not. Is it OK that this does not flush > global pages? The local_flush_tlb() is not needed and can be removed. I had that in there from early development and testing and just missed removing it. I can queue up a patch to delete it and remove the ambiguity with this routine and the APM document. Thanks, Tom >