From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751989AbdJZU7n (ORCPT ); Thu, 26 Oct 2017 16:59:43 -0400 Received: from mail-by2nam03on0049.outbound.protection.outlook.com ([104.47.42.49]:11424 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751553AbdJZU7k (ORCPT ); Thu, 26 Oct 2017 16:59:40 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Cc: brijesh.singh@amd.com, kvm@vger.kernel.org, Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Herbert Xu , Gary Hook , Tom Lendacky , linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [Part2 PATCH v6 13/38] crypto: ccp: Add Secure Encrypted Virtualization (SEV) command support To: Borislav Petkov References: <20171020023413.122280-1-brijesh.singh@amd.com> <20171020023413.122280-14-brijesh.singh@amd.com> <20171023092020.GB19523@nazgul.tnic> <20171026135614.GA12359@nazgul.tnic> <9258d8e7-b185-01d2-be92-d7d2820c7eb6@amd.com> <20171026174427.GB29782@nazgul.tnic> <20171026201322.GA32181@nazgul.tnic> From: Brijesh Singh Message-ID: <89f4ec21-e31e-18f2-27c5-946c38cd128d@amd.com> Date: Thu, 26 Oct 2017 15:59:32 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171026201322.GA32181@nazgul.tnic> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR14CA0014.namprd14.prod.outlook.com (2603:10b6:300:ae::24) To DM2PR12MB0153.namprd12.prod.outlook.com (2a01:111:e400:50ce::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 04921c6c-5ace-48dd-095b-08d51cb47886 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:DM2PR12MB0153; X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0153;3:/BA8NRz3186M7Px/f6nvsgj/rXptfi65SjtvRs2UUIWBFp8JhkekWNRyM9X51mGBYYQCePDVB2dJ4O+wd0upbo133dGcW9D5p5ysg/k+aVUYuDJg3Jp3RIx2m3HDY5SEoDLJDp5IVsRCiSUrholvvdUkJ7RNrwEregGIpf2QrTBvp1tzUkBCkxsnHB3u6Pv4VbEiBe4ZZ8+3YHTkef3gsFnNu+ZCEj9ntJIR0eevbejVKELFrbXhtzxK/ibNFy4x;25:zynhFNm7WnTQ6nz7McgB/v+pWX+fA/WaTOxEsqvAWhFiRLdtf7zdjcu+r2a0Fuv3patv4m7wHgc+PKJhU2YHAvQ5f4c1T13cGdrxPknDX3vvEuOjJ9MZ8ITToUhS11T/D2C1HEa2W29DxSQri1r8tnVvwm3icdLNrREjYePoeR/jbCECsOYabXSv8avduuIvG8Ir9c2RjCyWh8He93goQzQRRk1NieGeF2BmjVq0qlIWDPCxO9Hnw5b7TZX7wMTOo95grGDcCmPqsT8UaKYFhDse+bithts7YxRy+wvJ3MdYUc49C5cbr0tHwZlN2NmFhsHn6WpF2jFbGqezuAoDNw==;31:el2A3w3TxINSK5vThIZWebeVcv5eRG8mXvV2q/7R2cBh0+WNps2YaatdfiDffIPazzaKzPvwye8DbUjezpRuC1myD+SgNYttR5oD6VkSzRGo3s9rH4EsU6xymOUb57EG5xh5Fil4hDOOHe0Cw8I1ztUyCIJISYPGir2MLmA4yZbVDWZhkrvGB3QUReH2vNhaK4bnpsbQoNo+qncR3hRRNMP28vwe3W354+TfOGrjESU= X-MS-TrafficTypeDiagnostic: DM2PR12MB0153: X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0153;20:Pqf8f8eSwTwVV4HOL5lLml+V7DpHx5uWzlja3SSns6YEAqSxFwuII29vteX3WMtmUYKgGR/j/CXpUp3gLDQWbc9Ii1KaqAeg+omhSpT3xc9foQjP/wk/gfblPFGo/Bl+Joi4vGnwWEBL/uPyhF0sLEmlS0fepdfIKoSm25cG81gttIlcO/Blx4vyfltJNk1sqqVxowZjeELuXROg0Gc8aiMz507JafxbfkmqWNDBT6G+Ba0lbmpkD0HYeEbZGwW5pcaj24L589rIQ86FGTMI2UOqXwdsMsjeof+5iDuZNNDxfxBQJqIzBUaQFZklemwYN8ONaxREiLryzdx5faFczZ9LfPkLKWR+JA3d6F0xi0cvfhWhVZmyGZLjXOSotFsPUjpDCL8JktExBmZshe+8G3CNpk7JO9CmTRUQWoAwgeg/HkdOyK0VEWuAJ6doqTrc7g9jjRSBawE3BJPQnUHHWE/hOVdobm0b6wWkeAEwU0SDCj9Tc6SE0EqGqE03l0SJ;4:kjiPg5D4mIfKycsFl7ZvQzIlgCggS9pDUmoCKC2Z8AW8nw4zYGTMS2D7NGezim3pStI4TWI4F+JMkKJNOLzXS63ufeVBZD2xL4w70DQ63W8KUbM5yqg4z7TAtmbSDrFaZ7N5pt/nBbAo8aq9jPP8w0YIY/gGAMR2dwUZaAk0ujqRIbpdBf4P/ch5k6CnltIsiOkT4uB3ppHW4FfToEbnv/KYesDsYr13yf0mMkvTlXqyVDjPZ1IVHURZAb73J5Wv 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)(8121501046)(5005006)(100000703101)(100105400095)(3231020)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM2PR12MB0153;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM2PR12MB0153; X-Forefront-PRVS: 04724A515E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(346002)(39860400002)(376002)(199003)(189002)(24454002)(86362001)(106356001)(54906003)(16576012)(23676002)(50986999)(105586002)(54356999)(229853002)(76176999)(101416001)(31686004)(50466002)(58126008)(16526018)(189998001)(53546010)(36756003)(47776003)(478600001)(65806001)(66066001)(77096006)(64126003)(65956001)(93886005)(7736002)(2950100002)(316002)(305945005)(31696002)(6486002)(33646002)(6246003)(25786009)(6666003)(230700001)(6916009)(2906002)(83506002)(5660300001)(8676002)(53936002)(81156014)(8936002)(4326008)(65826007)(68736007)(6116002)(97736004)(3846002)(81166006);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR12MB0153;H:[10.236.136.62];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTUzOzIzOkc1WnozbmZ3RXBsdDBZMGNqL1ZzMHArSmxh?= =?utf-8?B?T0FURXlxZ2VVS0x3Sm1LbXlNSFZaL05GZXcvNVZuaVZwRStHMEdtZkRNRzVW?= =?utf-8?B?VURqcmMrZ21Vc2M2MWUrQzdPUWowUU55WWd2K1l5MlR4ZGV6Y1NTYlpaOWxa?= =?utf-8?B?bU9UcDIzY3JwTXVXMjVaa0JOVWhuUXVBbXFRSmdQT21SWDZUeTZJcFJ4ekJp?= =?utf-8?B?SlEycndGWFZTV2hjUzA3a2FBalFYWmNpcVllQmxyOFRZTUR1R1l2MHFvTGVV?= =?utf-8?B?Z0FXYmxHYWluMjd5QktNVjV4VTNxejZKWmZybzVVS2R5aUZMV0tFWXY3YkxW?= =?utf-8?B?WWxhQWNMektXMTNWYzZxTnVYbHc5ZUZlMStyWXNjdVJ0c2Fmbk9SYytKYy80?= =?utf-8?B?RlJDOE9ucGVSMk9ocWRKUy9BczhTbnY5U1lqUVFuUU01U0dlYzQ3ZkRsa3Jh?= =?utf-8?B?WVhqQUVnVExZbzM1a3lpY1NscXNPQW1sV2RZTHVUeFlSQUdxK3pFRVIwbWlr?= =?utf-8?B?WjN3L25INC90djZiSHVsKzFUTklSUjNxTFE2QVBkRHBSbW94SXFXSkM0Yjhz?= =?utf-8?B?dVlsd2NSM1RwTEZBMVpnT2dxRUg2YVBWQ2RKWVhlejBRajdNcjI0L1BFRm1W?= =?utf-8?B?dEZuTnR1d1V5Zllwc1F3OG1HdkVxWmRxWng5TW5PWUJZSTBWeGNKeGdSN1cx?= =?utf-8?B?dHZ1d2ZlVkZyYjVVOC9kanVLM0tIWFBTT1l0em9hWDJCWnJFRUhQSW5pZEtx?= =?utf-8?B?akZzTDVONDlSQXJuZks4KzlHVEh1WEhRbFY3OFpzb09QRVA1OS9qaW9jcksx?= =?utf-8?B?MWdwVm5HeU12cVh1bmhhMjB4SnJ1am42YjhQU015UERELy9RNDhyZUo0eEtx?= =?utf-8?B?VE81Nzk2TW85NDA0dVNrekRRN0YwZWtpWXc4emR5LzFHQ2czWnU5Mkd5NkFw?= =?utf-8?B?eElVdlFoUlBPV1J4WDR5Unk0T05lWW5mbldDb2d4MHFQT01MVW5qQzB4akZH?= =?utf-8?B?RXRjRUdVNDZxZjdvNVlHRVJOQjhrREZiMVFRMVdBS0Q5SjFaeFJCRjNJaGpx?= =?utf-8?B?aFBMSVdHbWFvZXhQSlNzVzZoZlBLcVBvait6OEprelRkaHZiZm9QTjJVZ0ZG?= =?utf-8?B?OEU5SmVIK29oYW4rWjgySWpHbHg3aTlmR0dzaXhSQ0hQMnlQekRTNVNJMXlN?= =?utf-8?B?MzdQWkF4c1l6STZIakJYa1BwSlNpa1BUWFQ3WjB5eUZNTmc5M3Iyc3lYWkx3?= =?utf-8?B?RTUxUTBUaE84VktFQlJwZktmSkp1NHFMVC80RHlZSnU0TWg0UEQ2SlMvZTNs?= =?utf-8?B?UGdTVlZ5TVdoTWhKYU1BOTFsUnBNK29TdUo5MnB5N3NMM1BvRGgzLzJNN2wv?= =?utf-8?B?WWZrMVZONjlxRUhlOHlWT2NXcUVjK3dncllsUFdBVHlRMHVaVmZWRHFnSnR4?= =?utf-8?B?V1JsMXlXMmVNS3E3YmxYK2tXVmJiZDZBUlJVTmxnSFVBM1JvRUdpbis5akRG?= =?utf-8?B?TDRRVCtUQWRFakNUekUyQjVFcWtMWENwUlBsNS9IeW9sMlY1dHROSG02ejF3?= =?utf-8?B?VXlKajVwTG9xZTJkVmtlWXlTOFhLcmtMdzZtSE9wVFpzdVJHbXRMTE13UUNW?= =?utf-8?B?VitGVkhkMFRqYkNSenNJTTBtSVpXRGNQMWpqRmNlTkMwUkIvV3Y3QjJ2ZzJE?= =?utf-8?B?UFhKb3Nha3V0a3JvRUJ2N3VEQ3R6OXRTOVZ6QjVOOStzNWphTDJCMVNWakkx?= =?utf-8?B?Ny9PL2JOYVAvbmR1Yk9IZjYxb3RkK1FSVnVUZWlsMXRHYi9IMmJ2SGV2eEY3?= =?utf-8?B?MHlzSzF4dnIzOTZPUkhFQkZtVnJ2NWEzZWVBYU5IY1htMU5OL2hFeUluZVBm?= =?utf-8?Q?yCy3i52LjlM=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0153;6:LYkAr/FR685EGKS4Om8URTgrUEeU650GCxTCDt7h7i5QbrIdM13vsU5WRQzy/9zEN1OEzPcGuzkyh+Xn5BX2quAEb1nKfMi+bXZSgHFP4OxtM6YrBd7uCdYTA5PCV6WZMQS97DUF0hNxrBLp3a/ZMG4uMWVKiQalABKWqmlAcwNAenBePNX6wCFFSFfYBortgm4EUfDOYtEpYDbHyXtj/+OYa96KfCRG49RD9RBqzrFQjpPIm4x4DYezrg2Kzgi+mtATtshjXYyIJOElUb9C8kl0fGWh5gQTs6+ZgACU3hPWcApezqFhaBDXzihMV/KeZ7AGflNxtpsSvkQXXM9POw==;5:tM9Dqr7+Oh26b3wOS3yubDyBJKHPmODlU+vUUWWfXy2iSKN9EE3T3ShdlyOzB4VqI6SMR/p1hJmyjD9JxMmoF4lLgBE/x4fqkGt1Wf5wTRiL1NfK4SPyFX5RpfIoHjT4RSIaQt0wTMA7G1TVGZHP1A==;24:yg9MHe21rIa0eWr/4Vh8oUvbtGr8ANQkj95QxR4U7SISiEWmJ1UIjvaw9Nn9CbRzf8e2P/e16YtUoV/vm3z+5wslOQIiwjedTaBuHkOwJ/c=;7:Ud5GrdU0JNndSGmwUpT/MFLjJS1MlH4kjXW9rAyJ4/+PgBavMOIMbXWgXrWZpxQg0P9znVXCvo/hn7Zcves+x+Q1Om+CUyxd8XnKvC9QKxY+SUIhcYiZNxewYECM7Djd83uLqwL/ztUI8YQ/hh05j98pfbDfuvJLZTTxutiiab9KXBTaMIyhe+N3Hof11orBv4HrmCbJOYP2Er86lufLk0m6hIOBTw24V1VEv3prrLw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0153;20:+TwwA7CIJbDENrjwIBXYmq2DxRuHUUXGiVuqEVTKdmoZyNMV2GrhLs7Bhu62AK5h7MX2tWPtJsK/hY7B5UjFdVOA5JrQ/q9vcd8miEeJ7fgzw+V63ciK68nb8OfmJvZnbXVJg8Fu7HziPejRoYw78xIFw5eYsMvebQ2HMgrxSYrgXTT+xOry8JL9fd+A4dVSpQ857ggPSeR8GDjNyOu+lIuHRAbboCOppGfznb5zAmcsMB1/O/wv+U3WNAclgrKy X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2017 20:59:36.6723 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04921c6c-5ace-48dd-095b-08d51cb47886 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0153 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/26/2017 03:13 PM, Borislav Petkov wrote: > On Thu, Oct 26, 2017 at 02:26:15PM -0500, Brijesh Singh wrote: >> SHUTDOWN command unconditionally transitions a platform to uninitialized >> state. The command does not care how many processes are actively using the >> PSP. We don't want to shutdown the firmware while other process is still >> using it. > > So why do you have to init and shutdown the PSP each time you execute a > command? Why isn't the PSP initialized, *exactly* *once* at driver init > and shut down, also exactly once at driver exit? Wish we could do that but the following reasons makes things complicated: 1) The commands must be issued from the PSP master devices, at PSP initialization time we do not know the PSP 'master' device. Hence we will not able to invoke sev_platform_init() during the PSP initialization time. 2) some commands require the platform to be in UNINIT state -- e.g FACTORY_RESET. So, if we do the INIT at the PSP initialization time then we still need to perform the SHUTDOWN outside the normal code flow to handle these commands. we can workaround #1 by adding some hooks in sp_pci_init() to invoke the PSP initialization routines after pci_register_driver() is done but #2 can get painful because it will require us calling the SHUTDOWN outside the sp_pci_exit() code flow. -Brijesh