From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012062.outbound.protection.outlook.com [40.107.209.62]) (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 22609432E95 for ; Fri, 21 Aug 2026 14:40:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.62 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787323228; cv=fail; b=kDcVUJNRzsqxqzN7UCT2fEgd+kMWPjsD08536KodoywKC3/86ABcA9SQQbTBBrfL42r85mxbiHtWkYrkQ0fvjrzQVEJG2M9uqvxNSOQpxyE3XMjB5s02+nE5m6i7ZHLcJTEnuEy9fUtA65xZ2Psv2n884uHaY3DtTZx9A2RchxA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787323228; c=relaxed/simple; bh=M2Ix0nMuJD5G6MXkbHcgsE5vHF1Mb3rLDm8ROCm4+mM=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=fv6aANoWhGV8sTEv4O3c1VJEkGsmucb5gDA7aDekno6AtzBUasDkbEhproyY+Pq0TzLGbDaTom3MxMr02syKl06S9MauwY+kcHFfRR9br4HEDs9FrWLCPAZ/n9wENWCT48qQ6R9CpBVn0VWKkIbYgEU3eZDL7XcMgtePYdWk6oE= 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=zXABSiPu; arc=fail smtp.client-ip=40.107.209.62 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="zXABSiPu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KS3Nym9c1qAaGw8zAyo3maRNGktciZO/qPP2LRdFizbHq9pcZ5+rU84owGMKEPFtCfFrpZV3V/LqDHLFOgRfE+QT57q4fT/T45vuofFL5NmD+1P6EAN2K2lyavvrrae0mC7fs2JNJOyeyEvWs6tPa8484AfSz2dcPJW0V/HjYEvvDbQLDJA2JFkF4eixqc7qSHujXNH7PDtgFcTvtN4c4DILWUk4iOOiM0M9GozGXvMk11nM3xY4+cSCDYjlIKqI1t5iUg4HdTTfSWUnxgpcH6EyJnAbZvv+24AAHm/juCXyc8J9xVbkw3qTG7Xver56UmtNukVKjQAlQbkmY0FOwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=o5mSJMbx2NuR7SR8IXwIFQs121poAgQToB4SVyjhbNM=; b=UZsAhYhqWJPn01dylsPoeLUF1nhj6UOJCkAwLN7pD7OCByxquT4aEAUi8iw+deKwR1JykdflcJGMCivRS+WnyO2z+sU5TkLJ5LbLc6A1SVlHh6s04lQF6tODAZLYVlitfNKAfIMTeYr58cQW7KKdZXrierSop9CvGepxfQIVb+ONxRAD0IlwL/INDXgadYOJqqVMkXWI82EYWQFGwVWgcvDmG2kVFmuxivz5RQdsbC6/CMDCl2IyYMhIMFO4/YYcF44ifmg2Pud6knj2qk5Iltib7+PEEL712XYuTJZ0FwwVTasCf/iLwNvBfDKcBnFdpHmva9ku6iB/gpuyx3NIqA== 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=o5mSJMbx2NuR7SR8IXwIFQs121poAgQToB4SVyjhbNM=; b=zXABSiPu71kBN38LfXCaKAK9XnmD2c+W1PaA631w0/Y0m9kOvkRmJR+wo3fcIFlw6nnJnhgJWs0/NcRz/TaMb3iRHvypPI5o1R1lCvRlUmyILtLQAR4vUQFVwBuwOSIamHdsx8R1E7cqoaob9hp5lD5m8nURLJIDyQ+U1PL/nbU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from SN7PR12MB8131.namprd12.prod.outlook.com (2603:10b6:806:32d::12) by SA1PR12MB7128.namprd12.prod.outlook.com (2603:10b6:806:29c::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.11; Fri, 21 Aug 2026 14:40:18 +0000 Received: from SN7PR12MB8131.namprd12.prod.outlook.com ([fe80::c2dd:62c5:67fe:aa46]) by SN7PR12MB8131.namprd12.prod.outlook.com ([fe80::c2dd:62c5:67fe:aa46%4]) with mapi id 15.21.0339.007; Fri, 21 Aug 2026 14:40:17 +0000 Message-ID: Date: Fri, 21 Aug 2026 09:40:16 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/7] x86/apic: Add an SVSM APIC driver To: Melody Wang Cc: LKML , x86@kernel.org References: <7c4f962cb0c993f0cb136a9abcbd4f3e4759282c.1785375271.git.huibo.wang@amd.com> <0514ffca-89a3-42e9-bc30-50c317aa7bd9@amd.com> <1bd358fe-39f8-4a95-bf87-24a4a34d5b64@amd.com> <3829c69d-53f8-438d-a8cb-c49d6958c73f@amd.com> Content-Language: en-US From: Tom Lendacky Autocrypt: addr=thomas.lendacky@amd.com; keydata= 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 WiyqywZI5g== In-Reply-To: <3829c69d-53f8-438d-a8cb-c49d6958c73f@amd.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DS7PR03CA0045.namprd03.prod.outlook.com (2603:10b6:5:3b5::20) To SN7PR12MB8131.namprd12.prod.outlook.com (2603:10b6:806:32d::12) 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: SN7PR12MB8131:EE_|SA1PR12MB7128:EE_ X-MS-Office365-Filtering-Correlation-Id: 01e4963a-4855-4330-3ba7-08deff921ea3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|23010399003|366016|22082099003|18002099003|3023799007|56012099006|10067099003|4143699003|11063799006|5023799004|6133799003; X-Microsoft-Antispam-Message-Info: B8kRC3fbpRn+YiU/oLmskz5bqOsC4v4akvCFCttIhMYekQIwQeHZEU+JAvviP2/zObCeDd9VlgWGluESvzUXKWJIy0uUJstmt+aZoRHkDJeokkz5YWNLeGBltMXtkfroYiCsQPgFcxnkd/LvUCxZX9ErNs+tBJ8/vCZN4bFjw/5CPynu421DkDhxA8WKrw5l8FutrQbU4KUtk9OHUyFzaIkhd6YfX5EhBz3d5v32Rh+vQOTqN5R5v4u6Op3FmsuLZ5F9OylApr9tNusCyooSnfjkHJSiIZ5JtXsEVrDgsdPnp48c5S/cFF01ANWhqEvj3RapJ/AbbPcvcpSbs0EId46OrpBZUA3CKiBA9YD62ca9upQ/J43AStY4GcykCcqx6e2riDHKWs9pZtFf25evtGT8ttLMyzUhR3YJCQdXt+E2UV4HjMSa/PWo2YRik5uiugMSZbnIBA7GY1/8NnTRsiwz8rsWslFQIgLsSnp+39x5nPJB9pLqWFrlinpJUR6ISMbkAcbEksSmb+JUuJk6y7yG1rnKfTilq+xIjSxe4lDGOoTSdWLL3yDoRNk6vgRTR+hz6KI+yCW0aWkXUHuCkv4N2zUzR3UBkL41X7ZRoHILH2eekFBENInx6UWW5a8zfK+mjwsOzj1P1m37dnt6997QfnAWiIKEKnT9Ht99qJg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8131.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(23010399003)(366016)(22082099003)(18002099003)(3023799007)(56012099006)(10067099003)(4143699003)(11063799006)(5023799004)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RHRXZnF0Y1ZyM1paYjI0QldlcEgzSFVCNTBLMkpaZSsxbzlua1lQM0tZUm9r?= =?utf-8?B?Q3hjQTB3bHREbWt3Zmw1ZVBac1NOY3RCa2QrQ3dVQlYzem96MnUzSVhYTVdx?= =?utf-8?B?WFQ4MW9SYys0bnFmckd6ZEd4OVp0cDkvQ1o5QkZHbzUrZG1HREJ2N09IdlR4?= =?utf-8?B?aFVsRms0dzkxcXFMS1hKYnhpWlFtYThSeVhNV2M4cXo2eEtUSE5reWhrZGdF?= =?utf-8?B?TjBxaThOeGVXUG9oNVhRYXNvVThRaVhqV3VnMGkzOEdZcWZ4QzFCMFc1b1RG?= =?utf-8?B?YTBEeW10Z1VCQ3RVakh6YzVVZGhtbjlnaDhmZGdkT25jM0ZqWmptUnJxMzdO?= =?utf-8?B?VnpvMWxNOFU2RjdJczZwdzJjbmVRc05CUks2dnFNTElqejN4WnlBajZnV21O?= =?utf-8?B?YkJ3aXVwMCtUV2VtbzBIRnpFT3ZCbjdWRFNaemdwY0Ria3owMDZYWXJXVnJT?= =?utf-8?B?bEsvVkdCRWkwY2hhdlIwcXJDM2wzdURyN3lEZjBXWGpJRDM4NmR0eW5lcndR?= =?utf-8?B?dlVZNTZzNDZPWWJMb2VXY2J3MTZCZUJBMUVTZVE3MlA1SmtHR1R3UzB2bkJk?= =?utf-8?B?OFZyUzdmaGUzc3VEb3lVNlFLMm9UTjRpSENhRDVSWURBeThGVk5uM21WSWJM?= =?utf-8?B?N29ZT2F6ZFFwM1N0S2JxNERNaHNZNEVyM2VJWk9Hdms4RXVSUlNOMzJaNDRp?= =?utf-8?B?emkremcwbG8rdEtXVHRjeTR0ZGJUQ3pzQnArQnNudFh0R2xXN0liS0o1RWU0?= =?utf-8?B?ZUtRWEs3TXdGTCtmajBILzhiQ1l0SWRHRTFrQksyRytEd0JycUF5VjNnRCs1?= =?utf-8?B?cjF3dXJmM3dYQk1KT29Ya29yMlA0eVdiRndDck9DMkFtVzZJd2pNUjNHNHFm?= =?utf-8?B?cW9vYUhjL3haZjFSaTFmNGVXTDRTK1lmbFd4ME80OXhRM3FDUHd0UGZlRTNI?= =?utf-8?B?ZGYrcmRjMTlWRzFNK1JXUTZqYWJlMDdTcHV6c3VKV08ydFV4aXAvd1ZsNC9F?= =?utf-8?B?cjlpaGZyQktpTkRvdTlsR3FiUjBGNG9iQ0MvMU1hbzF0cFF1ZTJBSzlaNHpI?= =?utf-8?B?aVdSdWxVUlhDcGxxdVpyeHpndFNadWxxSWdkRm9EMWtXLzhjSisxMGFaZ1Rk?= =?utf-8?B?Tmt1NDFGRlhsZkpwUmZmWk1YTHV2NUdMOVE2V1Z0QnlicjYvY2RUVXBpcGZ4?= =?utf-8?B?OElhbWRCUVUrcmdVTUpOV0ZpQnIrMDhXQlI2eXJhdFRYT3BnQVJpUWh3dTV0?= =?utf-8?B?MkNLUXBDZkZIa1B2eXQ2VUlIK2JjMEpuMHRZWm5nVnRUOEovOExQdXdOQ1Q5?= =?utf-8?B?NzVINlArV3hURDczNXdOMG5XSTJtT3pyaU9jSjBKSFRjSk5ObG4yNWxiK1Va?= =?utf-8?B?WkluYzhkYS9kc1NkcHRwTW85dmRSQThiOXNSRkhUbVRJWjRlajZRUmd3UGpj?= =?utf-8?B?clF0ZkRwMFExenFuWGFKQVNyb01sMUFWdzZtakFBazhRemZzNE9NbFlSTW1G?= =?utf-8?B?RG9WZ2pDdDFlMlllUDhJZ1JCZjNUSmtXd1djWURzdHdzTHJZcC9iclM3eWVp?= =?utf-8?B?SGlQSGpKcDBMM3lNakM5Q1kyVUd3SlpYeUxUaUdtUGlUdTM2bHpYaElmQzVm?= =?utf-8?B?elg2Um4wN216bE1BTFVsQkoyMUgra0VEcEJpNVJuUnF1QVRYRVV0akNBNEoz?= =?utf-8?B?YlVkeDY4SFFtMUUyY2VkVUg1a1pXcGN0NldicWZtMDJVSWhXN3BnRnQzMG5T?= =?utf-8?B?WkRQblFEMUxyUFBpbk5rMGtMeDhvMHNPbnFETzVRc3R0eUJMSlhiSSttUXND?= =?utf-8?B?WkpwdXBWUnNkNXQ3YXYzWG9Da0phR2NIV0FPTVdETzJoTENuS1g1V3NJRjla?= =?utf-8?B?Z2dyL0E4cFhKRmNRL2JleHY0WlBZQUs5Q1FmOGlnelVhMEMxeFJQazZHUWdO?= =?utf-8?B?elVIb0xHRjBUOE1IZHZnOElDR1g3UUJFOVNaeE9heERjQ1NMWDQ4Q2k4Um5w?= =?utf-8?B?QzBzZUFETE1QeTl5Y3ZGbFkvVncvL0k1emVBQnRVNmUwajlDblVxNGhSdmtX?= =?utf-8?B?QmJVUi9Md041RTBjeTFxVGlEV3JvZFpocDczTVNlN21Oek4vWXdKQlBKNmNt?= =?utf-8?B?dGhjOXREbzFGRFh6YXBpUktGUzgra002OW10a2ZFTHcyL0IrYzBsYTViV3Rw?= =?utf-8?B?czlQQnR2ZC9ZUFJ1ZXhTUHI1SzJqMnN1S0JxTWNGdlJ3cWxQQUc2LzlJNXVr?= =?utf-8?B?R3ZzdFV5bmJWZ3hLOXdMVHQ3dG52dm9Gamd2L3JybWdjQTZMWExxT2NWUW5m?= =?utf-8?Q?b8fUmYB0a5QUFtBb7j?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01e4963a-4855-4330-3ba7-08deff921ea3 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8131.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2026 14:40:17.8852 (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: yXPS3hXmrUfT68GngvUFd+9T0NQVVtlPz56Ol/zyAhE4Z+7PpzsIH/W7SwtRtO7/4rNDtDEqkVmOmf2Nyi2Byw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7128 On 8/20/26 22:19, Melody Wang wrote: > Hi Tom, > > On 8/20/26 8:43 AM, Tom Lendacky wrote: >> Why not move svsm_get_caa() and svsm_perform_call_protocol() from >> internal.h then and make them available? Or create a callable function >> that lives in arch/x86/coco/sev/svsm.c that builds the svsm_call struct >> and performs the SVSM call? > > The current svsm_do_call() actually is a callable function living in arch/ > x86/coco/sev/svsm.c except it doesn't build the call struct inside. I feel > this way it is more clear. > > What would be the advantage of building the svsm call? Isolation of the svsm_call struct usage. Similar to what was done for the vTPM support (see snp_svsm_vtpm_send_command() and snp_svsm_vtpm_probe()). > >> Isn't that all that is needed? If the attribute is set none of the other >> injection methods can be used. If anything, you should terminate if >> alternate injection is enabled and you are running at VMPL0, because >> nothing can update the VMSA to set the injection/irq fields. > > Ok, agreed. > >> If the VMRUN fails because both are set, how can you possibly be running >> in the guest with both set? So I see no need to check for Secure AVIC. > > Do you mean there are already enough places to prevent this fault, so the > guest does not need to enforce it too? > > I feel it does not hurt to do it there too, in the probe function. That > belongs there anyway. Sure, it just seems unnecessary since Secure AVIC won't work if Alternate Injection is enabled. So giving it priority is meaningless. > >> What if the version of the SVSM that is running doesn't have the APIC >> emulation protocol? > > The Alternate Injection spec says: > > "The APIC Protocol is supported only as long as Alternate Injection is > enabled." > > To me, this reads like the APIC protocol is always there when Alternate > Injection is enabled so I can assume it's present in that case. > > So I don't need to query it. > > Or am I misreading the spec? Sure, you can assume that. The worst that will happen is your call will fail if the SVSM hasn't implemented the spec correctly. > >>> needed to query the APIC protocol now. In the future, when the SVSM code >>> changes with different set, we can adjust the guest code accordingly. >>> > >>>> The read and write are very similar. Can you have a common function that >>>> takes a reg paramter, value parameter (that is input and output), and a >>>> mode parameter (read/write) and then have small read and write functions? >>> >>> Yes, and Sashiko pointed that I need to prevent preemption for the caa >>> call, I agree with it, but I think I should prevent interrupts here - I >>> should do native_local_irq_save(), because there should not be any >>> interrupts during a caa call as those things are not reentrant. Thoughts? >> >> svsm_perform_call_protocol() already disables interrupts. > > The problem is in svsm_get_caa(), when the task is preempted and migrated > to a different CPU after fetching the per-CPU caa. Since this is > preemptible code, after migration it is already wrong. > > The hypercall will execute on the new CPU but use the original CPU's caa. > This was found by Sashiko's review, I think this is a problem, so I need > to disable preemption until svsm_perform_call_protocol() is finished. If that is the case, then the fix would be to move the setting of the CAA into the svsm_perform_call_protocol() function and just make that function external, which will eliminate the need for svsm_do_call(). You would be a pre-patch then for fixing all the callers of svsm_perform_call_protocol(). Thanks, Tom >