From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2044.outbound.protection.outlook.com [40.107.220.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 671E678269 for ; Mon, 6 May 2024 13:14:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.44 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715001280; cv=fail; b=jCsie0p13TstHRmz5a0DDrnjmoo59ZHgpsllVnjMsm66+TU068lovUU5sF2vge7ojlrXllA2vnWmtGO6LJJNNq6m9ypGOrgULzEXK7+8eCLuxv9YsTWuIYW59KUXYdcJzEdp0QaGsGG5bC2kB1JFR10gQC/EsbeCpiBepq1Z4Os= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715001280; c=relaxed/simple; bh=TG62VMbMwH0mLZY2w0HC7eE2eYNBT9F/4AwpmV1wCBM=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=JWOMDj7uIiiD8nsDLl/sJRG0aPVHbHSw3vYNK6fL3iM9X+F8NZpdNTzv99+4fS+xxWKd7jS+WJqgjKs+LWkLgpejJ6nmP1skGkD4QWddFJ96Orp3tg17Ba2h3OyCqlZoaekbDtmOqzlyg0IpTm/WUX8cgbzQlApY7bX8qMgspHw= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=VT7Qe05R; arc=fail smtp.client-ip=40.107.220.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="VT7Qe05R" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AsHttmgvNfaePOim2E+u2VnqvPxXAfH7pLyxikJPeqDnNUey96zv+ElSanLmPjpQLnnFL+tpKP6I8bIZY9BZ9bjadWv4vt0LZoO86n7nvD3FftIv+65kD+0peZCVZ8ll9AcXvoKYwa2CKs2L8QAkv9MHoV0tH0UN5YtYPg1vnqhYchsWDny6b4RgXKUbp0FuepjAXPaKnMlsK5IRGSAO7vyRzxVivbYGuGIHHFh6LHOa+9d35mMUMtNKErJNlEoTFITkv11B1rgofb1ueMzQlh4Ixm6eidMjNOiL/Rpb6FNZddMUD4BT1LyuTwIVKjtUTvmAX2BxQK0j6nMERJdhAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7XQG40XabNpImRDVi1b8r4wGyjeiOhmI1/5Hexc0MbY=; b=bXl7dyF81h0wTeRjic752H6+sSq8LGucZHfCuzwDsFXnovxG2DAWx3+k6aXQlQni8DQ5kE4uZ7DfKwDHyZ6mb7d/n+C10q69ko/EJF2gq3MPhfhloMES7jTXG3VfGK+EfmiE28joOElzWt18Gqu5gGLN1BMpnMI/tU2xNnw5O6jk16lM/UrLhTbxW8uf5EJqTQCLvjxErh+tSaIw53MTMJKFY9WiXgw6gNcPh+CmNN2yhsI8uHcOfye+0hJSwAFPVXiI3OaXGk6Kacg6dk3E1nvs0pcpuuVdW0MQalvZa9cIV51QH9RZOr+hO7Z4JawsGt7VFzrLE3+mviZVViITtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7XQG40XabNpImRDVi1b8r4wGyjeiOhmI1/5Hexc0MbY=; b=VT7Qe05R0c7VJ37pL+BZEu6lPrSxBlE9l+l/6fJ/RDwYpyMXCb+avf6IWi6WNgj1CJDWNM7fBNAXR/ysOMGt3q8uDtKkuSRDRTuFf1EbcopT7wcr8UXHZlELj8xXRhOYSD/1hyuZP0ltkx/3xhvpH58GB7ylJ/LRQWv4OND3Or4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BL1PR12MB5732.namprd12.prod.outlook.com (2603:10b6:208:387::17) by SA1PR12MB6870.namprd12.prod.outlook.com (2603:10b6:806:25e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.42; Mon, 6 May 2024 13:14:37 +0000 Received: from BL1PR12MB5732.namprd12.prod.outlook.com ([fe80::bf0:d462:345b:dc52]) by BL1PR12MB5732.namprd12.prod.outlook.com ([fe80::bf0:d462:345b:dc52%7]) with mapi id 15.20.7544.041; Mon, 6 May 2024 13:14:37 +0000 Message-ID: Date: Mon, 6 May 2024 08:14:34 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v4 05/15] x86/sev: Use kernel provided SVSM Calling Areas To: Borislav Petkov Cc: linux-kernel@vger.kernel.org, x86@kernel.org, linux-coco@lists.linux.dev, svsm-devel@coconut-svsm.dev, Thomas Gleixner , Ingo Molnar , Dave Hansen , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Dan Williams , Michael Roth , Ashish Kalra References: <07266b47e749267ef9a9ccbc9e8e9df78ed54857.1713974291.git.thomas.lendacky@amd.com> <20240503103407.GSZjS9n-XMMKi5ZOek@fat_crate.local> <20240506100905.GFZjisQTQwbkv2eKsh@fat_crate.local> Content-Language: en-US From: Tom Lendacky In-Reply-To: <20240506100905.GFZjisQTQwbkv2eKsh@fat_crate.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SA1PR03CA0009.namprd03.prod.outlook.com (2603:10b6:806:2d3::20) To BL1PR12MB5732.namprd12.prod.outlook.com (2603:10b6:208:387::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL1PR12MB5732:EE_|SA1PR12MB6870:EE_ X-MS-Office365-Filtering-Correlation-Id: 86f1c35a-073d-4227-e24c-08dc6dce7aa6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|366007|1800799015|376005|7416005; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RVNUMDFXUExOZUc2ODR3QVVQaUJtazF5MzhZMXBPcFYzQnlLcThuTmM3dGla?= =?utf-8?B?bzBlVU9hYy93S0MrRnVVcXgwdW5qdnlIYS81R0sxR3J1dnJrRGNOVkh3RUJB?= =?utf-8?B?RGhOck1BaW5RTGwwZjBHWlgrek9iNjNNSTljWWtGS1lCZXlHQm9JSHFvMkVD?= =?utf-8?B?SzJBYkhVNG10VGpldUY0aVBQSi9jalFkZlN4MUN4VW9oaG5Xalp3YzJUdVYv?= =?utf-8?B?bk5JbU9sTGw2U2JkQ01yN2Y5NkdGMkFGNVBHbW8yMGYxcmVDSVQ4R2llSFBQ?= =?utf-8?B?am9xc3RRVk1LVmJBRThMM2tVY012L296blZGOWhmWTZyRFBuK0FjbUhyNnEy?= =?utf-8?B?M01FWDdzZ2dENlN4enIzeWNqbk0wMXRkdC80NllDZGFHdGdEWWVXZEIyeXg0?= =?utf-8?B?Z3FBaXh4TGtkaVJMMkdXSjBnN2VwVk9jT2xJS09QYUlOVmgzamgycjBhWHBy?= =?utf-8?B?d1lMSzVZbTUvOGZTQklUaHZVTElZRTVXenpsYnJxR1FlZGE0TFNPdkNCWWF6?= =?utf-8?B?SHhJWkppd0VxTVA5eUFZTWpRbzBnb2tZMzdxSXVGa0M3c1Q3eFFRem5hSWhl?= =?utf-8?B?TmZwdi9OMlBKR3FNNkVyNmN0dlpOblhlTTRjT1o0Uk1acS8vNG9SWWdZQTV2?= =?utf-8?B?SzdmSkJKZ09xRUlIbkkrU0Y3YlgvUThkUWdRcnJhU2hhcmh3T2p4VFY1ejB0?= =?utf-8?B?N1d0WHRJY1V1ZlNUaitpZkRnQWtsRlBzRGZtelNqWVZkUElKTnh5eS9ZL21q?= =?utf-8?B?d2hGY1I3WHN4Z1ZxTkVxSXp5N1hIeTg5SDg1dys0Sm1iMXRSS29kQW0yTk02?= =?utf-8?B?dG5jM3ZFZHpkZVZ2V0JrSVBWcEZ2aTJldmJuZSs3d2lEOERWWUk0WWZ1bXlI?= =?utf-8?B?OGRSbXJMdmk1dG5FZWs4dWNBTnlRMVpHYStGSjlMdVhKdURhTDdFZUlFQmtF?= =?utf-8?B?MFhwNDJ1UXBhYzZwaGJxU1p1NmZ4dFFBc2U3Smo2bi9ReG84ZElmajRYM1N3?= =?utf-8?B?UzFIU1NIVVNjOEM5NmIxZGRucVNqUkM1L2hOVjE3NlA2eUNUL1o5cUtjREdO?= =?utf-8?B?Y0hWU1l6dnh0SmkxeVNFNlFwWVVKNHFwQncyaFVQc1pFSEIrb3Uxa0ltSkRn?= =?utf-8?B?ejFtN1czUUZkNFp3Yi9kaGJJUXFSZXduMkRLdmczR1JVTUNUNm13c1pBN0ly?= =?utf-8?B?SDJQYUJzQlFmRTZKS3VaeG4wUThaZ3dzSlkwWFcxU3Yvdnpud0Q3dWMvZWE1?= =?utf-8?B?aVU1NlNndDl6UTZmcWF6NTBubmliaFc0dkFkWExPZDg4Zk9BNVJSV1BUTWpz?= =?utf-8?B?R2ZDbmFNWVgzQ001YnkwclZ3bC9BbktvWXR6LzhlTzdpeVhoNnU2bWtDbGZq?= =?utf-8?B?alRlZXRPZTViNFlDZW81NEVyTnNPcFJ0TUllSVMwWWtnQVpNS2FrNkRmYjJw?= =?utf-8?B?YU1JNFI5dWk0a0dUUjI3TEpVSDNvU0h4cjVaellFdzNIbmhNVHZnaGtMazRr?= =?utf-8?B?UWF0YkxtV09vR1JicGVtbnhQUy8rRGw5M2ZvT1lqbGMwNTZJdHUyeHljZFNo?= =?utf-8?B?QXU2SlU3WWw1TXg0YWxRR002Vk5EajhmMDZYVEJIbjllNXZzQTRJK3hsQ21G?= =?utf-8?B?dW52eGZLZnhzN0h1ZFNyUlN0akRoOFc5Z2tFa0g0NUpLWUpENjB4SlNETzht?= =?utf-8?B?TnFOK0R3enZlUVc1NDdncG94TVA2WWVxREhGK2J5b01VNkRNWVNBZ1dnPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5732.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005)(7416005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VzB6R04wWnJpTHZCemhmLzdaMjRKNUNzR2Z1NThZZnExeGUzTlU2SEl0cXls?= =?utf-8?B?ejFza2VEcUNzSjI2V2VEZ3RRckltdTZjYTZEbVJzK2Qza2JmVk40Z1dVNkZH?= =?utf-8?B?QkRBWlNwKzgwVEJTNzd3NFdZSFc2UDNOeFBmTWwyWHM3N0w2OXBJNlJ5MVRE?= =?utf-8?B?SDE3T1NndTF5MG9OUXJoOUpaaEwvVE5qT21iVy9XcTJOSTJhcktHOWREbVRY?= =?utf-8?B?YTRzTWRrenRLZ1NkUjlxUC9XZS90S2JSOC9XUFl1a1cxaW1OYS9Gb0cxaHhp?= =?utf-8?B?VVJjeFBUNFFlbmNxOGNKSEdlbHZIc01lUDU0K0FreTRHRUZvdnNnc2c4RzdP?= =?utf-8?B?a3g5TzVubFZrMytRV0ZEWXBrQWZuZktONEo3dnBROFdMSGNUanhxT0xTYUoy?= =?utf-8?B?end0a09CVnc3SkE2U0JkZHhUd3Awd0pCOVdvNU1JQVZycXNNSjNtUXEyUjdm?= =?utf-8?B?cGorY084M0N6dEZvaEhaYWF5NGdWRjJCa3RGZUNnZzBOSVc1eXpES2lZODFl?= =?utf-8?B?NXB4WkdEdjR6NENNd3FUN2dvNHJpNW01SHRNZmQ4WlBSTDhtZ3lvRUhZQWhj?= =?utf-8?B?b1NrR2h3YTQ2UUdQcmFsRnZta3hSdXNwcnNQN3I0U3I1a1M4SzluTU4wTGNR?= =?utf-8?B?Mk9xYWdQeDE2cXRVNUdrNjJpWnV0c2hESzNFRWNHTTdxcFdSRnZKN21VWmp3?= =?utf-8?B?SUFwdTQ5YjNCaVc5OXJMUVpudUZ5VzlyK3FQSDhpZm9iSVMxc05uZnRWVkNr?= =?utf-8?B?TmsvSlhHUi9sNFZuK1RqZVBKZmlWOHZZWjhuKzEvQmpSNzd0bzQwSm0xdm00?= =?utf-8?B?RVZuK2N2ZTRXVVo4VkE2dkw2ak8wMnJVWE8wemFKZUc1eGNpdjB0Mm1nNXhW?= =?utf-8?B?RWhrNUxibDEzR2JFeFhxK0lIdVhEandGQkkwTkpuNGhMejdIYU5Hb013YXZh?= =?utf-8?B?Zm9pcTd6dlpMcnFQcVJFRFJnMzJmR3I3eXlJZW5WWk8za0J1OFFaMWpmZ3lJ?= =?utf-8?B?NVlkVmZDVkY1eFFaWkJ0eDBHV296ZmIvRFJHSDhvSTdVeEZ2anV3TmZzRVIy?= =?utf-8?B?b0p0TXpjV0ZkM1dNdFNNMC95UFdqYTFIV254L3NvSVBtazM2WGUrdkROWmwv?= =?utf-8?B?WmE1MU16NXYyOElSc3lFZkRlenU4SWFNeXdxT1VydHFGdjc4bThKUEoycjFO?= =?utf-8?B?RzFJK01IYXFpazlrUFZKRTFReDh1OVE3UTBNSHhFYVNsSCtUbU9mdWNWdkhS?= =?utf-8?B?dWVQaGNnMklZUVBETmE2ZzRpVEFOWjBBbXlBM2tOdGVpbWFZeW5CQU85bVNK?= =?utf-8?B?UE45MFNwS2pvTHd5VVBvQ2lmQ0I2TWxabVhZaWVCbUg0TnJzMkc0Nmw2OUtu?= =?utf-8?B?Y0o4Vld0eFQ2Y0wxMmVsQ0hBa2hsVktVcDQ4MHBzQ1dKL3VyS0pHRmkrbzVi?= =?utf-8?B?d2pqRHEraXhuZEw5T2Y1UWFSV1pWVXpBRE5Ub1JMdXRJbSswcTR0aXI3b0Fp?= =?utf-8?B?SEw1QWpRWjNTQ0dJN1kvczJVMm1RU2Fha01DVmtWbkY0ajNIV0hSQ0kxWTRj?= =?utf-8?B?eVVqQk1LS1RXcTA3MXZWVmZJOG9RN1lVSGVuNnRDSUxHN3FKSEJCaG8wZmpo?= =?utf-8?B?WmpMb0JkZ0J2dTR0bHM0a24xSHBWNURRbDVNWFhZdjk0ZFRQa1lRTFN3RXEv?= =?utf-8?B?ckNkT1FtWVM5aFJKblpuOFBuN3FDQmxZNGVVU2RIZW9hVkYzeHdEM21FcXpY?= =?utf-8?B?Mld2am5FbHFwclM3OG53aUs1ZGdrMkYxK1pYem1wQXp3cVo0anJnaWtGcnc4?= =?utf-8?B?L2QxQ0w3czBHUm43eTNSSTFYQXRtV3Q5eGlCOXFGak9LcnZIcVowNmdwcDVD?= =?utf-8?B?d1VUOEFkbzkvbWNwUEN1MDlibDFMaHdSbjJnSzN0dkpxYVZGQlZHQk5VclNZ?= =?utf-8?B?YzNQSFJkckJQMDdzNDVxYWJsSno3OWhOZjdSNmo1VmxWTDgrTlR5TTVKaHVH?= =?utf-8?B?bXl3bktkaXZ4enowRGhkMDlGUGNjZWZuRzJvUUEwYlZqdWNzOGdNWElxQUtS?= =?utf-8?B?VlBhYzZqOWdlaWZPa2JtWHdLRDF3TXV4d1VXSkR4clN5ZkRWeHo2aDhZOGsz?= =?utf-8?Q?sbxv3NJWFgJy6btJzeHd846I/?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86f1c35a-073d-4227-e24c-08dc6dce7aa6 X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5732.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2024 13:14:37.0119 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8I+PvOb768xSm+0JBlnYIfroOsoYOYHM9amf1ArYx5/ynWbgUx0YtlOpD2MQPZFkLxAq2e3lCYr7bhpXdNYWpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6870 On 5/6/24 05:09, Borislav Petkov wrote: > Ok, > > I think this is very readable and clear what's going on: I'll test it out. > > static __always_inline void issue_svsm_call(struct svsm_call *call, u8 *pending) > { > register unsigned long rax asm("rax") = call->rax; > register unsigned long rcx asm("rcx") = call->rcx; > register unsigned long rdx asm("rdx") = call->rdx; > register unsigned long r8 asm("r8") = call->r8; > register unsigned long r9 asm("r9") = call->r9; > > call->caa->call_pending = 1; > > asm volatile("rep; vmmcall\n\t" > : "+r" (rax), "+r" (rcx), "+r" (rdx), "+r" (r8), "+r" (r9)); > > xchg(pending, 1); This isn't quite right. The xchg has to occur between pending and call->caa->call_pending. Thanks, Tom > > call->rax_out = rax; > call->rcx_out = rcx; > call->rdx_out = rdx; > call->r8_out = r8; > call->r9_out = r9; > } > > and the asm looks ok but the devil's in the detail. >