From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932422AbdJZQ5J (ORCPT ); Thu, 26 Oct 2017 12:57:09 -0400 Received: from mail-sn1nam02on0047.outbound.protection.outlook.com ([104.47.36.47]:1175 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932338AbdJZQ5E (ORCPT ); Thu, 26 Oct 2017 12:57:04 -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> From: Brijesh Singh Message-ID: <9258d8e7-b185-01d2-be92-d7d2820c7eb6@amd.com> Date: Thu, 26 Oct 2017 11:56:57 -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: <20171026135614.GA12359@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: DM5PR10CA0001.namprd10.prod.outlook.com (10.172.33.11) To CY1PR12MB0150.namprd12.prod.outlook.com (10.161.173.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 78560f4c-7b18-407c-4b90-08d51c929420 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:CY1PR12MB0150; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;3:+y+bDgaRbQ7vYoIxB/H6HhX1MD3NEQ+uVz4yNJ9dcfrMDzobKgdvmyss7vldmzRVgmnza1b3HC6N5ymZlKPXMdwghU1dCWjnUHwRFgJPEcPIHGcVDdWXbTr2psPc5sT86WLaynnjZMXXZOyaNrDNDFztPQhUJQSHlcmEY241H0zMJ/bMCPWioxuSXbgW5KrItkhz13Fye211ibS6/2v9dWBye7PQfqZ0eiCbwp3M1TmPA+zMkEiPdl8zLNQbNcrb;25:wJ66DO4W3sLMmU38JgGfcqeJ9AB2ZIR7hzAVXt3MvHCirc476txxkVbN/MmwQ8ZGX47tM4hazAgdGADkI2c8+yFtdMuP1dDA3ytYk/nOQ8CVml+TRuh+ncoIlYJAtYbGdJRwaAC2eJ3lu7R0TlKHDpAXO4BHxhni6jvZowfLjnXkasfVlE+btJoTJrrb+nU9/Uy0RDtIgzX92xS7d3Lc77B8FWtl9L0O8kVgOABdQxqDgM+aNlYHtVpbFvyTv5BeLrcnhPmAvm+b7l2UAcydzkYksWFaGOYA+YTwt8MJr6UMEZroFeKp3oUgP/xa9KarnrO1q7PVlGrynWBf5x0Y5EpunASI2DZkC8ow9xTyvnk=;31:7Hr2/FvHn13JXyQOchf1M8OgRpAfBa2KjrFiflB8Gu+RwsSkZegpgOlRUqcijFrg3tHK+yHjc5bziVkHRaJ4mIPz4H/Gdf9neUZhRPYLwrEGk7y2zP/qyY21tYLWx/yT/8ncFkvSNHSOjK2VkZPj3CDZU0liN/zu3ghuxaOwFQsSu9AAC9W1JBH5qbr6nieuY0WEXaeoutdg7EKwyPYRzTb145W4FnKGzWQZJL2V8xg= X-MS-TrafficTypeDiagnostic: CY1PR12MB0150: X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;20:Kjsq4ZdftoXMPVYzPWTIVcO1OQjWGkFK/JlAbXIZ9hak0tNflKKlXuxAu5ErbBjSkPfU+jwNZCZ01KGxp1cjFNG3EQgRM9OtpZP6WeAXy2QfC2OpKAgseDNWqTOrkKPqYCzQAtWfbh1OdF9FQmL62oTYsPcSKY0kfKmVzbKGq9AJgjZkgPZjk+5mEbVzy1/QcU8+G/uz60weJBtApP/nfp1bqQOkbHcMTJt6Wnu7KZherbp1c0Tk/6ysh8+mH53k4mltbRc1SainLy0Tt4dgTMs5Cvxsjw/xqU9cuvuGTdkLH3yoNi8tJIuYER5pj6pnvNYddsdi+oS46Y9YcT2S08g8FtpMr/CJIbYvkqEzKVf/7KBrTAOHSkjTcmsyL87M6J6C1wZK17leIf+PRwUpRQKW1snued5gkDzCvz+aUVSVAHn1Fjx7aOJNXK6h88yLyIuBcDkNIPiuO+8EUnUN6r8Wo7Bpsh7A1p8B72xg6VdmNgv75ytJwUW3rfOOFlRx;4:cmmGDC1FzD8DbhcINR101Bm6FETfI0tLqlOoXujYjZHjs1gq1ktq9rceSK6kLAC0rDK2NKki8WwU0RkdCUTPAEmnOt/nMhvUL9LdyYIctanvPR/GbDqeqMzAD5XG/5jjwagWE5Q5FzQQQR0WbH0gcAx8zzga1P/dO5mMjAAWvjn7Gg0TXTGXsdqg3ZRD+km2xwPYoe1YNnk/GOX7YzmDiR25Be3UmKLi1wDwcJRa7eZAD5dDmmbrF/9Y2P4yFv+q 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)(3002001)(3231020)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY1PR12MB0150;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY1PR12MB0150; X-Forefront-PRVS: 04724A515E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(376002)(346002)(39860400002)(24454002)(199003)(189002)(6666003)(65826007)(81156014)(53546010)(93886005)(7736002)(53936002)(50466002)(25786009)(23676002)(66066001)(68736007)(230700001)(97736004)(31696002)(90366009)(65956001)(2906002)(3846002)(65806001)(47776003)(6486002)(77096006)(229853002)(478600001)(2950100002)(6116002)(16526018)(316002)(54906003)(86362001)(5660300001)(81166006)(6916009)(305945005)(6246003)(33646002)(8676002)(50986999)(8936002)(101416001)(64126003)(58126008)(36756003)(31686004)(189998001)(76176999)(54356999)(105586002)(83506002)(16576012)(106356001)(4326008);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0150;H:[10.236.136.62];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjEyTUIwMTUwOzIzOjVaaHdsSFZkaHJROXNweEpta3BmUHVraEdn?= =?utf-8?B?VlQ5YldQMmRVaVVHalVDMW9aZDEvZWFoNUZsWW50dHJsdlkrM1NYYzErZUI4?= =?utf-8?B?Mmh6WktuVWNjbEZzY2dnY3lIaDBLSTBxclVqNytBVG4wUkdZZFY2Sm55Z29O?= =?utf-8?B?aDhwL2dpU01uQTJhYytRdVRrMnBZaTQ3LzVmWTl4WGR4NlhYb2JWUWx6eFhJ?= =?utf-8?B?dE1mWDNGV3FiNDBxdFJmb3NRWGtaTG9IaWpuRDdHSlZBbHVESWgrbzdZRWFM?= =?utf-8?B?OGJQMFpkZ0JoSUhuaW1HSXN1SHJGVUJqMUdwL2NSM25UQXJYNi82VkJBSHlS?= =?utf-8?B?dERlUVhsc1B5RmxYUStsM00zcklMTGRyaFQ0VzdwVkFhTDRoQ2Y5MDBXRlNW?= =?utf-8?B?TGZSZnRmMngzNDd0dnpPMU10b3JnOTJ4OGRZN3E0L1h6cFdCbkVlREFINGVL?= =?utf-8?B?NzV0aXZpbmxJa2hFMml6Nkh1NkM1OVY3NWovSmIvSlBHZ0FJSE5YK08zcXRo?= =?utf-8?B?VGJWc1VpRmlncEE3YU9tOVB5NG42R3Vub1U0NmZJV1o2OHphWnZxYVk5c2tq?= =?utf-8?B?ODNzRThlZnBOWExOT3lwVnVjRTRVSkNBSHJVVUtxOEZNSWhCSmJXS2NDN3Zs?= =?utf-8?B?bTVpYlNRWUd1RDZSbncyZ1hZTmVtSHgzYVJJajNUenNlc0s3ZHd0czBFZmFi?= =?utf-8?B?MFBNbXlBS3BtZlhOWmdXdWlaL1Zkbkw2WFIyVVB1TU1BMm0vVHZvRGpLcVM2?= =?utf-8?B?MUd2MFI1RlN1TTN2S3RSK0hqMHJKbmlBcHFjQ0NqWk55L1FuMWh3RHlGRUdk?= =?utf-8?B?SGpOLzE1STM0L29RYTBveVZBWXhFSW9BcDc2WEhrS1J0YW0wNjZlYzM2Ymlw?= =?utf-8?B?ZXZHMTlhdDFPUUhEb29oMXRzdUxya243NjJocm1LRDJUZDhLcE9VeVZxcTB3?= =?utf-8?B?R3NqOXF5WTkydFNuaEx5LzJJL1RVWDZwWUJBUEx5RHl6TUZsUGxUcVpsTnNy?= =?utf-8?B?UjNnbDM5dDM0THFlUk1NUXA3TDFoVXNwTlZLL2xEREN4QUxXZjExcUk3ZUxM?= =?utf-8?B?cThWMjRXZHFKL2lBWmpyZzZUNUpIbzgweC9STzdDRXpIelhGdHlUU1lOYmwy?= =?utf-8?B?aVV1Q1plazM3WS9aQU5qV000ei84dFBSVTIwS1V6Q2JiaVpYV2FoTXdDa3VL?= =?utf-8?B?YmFCS0tUellSTUE4Y2tuNDBhaFRxYk95UjBaelVHdlZEY2FlenNaYWp4YW51?= =?utf-8?B?aDdVQjNnY09SWlZVSGhQVGFjZ3R6bkN3UWxtN2tEY1lFaE5wVThObElaaUsz?= =?utf-8?B?V2grUmxoV3kyMU1BeVI5QmMrSkNzd2JkT3BDMW1JOHlPR2ZrWE9ZNERlVEtK?= =?utf-8?B?aTMwY3FGdERHeDU0Q3ZncENxa1VqOHQ1b2o5ZGMxRXhUcGUyOEdtRXVkaCsy?= =?utf-8?B?L293NjRvOGJGQXR2T29rMFQyVnRuZEgrQXVBQVRXTU5xN0tCZmIyMGhOR0tH?= =?utf-8?B?YjNwMzRDeml0aXhTMHkvRldOaTlmQzczWlNwYXJXZXM0eS9aWUdGVUxxU1N2?= =?utf-8?B?bDFTd1JGQVZGd3JXek1mN0pocGRsTy9PRDZuZEJnWVAzR2cxM1hzeGIvanVK?= =?utf-8?B?YjZQcUgzNThNU0lxZVNlUThYaFQ1ZUh1KzZKWWt6SnhBNUk5aEQ5UlhTYU9m?= =?utf-8?B?WC8zVG9iTmxGMWJPZlRjMUVYWVQ0NHR5QnNNYzNWK05GQ3pjTWFFYzl6ZGxt?= =?utf-8?B?NzBIaHRpU2o3VzdmZGRXYTMyWEdraVVuNG5HcXNwUVI4c0ZUTmZyMFBnVGdF?= =?utf-8?B?N01pcFNRM29iYnlLV2ZmQWlpM3Jnc2ozRGM3dFIxMThuN0lVWWUzeCtGM25Q?= =?utf-8?Q?Dt3fjJDXefyPrWN/VDjuOx/jIst+dfUJ?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;6:Cu/owGgHkosZAqMExKMlpO3BFiEyf7+b28kbqwyLAcdWzYU7ZJzV2c2eY4/reaFk7AEpqw4sTbmQ7qLFYs5HB/oNlbgBoH2ZqkdhDqROcTf86TsMGOdjCAgVFbsav54FtUmjDYp2G6pja9QPUkR7oZ0H+TLlMXZoBxm4xajoL0LWkUAnFRR89/r0NdC7UisYCl2eqIB65sV2gDAb99wuku60Kp3ztWO4Vzv8BTPJg07aHpWLkAD5/O6AD8cnhDb+KNOjHXG3jUpTuQoZvBK81p751PqfWYz8O7Ui2E75KSmwAjJkz7rAC44l3fjefpiZkmvkWicJJMGc78vRhpyoRg==;5:lOnQPmlZisNQ3R2Hk64SKBm7v7bnu3cYxtvnFsid+AdMaaNmkGYQY4u+qk4IKl8oC2O4QPUnWMNKF5/ViB6wGTy6OCIgImGO+nt0avj9X9zhBhWLgMm5+N57pPhFcGXTzSRsMTw7aIOkyWbp0Hh5Pg==;24:qZu2YRd8hVbX0BMfYqp2xJOSlgKGwh996mULvfJmOpFTZtZRYY4PVNXWzUSNbRo/pEn9ORtw/DorDHNbNDk8j0NygQnLewG1hXNyVQOb+EI=;7:GjhpPv7WhMz03RJqQC2YwTguMk5pj45n8sOYoKQP5CPsWzoTZdVLQtx36kyoSncKe66/yyt3oDBuGQacaLEdlRZxRfqDsvgmqM/MxbpEIENq2GPhzLi1wJOO8VZ27rSpjbygg5aZRvvepCOtOR/6mG9C8dcSaK3NzWW0LThHh02ZDFzleZuuwiu2HWps7Put7rpInRniOao9EyHZsFzskNoTX7goCyNyB8uDsR6NStI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;20:W5Trm5Je0JvstuiSH2NmRKajtreS10QNc52rBh2zZyKv1VqZu6+0bU02IPV8GyaHr00LnhJJD0kubDisFe7OPR5FqpIH6xoPVOJK8pQePsh68+qIXwddT3jjSiqsDxmDTubOwmS0huF5brIsVk0vZ60XMXWgCi2tx/VZz5yEMbG203TreYiaaKvY57o05xnf7sHobSlsANIHSDm+xcHYnXMGCWh/sYyIek6TyVU0P2zD1Ru+exfrs9zfaqNyDx8b X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2017 16:57:01.4209 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 78560f4c-7b18-407c-4b90-08d51c929420 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0150 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/26/2017 08:56 AM, Borislav Petkov wrote: > On Mon, Oct 23, 2017 at 02:57:04PM -0500, Brijesh Singh wrote: >> Calling PLATFORM_GET_STATUS is not required, we can manage the state through >> a simple ref count variable. Issuing PSP commands will always be much more >> expensive compare to accessing a protected global variable. > > What does "protected" mean here? > Access global variable after acquiring the semaphore. > In any case, that variable can be a simple bool as you use it as such. > I am not using the variable (fw_init_count) as boolean. The variable gets incremented in sev_platform_init() and decremented in sev_platform_shutdown(). In very first call to sev_platform_init (i.e when variable is zero) we issue PLATFORM_INIT command, similarly PLATFORM_SHUTDOWN is issued on the last (i.e when variable value is reached to zero). The variable is used as ref counter. >> I would prefer to avoid invoking PSP command if possible. >> Additionally, the global semaphore is still needed to serialize >> the sev_platform_init() and sev_platform_shutdown() from multiple >> processes. e.g If process "A" calls sev_platform_init() and if it gets >> preempted due to whatever reason then we don't want another process >> to issue the shutdown command while process "A" is in middle of >> sev_platform_init(). > > How? You're holding fw_init_mutex. > In your previous reply you comments on global semaphore (fw_init_mutex) and in response I tried to highlight why we need the global semaphore. Did I misunderstood your comment ? -Brijesh