From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751775AbdJWT5P (ORCPT ); Mon, 23 Oct 2017 15:57:15 -0400 Received: from mail-bn3nam01on0048.outbound.protection.outlook.com ([104.47.33.48]:18863 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751660AbdJWT5M (ORCPT ); Mon, 23 Oct 2017 15:57:12 -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> From: Brijesh Singh Message-ID: Date: Mon, 23 Oct 2017 14:57:04 -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: <20171023092020.GB19523@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: DM5PR16CA0007.namprd16.prod.outlook.com (10.173.216.17) To BY2PR12MB0145.namprd12.prod.outlook.com (10.162.82.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 250bff45-5bd7-4035-7eae-08d51a503e68 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:BY2PR12MB0145; X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;3:zLLjVPxD0PAKsfttSEys9VOQb38f+25qsjGmV9wPzbxJbaSKCURZt/cgLPy9i89qAPa7Y5o9cFqC0Go0JqLf+tDk4OOyATS2Ls6NwwwuwJkfL/7YXO+YPi1i2gH13aMouU8PomMHotNAEXEv0KCOh+n9pHd71cdxkhI1LsnEi9HZ83cbRnI4bRPtV0Hzi1GXHr9NMeeItVzDiYr87D6/ua8XxAxeoe5w0mvybUyj2260atr29xpUle4sYRoUKSOV;25:Ocn85ldYCIdqOX/QptjAHynJZMy+J428cFp3IKuXihKqmwcSh2VUtm61UoB4LAKs6VPVWruQSGTjMNJpeJWYGFGXloH6kN0+EPG6e+8y1Xoqwyx936mj25QlN7kSQu+PLNGHTw1Zkk/z0KlBJqmXkbQn6+fkvZqNwIk6ZAm0LS3K5XO/EvIneqVpZY9e1AeKCGa9WUAwve1ykakj/dCcc6RbGvTj8ON8pn2J70t7IPLCuz7rV63W04R54SLKA5CI/aUGHHT0CoWYSKWbzKxh8+qWMFW9wZwU+kCcKRNJEEwaGQEI7c02viqaVCKOGM/AdXF1TuysLChzORRdL/p7sg==;31:+ADhwiyu0BFjUXm0dSOAH4wbJIgK7TcM7R1E4QwL+WBmnTaq94GKg3H/X86+dC00y1sHYqtFImnl/1/UEnmoW1d+3bzeN10Mo+IxE6nTIi9qWwUquMIZB8DS9Pm1k6YU+/sIg6FzU8a3W6Y/DQKsXPRE7cWgd6YlIfvRhiAEW7vL1M05Iek0h4rrg86w9JbBLTuyAqR0ei3osW4F5xmPFBsAO1ozdYHh3pBjxfHNia8= X-MS-TrafficTypeDiagnostic: BY2PR12MB0145: X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;20:0yLkVUZeZOy91Ya7Vwb0/9qSwvCWxq5rSZuotE9/+6/bLdmpfTO09K8+KrMjKclgU7NwixhlJGIVJXKzr81iJblVDoibzjoiBhiABJh6gAOhZpTXBgXuEqbGlo7iMO6rk82tGRTKu7WppVNyTT3xHGgpM7HVkG4UJlJ5eA72LwqOhvK5/3n3CBYkYwJUFJBbs733dmMcyXMzejrJFLzYets2hFKVKH0TI1TenQETZofrO+4KNbfp5kUQOfXRksCX7/TkJL8gZEtNSRzE/d/urNrs9ogfFBR5W1loy59gPS37TZS1Ht5HumxAm3miVwQmDsIt3Ih+0o6teXIP6rFMBgVWxWNGjw8X1u4xTwHvnfa0pRZY/rZ3nfxk6f6iR2WXhFgo7KOra1lsuZxq7JxYPDohXCVv7qmaq09OKvT4QsH4mVFWvU2ktx+QRX/CbsDSPL6OaS98EA90Dq4dlXHv8gRH0UIlYNaXM5SmbbDcgD4aZKhonKSX1CwEWIW3a2sw;4:/uttpfXis8OdZWWlhxCLOd5xeDqc7uDCkDCqSWdk674K5jdiXiPKnxwE5hTv6NJm0+R356nfSPL/ippzG4WuH7dN9NWHor6Hf3mEyMKNAn33Dk0oWFcprjzYmxQANDQjKmz1afUMG/ZBCzVSR7wKv2ElROyXpo+O0isV7eqpmK2WyI6z1ptNiZrw9AE546CMiOVTvRuOPNUYR7k+dPM5yeLYqv5YrDZBXLy0V5G4sV8bnA8XCAIPgqZIxX3o69g6 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)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3231020)(3002001)(6055026)(6041248)(20161123555025)(20161123560025)(20161123558100)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BY2PR12MB0145;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BY2PR12MB0145; X-Forefront-PRVS: 046985391D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(376002)(346002)(39860400002)(24454002)(189002)(199003)(4326008)(6486002)(6666003)(31696002)(8676002)(229853002)(101416001)(25786009)(2906002)(86362001)(478600001)(81166006)(77096006)(36756003)(53546010)(31686004)(23676002)(90366009)(6246003)(53936002)(33646002)(47776003)(65806001)(6116002)(54906003)(65956001)(16526018)(8936002)(66066001)(83506002)(50466002)(7736002)(50986999)(54356999)(316002)(81156014)(6916009)(105586002)(305945005)(106356001)(3846002)(64126003)(16576012)(68736007)(76176999)(97736004)(5660300001)(189998001)(2950100002)(65826007)(58126008)(230700001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR12MB0145;H:[10.236.136.62];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjEyTUIwMTQ1OzIzOk1mU3owQlM5RDRoTXBURzA1czYvVzJEY2Ix?= =?utf-8?B?V0RkTWxqZjhRelp2eCsrQ25uNDNIaEZCNi90L3RzbEg0aDhyZkxjK2MzdzN5?= =?utf-8?B?K2Fuem9BL1MzSFFXS0hiVEUwNndTR01TYVJUYlAxTk1jUGlqNm51YS9ld3E5?= =?utf-8?B?b0s2MXEvTEIvZFNLcklTUmFlQTlBT3RYSERyaWs0MTRubzBrRkpmQ3ZIL0NO?= =?utf-8?B?MWNmK2RybkVXZTBjeHhNU2Zac2hDMEJncnFZOG1tY1hNaVRIbjV0M0Q3clhn?= =?utf-8?B?N004MWNOQ2NCallETlIyLzJhaWpxWFNSdkRnOXB0RXFzSmlseUpvc0ZlbG8w?= =?utf-8?B?ekJRTlNTa09KZVdoL0NsNHFXVW5FbC8rTnZZTUx0NFZicCtHSGVneDdZMC9D?= =?utf-8?B?TkhCbDlrejFodWR2LytaSVVTL2JYWmZma2pvbjVNbVp3Q011VnpNdGdnbUdq?= =?utf-8?B?eXk3SmlGSi94cU5nNGw2ZDBCMkNuZWlQODYxVUUydW8xM01ZODVwV0k4R201?= =?utf-8?B?UGllSkthYWhScW02YWNLRlZtZ1JIWXo0THNqUnZ6YWI3NmplZmJtdWVDL2pN?= =?utf-8?B?bnRsQksyT1NKaUxtbXMzZ1lLYzY3QXNUSldETFVmSThjUk5WK05CSHl5cEFD?= =?utf-8?B?OWVkQWNxN2JHdG03RnVPNHhMZ1lUMnU0UVY1by9OUzFreXhuRXVFbWxOTmdw?= =?utf-8?B?ZlgvOEd1OWpWay9DV3V4UGJJa3RJdDNSQUtwVWZZcy9BRzBTME1ibCthT1hI?= =?utf-8?B?MHlqTXR6bDR0cWg3MWdkSmFXM2RIOWFxNHlSZUhMNjVndldORXRHQk9ZMzFK?= =?utf-8?B?eGFtSmN1dUVpSmx1ZmdpcHNlZmJQZFo3WTBCZzJOckJJeVRJdzkxNWNXcC9v?= =?utf-8?B?UHVzeXJnZFlPVkNjY3k2eVY5WmYydVdMRkZsdkJJNE85Ty84RWtqaTM0VVdw?= =?utf-8?B?aEhBRVdZb2l1V3RLb1JlTkNoR3AwTGFTWVVsNC9iT2RtNk05YmhzeHVOODRP?= =?utf-8?B?VGJuOHVwMjF1L1BZaW9JN2NMWmh2MmRFeDIvdnhOSnpwdUoxV3JqQWRpMlpL?= =?utf-8?B?a2Q2Yi9ncnVRcWtNdmlWZkFBUCtvaS9PU0xKWE9qTFFpLzdNdWxHSU5abW9q?= =?utf-8?B?dzFFc2RQL1Q0TjVDT0hPVGlkNEFUUENuMGhQSVhCUWlrbzZ5dEd1YkJGcWFX?= =?utf-8?B?YjlaVkNPV21YMzU3em1ZemNsOXFMc3FMYVVYUk9TQU5GS2M5Q2UwUnRoaVMx?= =?utf-8?B?blpWY0RWV2hkWm5kU2FOTDNEMUZ0RUg1SlA3cUNQMXNKWXp4aUFCUUIvSW00?= =?utf-8?B?eHk4NThlYnlpc2FobHJvYTQxb3ozbXNOY1l0U214cjZuVGNtYlJkaGVPS0FD?= =?utf-8?B?YTdFTXFoTlVrU0hLUERFaUpGVHBBTVNPTlE4NktoUjI5Q2pPamcxMXlDVTN3?= =?utf-8?B?dEs0YUIzRUUveWQycFdiRXB6WG1ZNWNvUzFod2FBNHBRSTF1K0d4NllMamlR?= =?utf-8?B?c01xR2U3Z2Q5eFlObXE1RlRPMDFrT01IZ2FvalBCYXZTL0xRdC9yZkd5T0dT?= =?utf-8?B?VHRBVjlLMThhOFprMDFvbE1TV3NwOURvU21na1NieWcyMUc5c1A0SGlIL1RX?= =?utf-8?B?Umt4UUpjSmdScWNEaVZqQVhFUDZYMHNCZFJUNmFLTGM4YkptakhZSmMxYmhS?= =?utf-8?B?OVIyakovdEhRNFk2SWlTaEZLWFJ1RjJ2L0N1TWZ5b250QVh6MEY1S1lUeWtQ?= =?utf-8?B?T0trbkxYU2d0QnFlZGhwUWJNMjVpR2h1MTZtRVJacGVaQ1ZabE9BakVvcGpk?= =?utf-8?B?N3lWVzNMYUtUeWVwMWxvWGhEbkdjbTltR0pBd3dJL29GejQvMlJndkJQQ05v?= =?utf-8?Q?U+S+iWTk1+M=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;6:FBuRMm7HayktC9k2Dgw98/MlD0XVRba+5tvP06ii3pk8y3DfPqIv5PGP8UOoOdpH0SyIwdotY2kCWJoEYVVzdqIIHQZveZmhvFILAw96jW+bGeWjp5PxDtNo4GbIu9h6NAWlR9G1Der2hFHGBRHzQYyxiIjG6CFovaP/0d6sGAbTQuRBynKNxgGQxvABUyWpL0t7zCWZD3R7NhBT8Pa1n6rxOIU1YUkVXMuHlurkMybMbWZb4Z0s70IIR3JPDLy9hlSgOi4280QFEh7Sur2MPI52DQXpHtMHJeZYwqQ/T1bfv4R5XMLZEDzsDUM8TjunnpRoJQG6kD9Ne8JNTxDNrA==;5:bUpK7bLnLbCto0IoZjzHcf/aWlHTV2xhz0d84nlYG4xXt7a96qZx2ZfHZAFeqAOZfcEC+QJ4YfuZSBUmK7kJGOpeWktPRH+25zPl99k4zLLxJLNNi7F7IHgHVvIvp/c0TskUXpqiKJfZFTnr661QJQVkjjAHRHDzAr/b4aurwrU=;24:dzQ6BdI4EiWx13NblfvRr57Nu3mJWXORqBgpF3hVTLq9HJGNRRhAj4Rze1wAKsd0ChhDQ6PXdXYzrNYKOqdjkbBBMdTRu+9zo1V6dZ4ILXY=;7:GgXugrFHWjTMA3Go3kRmvKZ4Uqn/7NjC8dtcQCD5e4+ojGLxJ/5bogqN9FQZv0lAo1tqqKbYml2KCmYXz77pL8FmbMobXuKIrh85ScfmBjgGoJIvuWZTOyigTCZ6ar5AIEubYWwjSha5m6TiiXsrtjOHxdBwIgr6d37W0rGX92BtmSKGDSqUecqb0ibMRiStOiUD0FQAj0XuSXwSgXXYYpgi+KC3eoyMSdwnrMBK/ZA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;20:AXD0dgpU4GyvbaBGni2Mno/HvCP+BhmGIfUVESADQQM8IClBPch+gBEuPsgyf4nNDHmzWHIONrYZx31wTuHRPlZzPZfq8A0Wf9jT9fiVFDkgEvfn9xKgIaWsu3/eJTWSMWmwvHGOFU37Tp48I01owNf2dnk9PQejAkSCkUVJlIwe06V2t+M7LaiFY43u14gxu2aJfaUprJePkmHU+RDynpgEvqzDYAh8gZzBnvF3IEyg4xARyYYgTQZbtmMarpFL X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2017 19:57:08.1409 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0145 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/23/2017 04:20 AM, Borislav Petkov wrote: > On Thu, Oct 19, 2017 at 09:33:48PM -0500, Brijesh Singh wrote: >> +static int __sev_platform_init(struct sev_data_init *data, int *error) >> +{ >> + int rc = 0; >> + >> + mutex_lock(&fw_init_mutex); >> + >> + if (!fw_init_count) { > > I still don't like global semaphores. Can you get the status and check > for PSTATE.INIT state and do the init only if the platform is in > PSTATE.UNINIT? > 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. 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(). -Brijesh