From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2068.outbound.protection.outlook.com [40.107.94.68]) (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 BE3E424466A; Tue, 10 Jun 2025 17:55:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578111; cv=fail; b=qPjRPXP+0vRhfp1ODTmasfTHToCy6oay9TlrjCDkXI8RPri8xDbrPxZ8clpyeZbqVC/aS8K7f2/bCvrXu+n80+DTF7/8TPh9lDnwWVpWBtnNEbq58WDxkS2SlABsODJcjv17TZ6cC23Iyw219xzalEDPWzf//uK1rfer6rOh2UU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578111; c=relaxed/simple; bh=yATbhCd/ZLkM6lpAY6V+PqxDgpjHS0hF9R4N99dTfGw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=khHqRz4iduLBG3vCne2g+eiNn9Z4d2Q6lB6rojg17aqAbqrIpF+3MSMScrxCzE1xd770WDOm/xRNodPgnRjlPHz3Z94qFwwp/gryMgU2DyKrj2Vh5u/d/8PtHjyjraJ+TD0AQpRxjn3HU6UlYVRC+3pYhemaWXqqMgNqi9n74OI= 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=2mACMpod; arc=fail smtp.client-ip=40.107.94.68 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="2mACMpod" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GU883FEJCsGr46hQVSkBolBcd8wWqg78qOPseTySllQz5VNteSkGkrd3nsQSUfcztzw/vn+tn+xcmhcg3t6ykEMpiOrutIR1UK2JhDdjRddTM1d7yLAunU4HXb9NOybC6RcDjfX4McAA7GExs8Up/aD0DrJtA553dVdXMA9/7gegaT2wOOdvUvk+HC02+QJ74cykoPSiXxM8bQzTCMNgP/8mD5r41QI07LQZgohu4bWXDFz5tOL4Ra01FRxa3RWLY8hHvVUSLfjVKYB90hVQfKcZ1Md4z4FOZRcD1OhRn51Emh05UxxBTIkX3CeBa16gg562Q56BIvbt9X8nBpIHtg== 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=VoSLRdJoJNmyByas8PvisEHRTSqbX1CxmP84uyARPF8=; b=BAh5Hhl/8xqsgwxDIML7Q8YdAWDrhDOdypHT3epkHab9xHyuMORuu/dENP5SlfDcPci3iGdAiq/sFbw+RMeskT/suwqlW5ySxIOGlFZIim6IfqHJEplxn8IEN0GJ8yh8XzMVBir/i0L7pcNBSgQxN6mEc8OIhaASUcJJUrH3O4OV04ndOAXcvCtOYsQ7ZpQQ7tKmihWH6MgUnvtgLvrfuqy9wv98IXuxjSEqhH8u1yynu3rY0l3NTdLb1O+rPuE9UeaXGnqpEQKPT/Xney6KWBCgLRyhRBoXjmy6QBQ9Eo04x0lf27PJLLi/enzKHo1rWEPKS+Z9AOtbh6ZW1+GWhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=VoSLRdJoJNmyByas8PvisEHRTSqbX1CxmP84uyARPF8=; b=2mACMpodv3I4sRdNG2ktgJGn+kAopa0ntEoDg+QjetTYV5AkxXgDBXXvWEwM1qNyGo9R2BpgIPncfer3WUT+77kkkNnEmF4o1T8QiFXFKc6U8Ecuscoy0pESVr8HYQ8NH3PA+MN1Nn7bktYtuLvHSLYBiy5WZL5ji7boiqnCLZ4= Received: from BN9PR03CA0303.namprd03.prod.outlook.com (2603:10b6:408:112::8) by DM6PR12MB4108.namprd12.prod.outlook.com (2603:10b6:5:220::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Tue, 10 Jun 2025 17:55:05 +0000 Received: from BN1PEPF0000468B.namprd05.prod.outlook.com (2603:10b6:408:112:cafe::d0) by BN9PR03CA0303.outlook.office365.com (2603:10b6:408:112::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 17:55:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN1PEPF0000468B.mail.protection.outlook.com (10.167.243.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:55:04 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:54:57 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 01/37] KVM: lapic: Remove __apic_test_and_{set|clear}_vector() Date: Tue, 10 Jun 2025 23:23:48 +0530 Message-ID: <20250610175424.209796-2-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0000468B:EE_|DM6PR12MB4108:EE_ X-MS-Office365-Filtering-Correlation-Id: 9792f7f9-187f-48cb-4363-08dda847ee0a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4iMSk5sW8La7hNelfK+0LWsp1f8NsdfF/BtYXrgL+VwK15WV9XaXr7Mle2om?= =?us-ascii?Q?5CmsJ35MLxXR8+6HB+bhITQTlyTz39ng9OGW5MxeAO9enRWn+dt6/P7/4euD?= =?us-ascii?Q?o7VR/49EMGg/DqVl2ZzyadFqqQhUY6ayQumscSq74Zf/GhACWMWD1gp1Gqhn?= =?us-ascii?Q?GzxInPipr200n+5GBWO20xH73cgOCzBTJvKgx/bne747AlOdEdziO6Pva3Hs?= =?us-ascii?Q?GU4twfFCYXBddv2qJIkzkX8ZSG65iJS2GYKZUI7rQCAdMjP6v7wNjyq/Yc6O?= =?us-ascii?Q?BscdJ2ddsOTjOFE47MevKaDEIIh7ny1Ate1/iKB0x1y10vO0b5FXjnACrUv4?= =?us-ascii?Q?N93KU1aN3MRyjKo6nBI9MzT1y/kqkcQ2yQ6/dieF3etV2d/WKOdyALUEghNw?= =?us-ascii?Q?cVI8KZO7CN3vKdDgFgF62nbutcntYz/fuixvHZBiz3cE9KLEZs+CftKsMqxn?= =?us-ascii?Q?HBk4Z2cUI4FUgHZKst0Ha7H9VquQXpmdR/RlIgxfvpC6zaoLMPYfv260gNNb?= =?us-ascii?Q?5jz+idd7jwmPiLcqyFPfo11wtfVTCUipcuKQ5slcKbvVlOiDGpLIJg1D6GOY?= =?us-ascii?Q?zu06y5Af1aZA5aCGyCkoKPMMU5zG6ojVpjmMvund4R+UWgeU22XpxTds1AnX?= =?us-ascii?Q?t2IIJ2U0XXrLHjEBSduARHgTNoTwZRtM4pEn9zoLBORYFtgEXaYNw/qfCRNc?= =?us-ascii?Q?nk1YxW0sPq/J5cjKRj2ch8p8BoiGvbG/ot4M5BXheeXoZQxWoHRY6xFtsLxI?= =?us-ascii?Q?YcaRWyZCQQ4WUPl2Yet4jGwyV3Ibv9IgRXpdgi2LLp32ayVMfkiHRqbXa+3n?= =?us-ascii?Q?OqPWT80QnUDpRCB6scapMrveWr/lpuImta1w/um80P5xoL7HPhzfs41a5w6u?= =?us-ascii?Q?a+MDD3Rk7cmoLGC0Qbw/NpBR6aMQ4t3Lltj5iBOV7TiW3yKSNVBODKuuACKY?= =?us-ascii?Q?6MzdwzUbRIT7fe8OssIQ1x6eBKt2C6FeVy4fmrmJghi53ZLt4HrdS7ryoLpV?= =?us-ascii?Q?FszNbKfxeC+JAAf3XxkrJTGLfoAMBXsi7hTl323zuS0eSr0dAgoSUDJamKQL?= =?us-ascii?Q?7me8UB9QvVYMuE5nT2OsBv4JT5y/EOLgr6dJRIsXcnJqnk3Y5yhD6+Jp7q4i?= =?us-ascii?Q?kB2bwnQRlvFhAKVHl2WvWng1zbeUmWZ6TCSQk83nMsOqsZ0r9Hle7vF+IrFo?= =?us-ascii?Q?Xc1aGogwJyO3UpfwkXXQLxVvb1xtNVOZMCU94aZXD0nUsplx1Dz+Yhkhkq6E?= =?us-ascii?Q?qYbYsEvi13YDEzMCEpqPTkRU2f2vHhlIgZqCVBOkMcRJHLQ1eqnAphYzb7IW?= =?us-ascii?Q?CQwKz5H+JSy9rlY86uOU1MR5O335FpWxU6e0j06KLCwGDMwBaQ5d3EtTHFiS?= =?us-ascii?Q?UAW/eh19oIeXrfPeJuYWzpoW49br8k2rVuwtVicLI8EL7HamSx1jMq+nrybk?= =?us-ascii?Q?KW2XtxgmJykwSDVMV8HymUactUG8j11f21sJrL4zQLbelpShr8Pi/TOtkHEZ?= =?us-ascii?Q?DDjokitSJjguwugUV2YmYDh+6jpE+ousTp7m?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:55:04.5844 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9792f7f9-187f-48cb-4363-08dda847ee0a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0000468B.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4108 Content-Type: text/plain; charset="utf-8" Remove __apic_test_and_set_vector() and __apic_test_and_clear_vector(), because the _only_ register that's safe to modify with a non-atomic operation is ISR, because KVM isn't running the vCPU, i.e. hardware can't service an IRQ or process an EOI for the relevant (virtual) APIC. No functional change intended. Suggested-by: Sean Christopherson [Neeraj: Add "inline" for apic_vector_to_isr()] Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 73418dc0ebb2..11e57f351ce5 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -125,16 +125,6 @@ bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int v= ector) apic_test_vector(vector, apic->regs + APIC_IRR); } =20 -static inline int __apic_test_and_set_vector(int vec, void *bitmap) -{ - return __test_and_set_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); -} - -static inline int __apic_test_and_clear_vector(int vec, void *bitmap) -{ - return __test_and_clear_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); -} - __read_mostly DEFINE_STATIC_KEY_FALSE(kvm_has_noapic_vcpu); EXPORT_SYMBOL_GPL(kvm_has_noapic_vcpu); =20 @@ -744,9 +734,14 @@ void kvm_apic_clear_irr(struct kvm_vcpu *vcpu, int vec) } EXPORT_SYMBOL_GPL(kvm_apic_clear_irr); =20 +static inline void *apic_vector_to_isr(int vec, struct kvm_lapic *apic) +{ + return apic->regs + APIC_ISR + REG_POS(vec); +} + static inline void apic_set_isr(int vec, struct kvm_lapic *apic) { - if (__apic_test_and_set_vector(vec, apic->regs + APIC_ISR)) + if (__test_and_set_bit(VEC_POS(vec), apic_vector_to_isr(vec, apic))) return; =20 /* @@ -789,7 +784,7 @@ static inline int apic_find_highest_isr(struct kvm_lapi= c *apic) =20 static inline void apic_clear_isr(int vec, struct kvm_lapic *apic) { - if (!__apic_test_and_clear_vector(vec, apic->regs + APIC_ISR)) + if (!__test_and_clear_bit(VEC_POS(vec), apic_vector_to_isr(vec, apic))) return; =20 /* --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2058.outbound.protection.outlook.com [40.107.100.58]) (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 AA42B2459D0; Tue, 10 Jun 2025 17:55:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578130; cv=fail; b=RbnMRvkWOgi57HqN3HTumANmyF9HdCs5vCIEAt+EbmeFQXh+SpxhXDtL2xXSfwDtn2C3hab3+xdx6PtEDNaQM+oZt7Od2JOpUcN+gQrRnL8gsFoEkwcW43S46B3qABQo5zE3PV+l1ZlLPce4JAfyLy0dXuYA9pF3u3wfs3PtbaI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578130; c=relaxed/simple; bh=6hUpNbw4kQGca0HO65zNPnjHuov0m7Tl39CYO1BrgY0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WzKPJiSulyoN6o8MCZ4KBYQJIcEsavlmCGvnzBDmVvBc/wNz6DSaPLna2OPFC9NdS3f0a66q0NRKKc6fVvZkeWiD6zvoneZe0I00hznnH0/cMaGUN7u6PcDsRcvXiQYZrbqXlrsgFpfMbPcnhXxISgjOvDwfhrQoeWOk0m3CeJY= 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=GOQ7SVVH; arc=fail smtp.client-ip=40.107.100.58 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="GOQ7SVVH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f4S00FtFGVecX+L+jS8bcX+hzgUPgImutdjJEsRbGHGlIeUklTo49hqDvsELn+JAyBWDIaKIE+q04CXejk2TxMFlSRmdm2krrLquZ9h/f+uW63XEVXbycBe/oRT5D9sT8ZZYHxGTYRXSftzRK/ApFDVqonDWu8ArNwvjkfOnAHE25rc4qTTsl5S1pmi0pjrZpJRAh1X7DgttM+w5y1geu6byRwZMdVwpA1IhM63P47wV2vwe/+kBGaJXO03BpL0p+Y5W3HuWviFb05T3EsUA4P3RfFeibgi0rkpUTw3lXNy/ruxnCJVEvGyYRtUi5AmtCnh3yM8KJhx8W2cs6T4uBQ== 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=/in8VR/+AmMU2RySINEbUXO9U4aEBbz5xNRGF0k6qcQ=; b=DXWjxz55DrHSr34X6BK+Ix4dHmMH8+9z69UbaZ7Einq7Ut6b6T8I6A72m3hM+WA5Ze4PTC+Wbuv3/d/rB3Wv9tFII0iKFc8nZnmuDvei15ZqISzs71yGkkfijgFa9QsAiMRSydyLBG2dKBc5fQuDESe5+xgnA2OpeTIckEfMOoQDbw4eFwuCMjHt/KJ5JwuIsv2kVOEQ6Jrrd/sh0NrCdc7lIMvPWF/9BXdQwJUQXMVSq7vCRySOMOQXpZGLfy07TlFzIIEpm0mzXQCA7TW2Kx3IlnjgCigec63tfrN9kVdShSnpCDirWzCbhNfW3f5F0qeZl1h37k0m7FaOFYSkSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=/in8VR/+AmMU2RySINEbUXO9U4aEBbz5xNRGF0k6qcQ=; b=GOQ7SVVHCq5dLQ734/RyevQCKB2Zqgz5QjCKSdB09Y+Rkdwi8aeyFBfWmskbe7MzTGkcBQ6DzcEezf462GJn2+b6XPjHfT8/Achx1BGvo5YQxlDZFde7lsLCpGy37l0vmFIaawte85mIT+3Z5EdllaSpYCBxtyZvAjdktFR8/Eg= Received: from BN0PR04CA0063.namprd04.prod.outlook.com (2603:10b6:408:ea::8) by PH8PR12MB7231.namprd12.prod.outlook.com (2603:10b6:510:225::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.39; Tue, 10 Jun 2025 17:55:25 +0000 Received: from BN1PEPF0000468E.namprd05.prod.outlook.com (2603:10b6:408:ea:cafe::28) by BN0PR04CA0063.outlook.office365.com (2603:10b6:408:ea::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.19 via Frontend Transport; Tue, 10 Jun 2025 17:55:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN1PEPF0000468E.mail.protection.outlook.com (10.167.243.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:55:24 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:55:17 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 02/37] KVM: lapic: Remove redundant parentheses around 'bitmap' Date: Tue, 10 Jun 2025 23:23:49 +0530 Message-ID: <20250610175424.209796-3-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0000468E:EE_|PH8PR12MB7231:EE_ X-MS-Office365-Filtering-Correlation-Id: 35313fe8-af80-49ae-4e0b-08dda847fa19 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?I8HKtDt6GXcq+5N3NhSbeo8xo3O+0tk2/t0UoI0m2M0IIhLjelxW04QFn1Iz?= =?us-ascii?Q?+4mJkGdcCGLmc/jVYfoLLoH9kIFJEtay0TPQpDrWdRhKK0g5jIXDiypex4MQ?= =?us-ascii?Q?xI2GtL/coLl9Dc0uqXXqw4s0fIuRuClsI+rI9VDE75MiOVRsCA+jK6dtZI4u?= =?us-ascii?Q?TrPsExkPAqAWNhkRYu6tNres/hU2YEEtFXZfNAKKb2SiND0QF7luGZE1lQ/r?= =?us-ascii?Q?S27J2+HS4XG/WlqfWxho7MxTcCESp2wVmgRfVKZuuRXnl0kRd4uEW7gUj+el?= =?us-ascii?Q?86DP0QpeLWTaE/eEY3agKI5H2VfLP9O0Te4av+cFmr6csI+lSPL+DvbbLFRN?= =?us-ascii?Q?A6DWJXPQcj+qaimAwVe2SL3aMbKcukeehQYRpmZJ/GprYWiye62e+pQNFHod?= =?us-ascii?Q?G+qLoOwO9TuxfieaCC9mvawsnl1hk3ou5BOqwCtSnxDcF2ReGN+qzkv5UB7E?= =?us-ascii?Q?ieortq3UgyLVjHiC8g3UyE5wRG8uZpBMnUKDqxvk+AX9WEX8OFrl1ZWlSfaH?= =?us-ascii?Q?21dPBVPqdoIKRDIB9HEyYtRMQnoiaAUZL+nLV8MIzZ3Nrc0hEuXdQ8GX4bdO?= =?us-ascii?Q?DaTAiOTNMNjCwtEZkaeTNUzb+d6UTR0vqMcfNia40Yxwz0MzPQMOWPFK8dNh?= =?us-ascii?Q?Gk5pXZFU3SBnFiERWKgcqt/7dcb/rrp9qpAoySvm+bL35RJTiTQqhhkJf/et?= =?us-ascii?Q?eMrFiL05D5YAySJ63HxMT6dgaio72VE+SmLSQxnTin4j7UH4p5jpbf/pr5sv?= =?us-ascii?Q?G/Uq4o/V0/NCL5k+wx+8lsyDkG7adnK8vACS8MnIwCfPxJNJ8SzcRwa2xT64?= =?us-ascii?Q?7bH/Rh+kaUsTUvlZH50HTtrcwo5qA6YwYodKoMMJvJoX8HwxpN+jpF5ieKkR?= =?us-ascii?Q?WhrMniIJgdw2rLXWCwy6hSfO2pakOuU8xQGyxn554LLzSb0yLYKlssq6ykCZ?= =?us-ascii?Q?8Y36bvikIHVh4diYO/KhVF5YBk+zza4y1oDtPI2ruMU0ABqQ+j3DdSVe1fla?= =?us-ascii?Q?Sw8Ubq8hq0rr3ofDrgSJPvDF/pv/bSG8Rp9Sst2eZud/GYlJ1L74ur+2BIBz?= =?us-ascii?Q?hFMT9o4fBwg1RfZlT2Xyb3cz0lcVdqrGwuPz+aZCQOjFMNKFWXG5/sHVHZlS?= =?us-ascii?Q?bojgDRK4De3l5RMGmFXn0W14ADxuk+T52fKy2peg/tXzOSIxj13SwrDl+34T?= =?us-ascii?Q?4uA23m1e75LmbDlhHZITg5weM/N5U6fYJFQxXAr9nNV+FqRHgXQ4i4G9bRPg?= =?us-ascii?Q?BQmdczm0tydTR+o7yNQp7IWxUrNof8jYiTLorpmW/RIARo7WCxqESEhQgwms?= =?us-ascii?Q?DYG4NQ+OLcGCR9XhtqYDAmV+YRUsTB8LinAbEIL7UUvR4mdTmikTK+zLDZUm?= =?us-ascii?Q?pFP/VkrqO0J6aDSP5mccRXYQJGFY9t0gjri1hK1wowKuQ63lcG61pmrwbh9I?= =?us-ascii?Q?ka11qxapcdm4+yKPJ+IQoSfJ16wQc0y5wmE/ZoO7jah/P8hgWfesuiYYE0Mq?= =?us-ascii?Q?Ty8cHvBXgrg/sylnL3x92X5QPIV0NhQ8tVXo?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:55:24.8154 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 35313fe8-af80-49ae-4e0b-08dda847fa19 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0000468E.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7231 Content-Type: text/plain; charset="utf-8" When doing pointer arithmetic in apic_test_vector() and kvm_lapic_{set|clear}_vector(), remove the unnecessary parentheses surrounding the 'bitmap' parameter. No functional change intended. Signed-off-by: Neeraj Upadhyay Reviewed-by: Borislav Petkov (AMD) --- Changes since v6: - Refactored and moved to the start of the series. arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/lapic.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 11e57f351ce5..aa645b5cf013 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -114,7 +114,7 @@ static __always_inline void kvm_lapic_set_reg64(struct = kvm_lapic *apic, =20 static inline int apic_test_vector(int vec, void *bitmap) { - return test_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); + return test_bit(VEC_POS(vec), bitmap + REG_POS(vec)); } =20 bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector) diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 4ce30db65828..1638a3da383a 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -150,12 +150,12 @@ u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *api= c); =20 static inline void kvm_lapic_clear_vector(int vec, void *bitmap) { - clear_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); + clear_bit(VEC_POS(vec), bitmap + REG_POS(vec)); } =20 static inline void kvm_lapic_set_vector(int vec, void *bitmap) { - set_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); + set_bit(VEC_POS(vec), bitmap + REG_POS(vec)); } =20 static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic) --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2048.outbound.protection.outlook.com [40.107.220.48]) (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 E8D852459E1; Tue, 10 Jun 2025 17:55:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578153; cv=fail; b=XeHbdFymGzzcOQZdq92rxXXUaYWORXTL9fk+A5omJxH4UsnaKUZ2M6DopYwuLqhxf0YAAre5LFqdvmG21lzHJtYIzgteJdBUGId6ngQt+H1jxQo2mI900IJZDW7U9mJMmL8sJiXWS2T8vVsRHmI8P88+qjoyNQ++n+Z1HOEF4ss= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578153; c=relaxed/simple; bh=OgSnmwKuZiiDjgpmYNa+XUqsa98lMqZnKqFOUMj+DFE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hSQrUZiHd4nR/LyHdEKjSfLqho0MMNeGo7YGEqH+VqjxKmuVbf6osJ/mTi/tC1Vj772IPWZ4RxwFywC0oGcskgR4sVMU1TvGvJgaLEBfkt6gtgWO9DnHS+yeWmxkz473HiTQ8k/c8kqWrM3Pu/uGap+iurgnMLzIFTuUCpEYOFI= 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=ohNO4abZ; arc=fail smtp.client-ip=40.107.220.48 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="ohNO4abZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f7VQgFVSiGqJ52xe4QJOqIb+gnoxleR14rfFkJBUpHLRY38zAr7C2L3C8jeCgt92MUImNlesvtf3nlMqCmoPvyXJqhCcMkJ3nNe9oXRGP8qT43lR97yxHdftugG2OZqIa2JPvvNyTuAIW4u7NJdRqqFQuOB771UMw/IZ3lZnJ95qlMiFllj79Xcsj/XOIT4vJzGDroAb0+xzwv2xkQIVStXo3SFyu/p4XdTB3yJBm50/G6/FenM3diZ20bbovx+3hblmau/QyIVVqX4yMuzyENkVUQHsAJLEsFPR+YsINNiR72ruszxYDDMI3m2PUFwVyflv4TnN5yswxOOJWvj/3w== 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=uEtlhVGCZW4iDAb0esxFI4R6mw8E/6Ngvccawx3ay+g=; b=DZwJ2wsa7n8paXU/VEkKFhz9qDYYWmN5ZbmRY4Kv71tm7Q2uNtU5cycJ5pZSUNzVX4kG0hNkUTiYyVSGugY7kxidN7J97SLaSOaiAw3P+Nv0B5f8+pszHs5oYszorBcWNlvA1O1gViQj82WfdOaF6kwOG1gqSFT7Qpfyf7rsl744BfcEFw9yp0ptmk5UhFO9WxhRwK5T9ELzm2Nqe9CeWGEiXDMk8Mo8/B+VGJXtN32/mnieniuT0MASFf+JEGT1G3GHCjRmOPr/rZyHWAl9eUF1m/PPCfw7EvNPyiZUMVqoR7mF4DGrlAqCuDJHPGF8pjF4VECFtdztsfC9zjCiUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=uEtlhVGCZW4iDAb0esxFI4R6mw8E/6Ngvccawx3ay+g=; b=ohNO4abZ3v0VN2GB6XqcLgdLkrSaqpKcxxsUhaHBlIvSVd2C4VWb9wcJrUcdQ/2XT2mUBdyoNWBe3vcdo41yj1akl9zqlVrWJxKaziTNcXE1xJrlZrS3ntngZKSApDcNnObs2nUFB1AXhns4XkM/UyqOR47+fHCENdwWqghQMRo= Received: from CH5PR04CA0001.namprd04.prod.outlook.com (2603:10b6:610:1f4::6) by SJ0PR12MB6879.namprd12.prod.outlook.com (2603:10b6:a03:484::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 17:55:46 +0000 Received: from CH1PEPF0000AD77.namprd04.prod.outlook.com (2603:10b6:610:1f4:cafe::e7) by CH5PR04CA0001.outlook.office365.com (2603:10b6:610:1f4::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 17:55:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD77.mail.protection.outlook.com (10.167.244.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:55:46 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:55:38 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 03/37] x86/apic: KVM: Deduplicate APIC vector => register+bit math Date: Tue, 10 Jun 2025 23:23:50 +0530 Message-ID: <20250610175424.209796-4-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD77:EE_|SJ0PR12MB6879:EE_ X-MS-Office365-Filtering-Correlation-Id: 39658930-78f2-452d-87a0-08dda84806dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hgrzSW3OFthh9HwB43cw0JjTflDvX5V4l8ozyG6dMR7IX+jwB6caWaQ4XDCB?= =?us-ascii?Q?JoUFg14anZfmFgZaqHymRoe/F638SQnt/c35kZrk8zwjz52Tk/1CGo1uae6I?= =?us-ascii?Q?mJIjcY1B8u2x1irkqmf91MPk1B3avwKDs8d0oq/cOEMFKFuS8FT6gdzOZbMt?= =?us-ascii?Q?7pQMXj3b+wTuXkYKG4doVpY+WHLocStdxcCUmASX7mlSA3ruegSLPh1eJ8tu?= =?us-ascii?Q?BjXtL7Ur5LRaoOsr5a1a48/lj2TLIJWhBgqiI/uKa5EvTptuahVyYhIOgVzv?= =?us-ascii?Q?bjItmv/w8M4FpE73/EnprPsbPbjr+Xw/KfXs+Ta0zJku5cRd03GOG3DAFD31?= =?us-ascii?Q?3dcamCkAShnyIujXZvvdfOo3lZUPaJEohLoXdkuOfCHLKIB7XxHhLpVC246f?= =?us-ascii?Q?jWhzAwLVsf1/7WIKP0rUNJmckZETEI6fObDEdqaylkNaqixtbNtD8SQL+f9f?= =?us-ascii?Q?QegBkL5UDAoKbJAtfo5WJh6t6ipTX6Y5BsqQFPL3AFzVJnJRArZPfiS0Xf/j?= =?us-ascii?Q?NanbTbMhyaAk/RNiAXqwDF/krdwmJUEhSylYgtlm7eS5i2VED7PYg9zRtftf?= =?us-ascii?Q?yl5h7d2zWHM1Z4KRMIgFEaBo835ALkM9XNQzDDcyVg+BsKHEsNN7ryE7jK4v?= =?us-ascii?Q?39Cp94JH6vHJ5veaLVJ4f60RAyAmPQRucSkONJVd9WasAvk+tKBuDfN/AY8t?= =?us-ascii?Q?YFnMTOE4swAzujUlCHSfeYtITlKNHGA1XuhmInCthX12kf0RkeQjocbO+CRV?= =?us-ascii?Q?RMl5cSxnsekFsDt0nfvpSZf7ms1bCeBz3Gkhi2lEVJPeAofes6gkhQd4Mjjy?= =?us-ascii?Q?+rV3y9lV5hexdGFx7xAU1nt2os2Rk5VEL/s0TENh2CWElqCAcsJ86LslrFZs?= =?us-ascii?Q?DJzMYTSqQVHPnZyvz7Tm8idCJHHK65Qf1qg9BnnP3kZa5w+Tp7NKUJOFN7SO?= =?us-ascii?Q?cXJ/ICzdDRFEylZGAoABhxcO+PFbNxj+SjiN3TnS8ctz1Fvg/L3sI5XkfYiX?= =?us-ascii?Q?7SbFD/zLKGPmIVpXc0dnVfkg1n5t0ItE0SmKItP2zvfsO4xrsKZ0x+uSiIuw?= =?us-ascii?Q?doNyqyuNWoeIaEGxJJkpNwcFmdanW1V4S5deThgCvu1B59ed8CsKXGjExKpW?= =?us-ascii?Q?aPPhLu+3gqHXR3gDnOQ6oNsbYtQleJCsFNAZU5+opdr4Xn8olHYfVtuQ8Lmo?= =?us-ascii?Q?cCoO2MaznMqdSdotAbCLizuebbGxyNRaLK6dQbdxdvRvRPAKsIpHTJFT/7lp?= =?us-ascii?Q?zMf1RFBhyEk237S3iS/MhXu/6dns+zRg2pdcJCNBECzA7TRb3jE7VOcZv6sY?= =?us-ascii?Q?9gzYSwj2A4rYrFOjqPx+WCKF7T35V3X8Yz8ZvkNDYtL8iN/lnOlCpxz0tBlY?= =?us-ascii?Q?K4hQSYlz9TWxvaXvpN/F2+o2xB+RN/2DqIdgkXC/P+YaW4uXOP/lXFimFVj2?= =?us-ascii?Q?K55IMvcTvX8B86RAFoxx45Hz/Oy52Y8n7z5QtVcfrT7TY0majPMz59JhH41D?= =?us-ascii?Q?maGDx141WyaqnY2vtgVzN0QggMcVjq/Nl1ae?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:55:46.2152 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 39658930-78f2-452d-87a0-08dda84806dc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD77.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6879 Content-Type: text/plain; charset="utf-8" From: Sean Christopherson Consolidate KVM's {REG,VEC}_POS() macros and lapic_vector_set_in_irr()'s open coded equivalent logic in anticipation of the kernel gaining more usage of vector =3D> reg+bit lookups. Use lapic_vector_set_in_irr()'s math as using divides for both the bit number and register offset makes it easier to connect the dots, and for at least one user, fixup_irqs(), "/ 32 * 0x10" generates ever so slightly better code with gcc-14 (shaves a whole 3 bytes from the code stream): ((v) >> 5) << 4: c1 ef 05 shr $0x5,%edi c1 e7 04 shl $0x4,%edi 81 c7 00 02 00 00 add $0x200,%edi (v) / 32 * 0x10: c1 ef 05 shr $0x5,%edi 83 c7 20 add $0x20,%edi c1 e7 04 shl $0x4,%edi Keep KVM's tersely named macros as "wrappers" to avoid unnecessary churn in KVM, and because the shorter names yield more readable code overall in KVM. The new macros type cast the vector parameter to "unsigned int". This is required from better code generation for cases where an "int" is passed to these macros in kvm code. int v; ((v) >> 5) << 4: c1 f8 05 sar $0x5,%eax c1 e0 04 shl $0x4,%eax ((v) / 32 * 0x10): 85 ff test %edi,%edi 8d 47 1f lea 0x1f(%rdi),%eax 0f 49 c7 cmovns %edi,%eax c1 f8 05 sar $0x5,%eax c1 e0 04 shl $0x4,%eax ((unsigned int)(v) / 32 * 0x10): c1 f8 05 sar $0x5,%eax c1 e0 04 shl $0x4,%eax (v) & (32 - 1): 89 f8 mov %edi,%eax 83 e0 1f and $0x1f,%eax (v) % 32 89 fa mov %edi,%edx c1 fa 1f sar $0x1f,%edx c1 ea 1b shr $0x1b,%edx 8d 04 17 lea (%rdi,%rdx,1),%eax 83 e0 1f and $0x1f,%eax 29 d0 sub %edx,%eax (unsigned int)(v) % 32: 89 f8 mov %edi,%eax 83 e0 1f and $0x1f,%eax Overall kvm.ko text size is impacted if "unsigned int" is not used. Bin Orig New (w/o unsigned int) New (w/ unsigned int) lapic.o 28580 28772 28580 kvm.o 670810 671002 670810 kvm.ko 708079 708271 708079 No functional change intended. Signed-off-by: Sean Christopherson [Neeraj: Type cast vec macro param to "unsigned int", provide data in commit log on "unsigned int" requirement] Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Added "unsigned int" type cast in the macro definitions. - Added details to the commit log. arch/x86/include/asm/apic.h | 7 +++++-- arch/x86/kvm/lapic.h | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 23d86c9750b9..c84d4e86fe4e 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -488,11 +488,14 @@ static inline void apic_setup_apic_calls(void) { } =20 extern void apic_ack_irq(struct irq_data *data); =20 +#define APIC_VECTOR_TO_BIT_NUMBER(v) ((unsigned int)(v) % 32) +#define APIC_VECTOR_TO_REG_OFFSET(v) ((unsigned int)(v) / 32 * 0x10) + static inline bool lapic_vector_set_in_irr(unsigned int vector) { - u32 irr =3D apic_read(APIC_IRR + (vector / 32 * 0x10)); + u32 irr =3D apic_read(APIC_IRR + APIC_VECTOR_TO_REG_OFFSET(vector)); =20 - return !!(irr & (1U << (vector % 32))); + return !!(irr & (1U << APIC_VECTOR_TO_BIT_NUMBER(vector))); } =20 static inline bool is_vector_pending(unsigned int vector) diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 1638a3da383a..56369d331bfc 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -145,8 +145,8 @@ void kvm_lapic_exit(void); =20 u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic); =20 -#define VEC_POS(v) ((v) & (32 - 1)) -#define REG_POS(v) (((v) >> 5) << 4) +#define VEC_POS(v) APIC_VECTOR_TO_BIT_NUMBER(v) +#define REG_POS(v) APIC_VECTOR_TO_REG_OFFSET(v) =20 static inline void kvm_lapic_clear_vector(int vec, void *bitmap) { --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2080.outbound.protection.outlook.com [40.107.244.80]) (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 7FFF424500E; Tue, 10 Jun 2025 17:56:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578172; cv=fail; b=IHrzUUQv+paOdCW/MdqB98VR5V0e32jb3g9+gtAshaXXcz5OBj7P/dfFJJyaSYAeadsbqD7Zd2EB5ZkkkuKgydhnfUJDexj9AGrxzHkPOMLor/8AdjgBiJcCub6SoHhVjs9P0VU60Qblt6pFxnDWZRiW6ivw9hsDlVddSPi75Ic= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578172; c=relaxed/simple; bh=oADmOfLMddxPBmgY/l60IeJSE5P0lckw7B9N9r0PQXk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OL0qcjzHSxTEq2g/zR6wjULxGARyTV2zDPPqV2WAq6v9gmyj3eRmaXtsdnWgmpva9FvjLCNHYf7iEkMT/rJuLeyC6vpZGKx1IU2xPnDfkpjt7G+x/0QKhFGH84t2+1jMXgtw1IxN4pm8+W3RZhqpv1ivL0kfs1Vsv7VAla4B+cw= 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=wi2CJgsi; arc=fail smtp.client-ip=40.107.244.80 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="wi2CJgsi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CZ/Z2hQfpj0MZCgux4rPW1fQWmF1+70ytbsHupS/y7oyi41rEN3wbIEg2XwO6ygV20qlreWmWD3LTCM0UNft47NjO7at9qIfKNi/geW1o0hY8dxvigGs4F2vwim7iT8hktfmJpK/ArBtE4FEdIrN51DJ0JO639InRgInVprubIrQHMcxB9ChDUu9QGxHzDK/QTPxJNm10ZvJUm1JUAwHrsiEHtCrb7hMvbx8kF3mAHRapsq2WhswaqaK5Qa4VwETsab8KVZb6dLty3quPEcwi5nmnlc3Ga/KGiLll06Z4wUzCYqa+zv8R92cmLoJk1ocdx2oISECxHxd3P5xv+QpfQ== 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=j1xpS0Sf3q282+l18y9kQV23vlMlYvmkoGmWSQiIh68=; b=lQHSRVhVshyCVUw+mMslsgCqF7i3YXUVJVLLPotTM/RCeu2cevfMkbwdnkuWjiurf5f8j+Lk4U6dza+A8paRUMQuXDZD7x/ufhn9/8+yZvtirgrmZuUSN1Ld6tsAtlvQvBTAVG3eEkekIIz0F4QyhOiRcOUrNAb/VSsPGgEUi1gPURI2vqqDFc8p2sbI/iFepc9pb2Z1YwSB4fEpGxCniavGDPp1a0fJvg3Zrua0X+hO+P8bXW6lyn59cMSggGCkqn8TpfOheyajqGbsUFjQql7jSWDtg11C9Rps5Ruf8Uky4BFuMLLW8Ue3x8xviifWuEosdzv8Hw70WI9Zud0pfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=j1xpS0Sf3q282+l18y9kQV23vlMlYvmkoGmWSQiIh68=; b=wi2CJgsi/7WhxysNrR8yRIR6ZZRCx/5cuJu0X10SHjudJyjKFYtFl7NpmF019jp6mrDJO5Wk5RZGYYvZnpkdePHZn5sF2K6A4z+i95zQMaUoXFbh+LnLB8Kt6zh7ewMb1ivclWl0I3PAqHQK9vlqSWXgkzSq34MRQK1bT+6v0Zo= Received: from CH0P220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:ef::23) by IA1PR12MB7735.namprd12.prod.outlook.com (2603:10b6:208:421::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 17:56:07 +0000 Received: from CH1PEPF0000AD74.namprd04.prod.outlook.com (2603:10b6:610:ef:cafe::b8) by CH0P220CA0009.outlook.office365.com (2603:10b6:610:ef::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 17:56:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD74.mail.protection.outlook.com (10.167.244.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:56:07 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:55:59 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 04/37] KVM: lapic: Rename VEC_POS/REG_POS macro usages Date: Tue, 10 Jun 2025 23:23:51 +0530 Message-ID: <20250610175424.209796-5-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD74:EE_|IA1PR12MB7735:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bcad86b-e703-4329-0c27-08dda8481382 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|82310400026|1800799024|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?K8qWVu7xAgDQyAyLm/G3IMHL612aXGV60GOtln49tKBNftg6Fwy+9N2VQaMD?= =?us-ascii?Q?17RZm3ilRCND+yC5+hRcD+PjzDDZYUFl181IHSdSPJ/kxel2CNl9GtDmZyas?= =?us-ascii?Q?28eHuGJxQTbXzd62PVb9Hm/CPZYFdZRGZGf1s0OdvnrUFeObVPLm01JfRtfg?= =?us-ascii?Q?U+AcGPMnethqZ5oPGhjrdi8Fwa5Fs8O73lWocjk0InbJrPj3TsxIZSVAke03?= =?us-ascii?Q?rLLmLHVN8OVh2A0q60Z3b9itjIk7Y08HWlZA6cBZ9aAgAcva7/0WG514pJE9?= =?us-ascii?Q?OsW9czBark1MhT3XIl687Xc7fhANYE9hLhLcVXQEuJPHCA5sKQ2UBjq6pI2R?= =?us-ascii?Q?WlftAFTGzH+gagl+h5oe3XA1TSzjEbjgLOM/dZm3GMdaSHhPpGeAUfFXneR2?= =?us-ascii?Q?YxemAKTys5BYcA55Ce4LFXRHhtfU90Bp0pcgDs7KMwYiNrcismJriWb3MZ+M?= =?us-ascii?Q?purgGuMLHIpjFgQcCFRvM9XgHHiMlZhIqaJ2Xx4MfOIRq9tBHjzX3idRbLBC?= =?us-ascii?Q?yVHYCT2xDJjuugEMkITViBWvSlOnu5G8n+8Z4u9t2gsr/sLGSU5osAKO1sRi?= =?us-ascii?Q?doOkIWHmA55eFZhGw48HTUvTkPcbEGRlVhm75NLHjNm+GY4l5MKESq5qZS4n?= =?us-ascii?Q?kP+PTAC+fnyFz7LZNrp6nItsQveIppqOPZAZBzRWZqzHLa/7ULntkubdYYMh?= =?us-ascii?Q?WY8nT0gPoeLUlc05/uXyuGTc/sRIU6IBY/U/aFKv9pv4QYnszkwHNzsMDuWF?= =?us-ascii?Q?sDNmoMiydHNJ3ppcuXACHY5SRaSGH7iFFbzYxjHfVqvSG/+ah566BwlT6UdU?= =?us-ascii?Q?4mybvbVAelEEjogdOfAWke6FA2AAaW5PoliHzn+qSqrxO+Ao/fDqOhBjHbKE?= =?us-ascii?Q?NWI8EjMs7UoTsOU6XOlI8JnKW963veIUQk1eKAxtJEf32zmwJJr38A1CpzCs?= =?us-ascii?Q?q6VpsaJcYcXyLopkwrDNlcURiBs2lTO7Zu/SgrQdfwmklahyd0VOqQNuw/q4?= =?us-ascii?Q?5lAozgz0hGJR1uS95WrgA7pw0uScWdeqqZ2o8pD90i23J1j+Hkfw6d/+VGAr?= =?us-ascii?Q?+EQjW8Sz+r4CrzF1M5SIogz7yPjScmf584MK9TitNBj6/+S3bgco7Q27A0Gd?= =?us-ascii?Q?K5RfK2shPIGvtnwoYatwxkwgF2OrKZrZuiqxXhzXbFB3vu770VNheqvxZJxT?= =?us-ascii?Q?68uWuFVYWL5KAJ8Vo1+ClR7isgIlX7I3K4RvoV7tFtekCBCuOEq8uUrR0RFK?= =?us-ascii?Q?9scuW45UyDY6glaX1AbyR3VmiCr9l+RHoZtXFHUO0TZ7lMXvmzIaNF31jsmc?= =?us-ascii?Q?bfCG4Z+qUZLFy2PnAbdKh5PxueRHN3Xfa6DdFsxZ7EKSIFcsI8B0GtxqiqeO?= =?us-ascii?Q?Uxpp3D5UtmvPIRN8VrBc9hZYniLhx9PfyzVvOadP64SZH/e7f3fo4wto6cu/?= =?us-ascii?Q?I+L2Z6FANC0inJ84TIlhtrLWJ9SEhWaq/8QCj2lEhVfKP6tHEkCsVsYp4hhI?= =?us-ascii?Q?TQo3yVXIExLmr3gByP5CvQ5V+wZWuwlBaJuJ?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:56:07.4344 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7bcad86b-e703-4329-0c27-08dda8481382 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD74.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7735 Content-Type: text/plain; charset="utf-8" In preparation for moving most of the KVM's lapic helpers which use VEC_POS/REG_POS macros to common apic header for use in Secure AVIC apic driver, rename all VEC_POS/REG_POS macro usages to APIC_VECTOR_TO_BIT_NUMBER/APIC_VECTOR_TO_REG_OFFSET and remove VEC_POS/REG_POS. While at it, clean up line wrap in find_highest_vector(). No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 15 +++++++-------- arch/x86/kvm/lapic.h | 7 ++----- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index aa645b5cf013..096db088d6b7 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -114,7 +114,7 @@ static __always_inline void kvm_lapic_set_reg64(struct = kvm_lapic *apic, =20 static inline int apic_test_vector(int vec, void *bitmap) { - return test_bit(VEC_POS(vec), bitmap + REG_POS(vec)); + return test_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_R= EG_OFFSET(vec)); } =20 bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector) @@ -621,9 +621,8 @@ static int find_highest_vector(void *bitmap) int vec; u32 *reg; =20 - for (vec =3D MAX_APIC_VECTOR - APIC_VECTORS_PER_REG; - vec >=3D 0; vec -=3D APIC_VECTORS_PER_REG) { - reg =3D bitmap + REG_POS(vec); + for (vec =3D MAX_APIC_VECTOR - APIC_VECTORS_PER_REG; vec >=3D 0; vec -=3D= APIC_VECTORS_PER_REG) { + reg =3D bitmap + APIC_VECTOR_TO_REG_OFFSET(vec); if (*reg) return __fls(*reg) + vec; } @@ -638,7 +637,7 @@ static u8 count_vectors(void *bitmap) u8 count =3D 0; =20 for (vec =3D 0; vec < MAX_APIC_VECTOR; vec +=3D APIC_VECTORS_PER_REG) { - reg =3D bitmap + REG_POS(vec); + reg =3D bitmap + APIC_VECTOR_TO_REG_OFFSET(vec); count +=3D hweight32(*reg); } =20 @@ -736,12 +735,12 @@ EXPORT_SYMBOL_GPL(kvm_apic_clear_irr); =20 static inline void *apic_vector_to_isr(int vec, struct kvm_lapic *apic) { - return apic->regs + APIC_ISR + REG_POS(vec); + return apic->regs + APIC_ISR + APIC_VECTOR_TO_REG_OFFSET(vec); } =20 static inline void apic_set_isr(int vec, struct kvm_lapic *apic) { - if (__test_and_set_bit(VEC_POS(vec), apic_vector_to_isr(vec, apic))) + if (__test_and_set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), apic_vector_to_isr= (vec, apic))) return; =20 /* @@ -784,7 +783,7 @@ static inline int apic_find_highest_isr(struct kvm_lapi= c *apic) =20 static inline void apic_clear_isr(int vec, struct kvm_lapic *apic) { - if (!__test_and_clear_bit(VEC_POS(vec), apic_vector_to_isr(vec, apic))) + if (!__test_and_clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), apic_vector_to_= isr(vec, apic))) return; =20 /* diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 56369d331bfc..eb9bda52948c 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -145,17 +145,14 @@ void kvm_lapic_exit(void); =20 u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic); =20 -#define VEC_POS(v) APIC_VECTOR_TO_BIT_NUMBER(v) -#define REG_POS(v) APIC_VECTOR_TO_REG_OFFSET(v) - static inline void kvm_lapic_clear_vector(int vec, void *bitmap) { - clear_bit(VEC_POS(vec), bitmap + REG_POS(vec)); + clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFF= SET(vec)); } =20 static inline void kvm_lapic_set_vector(int vec, void *bitmap) { - set_bit(VEC_POS(vec), bitmap + REG_POS(vec)); + set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSE= T(vec)); } =20 static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic) --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2049.outbound.protection.outlook.com [40.107.244.49]) (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 46969245028; Tue, 10 Jun 2025 17:56:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578197; cv=fail; b=CVnqOLquSKr9AuO+cceLl77OG1UmSmSRdBy4hvwnr8/tF7HNHCjy53hF01BFWMwzF/u/xJrHgT5Ii6AsXTpIJmK3Elb3bPETDya2JzsEzLVyxxwhHYTebwXxPAE779O0GCqIJeFUAdmNh8Bm2CiAjVpHrMZBaxVx3r5NTrhTe/k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578197; c=relaxed/simple; bh=+Iv6pb1VUktJUUZZV3eeBWm2HUIJUVegFDrnbRmxeaY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gR7uXAv/rc2eiGJ87UehQLS3vBZ16pzIleDXD+2fo+/SSeghZVb23KNqq3Tk1NSzWe+gDy70gth0BKlf7jeb3IRn4FXwjnbJ6wMJ1dKcn3r3jHYMucySCNY9rdPuDEwFJGNKZZETthw0S8EFPme13fb/loSobqvIDA5i2QvAm+w= 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=C5fiizCR; arc=fail smtp.client-ip=40.107.244.49 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="C5fiizCR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K8msASahqEZWqHkmljTCRiAkj2ufkzlS5c3fYO+NJs8zXK01kM+QYomJ9HmDMEnSnYgxiwSuvyMAgNgMo0lZvI3v3Mn73w2frfifNMwBZueBlRZUCNgf7p7Ne+SovoOIxJHUZCVBsg8bDofwZozbwi8bQJ0SOF/OnKYkJZeHZHm43ltmyQw4IAbJMghs3awXxG20WMA4tNXBFKJ5abspbSD2oyhaOy1yz8ypdinkVsMDvEuqRhUDID5aiX0CBqPT6QKstdP6fY9z19OmhPYRTsg26+fdu/2vX7ZiS6XtiDzVxCl8//vHZuYFML8wgqgfyzygBamlSnd57Tf3s1MtCg== 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=wBgwPSooq+6Fs/zPKxJqn9/m2JQj7FSM7mLP9mEuNe4=; b=xPO3D7lFxQJkg8eQslfTkH+8B0Mucma9MMabJUJLBb0a4hIwZWZP9xMrRHrigDV/WDNXIqi4q9pUudsQ11LcdpSHqXt/EA8p8KH3PTo1ypa2V7sT+agcGo+4afvzAjbC/90zIQA3yvBeayVx0Ol7/u//foKZKp7pvzH2r2Oo2fH7TyE93z3C4/l7p8jv/s5VSUFENnF6tAhwi9hrduwXEfUxA5dsiXRfNaWiGmkPllKpSOfraXWA3/Eh6ydiwHZaQbK59Pr/wFDze1W45gcn0tOCR1rhPUGLUUCQmQMbJicj4iFq+WRh1DrlCdWqjnPAo+I0rn921TjnmtkWgUevNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=wBgwPSooq+6Fs/zPKxJqn9/m2JQj7FSM7mLP9mEuNe4=; b=C5fiizCRXjxGETv4/fpkPeVgLpUz+qHuuDmYe53nXZVXASNlpNFRA8Vz7lVFf8s1toCdXkWYsFhGnaQIRyQ7maDrj5VX/Jlo/uQ/vfHFeDp0Avkef54pzs63mcQK8kfe2QxVRA82avETIjUZbX2wI9O0lmvgRSEHpZeV3Ob/cTA= Received: from CH5PR05CA0001.namprd05.prod.outlook.com (2603:10b6:610:1f0::19) by IA0PR12MB7750.namprd12.prod.outlook.com (2603:10b6:208:431::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 17:56:34 +0000 Received: from CH1PEPF0000AD76.namprd04.prod.outlook.com (2603:10b6:610:1f0:cafe::a0) by CH5PR05CA0001.outlook.office365.com (2603:10b6:610:1f0::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.18 via Frontend Transport; Tue, 10 Jun 2025 17:56:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD76.mail.protection.outlook.com (10.167.244.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:56:33 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:56:26 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 05/37] KVM: lapic: Change lapic regs base address to void pointer Date: Tue, 10 Jun 2025 23:23:52 +0530 Message-ID: <20250610175424.209796-6-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD76:EE_|IA0PR12MB7750:EE_ X-MS-Office365-Filtering-Correlation-Id: ed9d310e-866c-400c-9c2b-08dda848232f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HeeF/L2OYwceoDUzsg23jer0510EFEMwzXglwO5vOhWN5s/teAaSUac4RsWp?= =?us-ascii?Q?IkpZhWmUyDNvguvRRgdX5a19+DubBEFgLRIH6sID2nArwdDgnmkta5YJWx6B?= =?us-ascii?Q?1dOg97MlS9m7DVuQZti98vTsGeafbQdIyddjXTS61e4Qd2MeKrNCrdQU+ma6?= =?us-ascii?Q?w+3hSn8faq5r440GAGWLq+nqQ7nhfEg9KQXGgOZCidbcXYjmRzOWLxXddxku?= =?us-ascii?Q?mx4Qaon8hF/TaEwsuG7wswwiP52MytE0WYyw/q3AeGDOLD6+jTaipoQZ2c8x?= =?us-ascii?Q?exvc6qquOTjJXfEaU5G2O+DFESuZt93XOq3fohThNtN2+PIFBEolEx26NVMw?= =?us-ascii?Q?6Y0NNaaPwcBEP/dQ76FwjscWYzAYsntuBTpx/Wf/B4oACIPFZVJosOWPCG2L?= =?us-ascii?Q?UZS33FnYOQ1f5M0X3USlTwsW6FJk0vLPbbSfigMFG4XVyPZFPcAzg4tkpjOo?= =?us-ascii?Q?ysCqF+c4fbK1F6ISbm+OUkc4GJgwdz/0cVmvLuPfgqDTSato+4DW+p+fGmo4?= =?us-ascii?Q?FwvnRKcRoK3Rnc5INVhD75dioFPCQmZ4YOLJ3qEY3dITeRvVGktFUeYvMT4k?= =?us-ascii?Q?NwCqQeZQtiijySPnoPwCD74HXvoVEBkkG4gwPYjq4BlVma6Yl8D1lZuDT5wz?= =?us-ascii?Q?eQjK6AiDkfd+CqF4RtKNqHNtrmC/cVQbEV0RWmeAfj3BsKSm/SToKZQR1DY5?= =?us-ascii?Q?WFOCBQ+nof5d1g+LfWoZVHKgRshCYqZeL9cScKWlmPWrHKOQCc1B8R2LuUhT?= =?us-ascii?Q?F4YbZYE9skYshRvTvy2mrB8wkiRGXM/ANZfwdahKgN/8F8L9cMV9TQW6bkKh?= =?us-ascii?Q?/xe9KYbtVGvghRI0kG8tJC6o5qtbGfI4O0VFbfP4DY80jGaTw2qgHzCgt/ja?= =?us-ascii?Q?/cstfcdehAl97EYiUsYgWwMx+qO3zpCyITYSzcsEEmZa7DcYBtwx1JgamuM4?= =?us-ascii?Q?auhV04P+9+j1d1RZkk6uyMdwLG42FPlglhmql1jd3ejJGPlhC0MaasazmgQh?= =?us-ascii?Q?iCoe34q1Fu/oohXyGQtdOqSTwHqZbpJ4XsQWiB0b0T3qYvZE6GEGnW8+aak2?= =?us-ascii?Q?5lckr/af29ccj2aTs0tGSWFP5tkdDJktkeKy5ZcPQF1sADPCtPZv/PCwkJYA?= =?us-ascii?Q?JgkPTTHQ/C6ZwWC58CK2AOQMohj8KABbtu/CySa6fACdc1M2gkXNLd/nTTkH?= =?us-ascii?Q?DjnV9DS0ewO0gBKzNyav3v612eSaJyMvBS6Lr1C745Z/7Pcgq1WUcNZWBdlp?= =?us-ascii?Q?3TzHRzhmhGq1xs45UtvcHY5Nj6ZaAjdfeUf3nWpPfmid3i3QH1x5hXYL9exT?= =?us-ascii?Q?Q0mjnyMmcbmUPu+lxCDv902gL592Np8R4yqnhpRtxbLjbLDxr0O/qxiFoQqq?= =?us-ascii?Q?dbyO0A/jmbnE8agd/R3r/azJYAULq/xpm0h3ro+i/v/8+HwznYTKrcqU9w5I?= =?us-ascii?Q?KKsL3i2GhX8OvaJc3aNgKZNRu5EdsTzeNq4q9pyUvhAUi/sp6tywTZx84gY4?= =?us-ascii?Q?mZoikG1DHhW5UPAszOLZ9CI8AZz9U4mR2Mmc?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:56:33.7365 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed9d310e-866c-400c-9c2b-08dda848232f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD76.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7750 Content-Type: text/plain; charset="utf-8" Change lapic regs base address from "char *" to "void *" in KVM lapic's set/reg helper functions. Pointer arithmetic for "void *" and "char *" operate identically. With "void *" there is less of a chance of doing the wrong thing, e.g. neglecting to cast and reading a byte instead of the desired apic reg size. No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 6 +++--- arch/x86/kvm/lapic.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 096db088d6b7..27b246ee3ada 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -79,7 +79,7 @@ module_param(lapic_timer_advance, bool, 0444); static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data); static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data); =20 -static inline void __kvm_lapic_set_reg(char *regs, int reg_off, u32 val) +static inline void __kvm_lapic_set_reg(void *regs, int reg_off, u32 val) { *((u32 *) (regs + reg_off)) =3D val; } @@ -89,7 +89,7 @@ static inline void kvm_lapic_set_reg(struct kvm_lapic *ap= ic, int reg_off, u32 va __kvm_lapic_set_reg(apic->regs, reg_off, val); } =20 -static __always_inline u64 __kvm_lapic_get_reg64(char *regs, int reg) +static __always_inline u64 __kvm_lapic_get_reg64(void *regs, int reg) { BUILD_BUG_ON(reg !=3D APIC_ICR); return *((u64 *) (regs + reg)); @@ -100,7 +100,7 @@ static __always_inline u64 kvm_lapic_get_reg64(struct k= vm_lapic *apic, int reg) return __kvm_lapic_get_reg64(apic->regs, reg); } =20 -static __always_inline void __kvm_lapic_set_reg64(char *regs, int reg, u64= val) +static __always_inline void __kvm_lapic_set_reg64(void *regs, int reg, u64= val) { BUILD_BUG_ON(reg !=3D APIC_ICR); *((u64 *) (regs + reg)) =3D val; diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index eb9bda52948c..7ce89bf0b974 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -165,7 +165,7 @@ static inline void kvm_lapic_set_irr(int vec, struct kv= m_lapic *apic) apic->irr_pending =3D true; } =20 -static inline u32 __kvm_lapic_get_reg(char *regs, int reg_off) +static inline u32 __kvm_lapic_get_reg(void *regs, int reg_off) { return *((u32 *) (regs + reg_off)); } --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2075.outbound.protection.outlook.com [40.107.220.75]) (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 3A01F239E9C; Tue, 10 Jun 2025 17:56:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578220; cv=fail; b=osGmhvW2rtSw+qTfcumeOGDxQPPwq/ra1Et/JLJwRrXZPgSf/sooLv+Kcj/KdPaUNglhHeFCwadRyabdhdpSJFa3y6q3XqUH71e+hlMhB1d1Io4h3cdHzbzgt10UoyjeMDH6cS24pH+v9wZNNCTXmgx8R3IKUYGB+y0nly9nrxk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578220; c=relaxed/simple; bh=rnnWcM9BSBf98ggPp5LKIjr1qaHvUIoXysni+KR75rA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oIgWgR2IcSN7NRSXWODJf8ybdQFUgkwxL3UD5U1FVJm53MRZghVm3qYZbPTtA8exWm2M+xefeby8WS+X7yj7yGzVSeICNSOOLLZuqZWtkqm3xTWNdgY6HrC/9Ydk+yJcQKJZEgybCQ3k2F+1VmpA1y3xatq5mnJamYiJP/t4Hcw= 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=LoT4prj4; arc=fail smtp.client-ip=40.107.220.75 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="LoT4prj4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZUGx0XqlDp+9F8Mf9cj9VDd7FG2xQRpy/xje5Lz+qhaIpGn7CKdknMbg5EUX7Zzevik9UKXdG3TXdX1zOkg2dOeTWOLHOZ5qF3zXpDqjQcoYQpDXKe37sJbfUG+ai1V7BOU3vjKR0aTZwy/KJ+hneopUBH74tSzpG/dSlnbTsJgMgE6S5iVVmJ984btXAztkFi3jsSe4ZDig3TS390rlBQ2/wgcW+d5n+rvuF4ETb8E3jhwqkmfw99LnyPngaE43RQGFrJqeE1NIjDaKw+jyZT0MeDIV/kzo9QJ6MMU4+ufjKT2xmTpOLm8TOKObdvs5BGlDWkLYv3qupBq0YlIn+w== 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=4T7Yzah1vQZPCeayMP28M4iN3sYiFOKN+jNH67d86tE=; b=pm/5nc3aQvDYuO5LdiXJCceg7qJLmuljU+wJz6xzEyGWrVWipo1GjZL4vYAwmX8Fnyrz7ShAcurzc2Z2tgOZvXGGML2j5ij5sdDAn1AqOA7jhL/nDRVeQ35ceaaIVmCs+SJku0Z8UhgZXFz94BoKSHVc8c3TYvWnehFhp3XJobSq7JpQ+NpbP92hrjjETrtOKNmgMgj+dwEJUyJezWCKjiPi4hEHFIQ8neZjY3+V2SNUiJehFvKfBHqnGaKqjFWw0XHUrNkW95ayEz/9H5CNhjGzZkdwJ/nyrw0TeEODFa7lE0vtv4sstb0ntlHjvbAPPBccON1uOOLqdF+vUu/j0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=4T7Yzah1vQZPCeayMP28M4iN3sYiFOKN+jNH67d86tE=; b=LoT4prj4IkZV5ccBDZ0c3CWXvoWY4IJVP3OP4oDYo3Yv1xyRE5WJMPP9dlziFtVHLORwk1OGrqi9McU6mxCxTWb4Tm4HGEUqP/zDAsHiwbnRDGcMY0NtD/pnipJxzHZRW05dc+uOWBHJeFMoUqDtdPScSZ2pnt6L1QOQl80Ee1Y= Received: from CH2PR03CA0028.namprd03.prod.outlook.com (2603:10b6:610:59::38) by SJ1PR12MB6147.namprd12.prod.outlook.com (2603:10b6:a03:45a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.35; Tue, 10 Jun 2025 17:56:55 +0000 Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com (2603:10b6:610:59:cafe::81) by CH2PR03CA0028.outlook.office365.com (2603:10b6:610:59::38) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8746.31 via Frontend Transport; Tue, 10 Jun 2025 17:56:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:56:54 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:56:47 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 06/37] KVM: lapic: Rename find_highest_vector() Date: Tue, 10 Jun 2025 23:23:53 +0530 Message-ID: <20250610175424.209796-7-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD78:EE_|SJ1PR12MB6147:EE_ X-MS-Office365-Filtering-Correlation-Id: d8bb476a-ce3f-498e-d058-08dda8482fd6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?8W/Xj3v54ULgm8fvwilWCfp/Kk+x91jit/p/9CMYIeDhPWS5yHFvtq4aTOiI?= =?us-ascii?Q?5apTOarp/6CJ58nBw1/Q8UWVc2EEfDfLm7lnx7US4by0XXMrp58BkhMJvs0k?= =?us-ascii?Q?serXVXEXJ0tepo1bHe/XeRszJFK7J9dBrBVwCIWt1q0f/o+rkwDgiVi4EZcg?= =?us-ascii?Q?O2j28gpkKkvy7WwjICm5DhfJhH0ocbAucnb0aQsJLDwgn112IhJemIZi6sOb?= =?us-ascii?Q?12PgYR64MSwLNvf2KN0r440W9yjjqOyKLgt/Y7vEhr8CUltoiojXTKTiczPa?= =?us-ascii?Q?e0CUEUBqkwplpLQDAhpgvxMf1Cd5qjN0yMQAKvM2FT+wvqVTjP7TAYvCzGom?= =?us-ascii?Q?Tf5zPYsnLWII0B4KZLS4pDsPyP8SKi6urDcIfoiNLz4l8eUosCbAyrhWlIkT?= =?us-ascii?Q?xDhliJ6cTXTShbbqTTY67KpInQm/pug8YhVQ685f+3OISxJW4nqfeiwl3Opl?= =?us-ascii?Q?slfqgCy5vw1WLUbdashbjqRiKlVz1p1E3mjkzW28CWGjbxcch1LhwkkJIPMm?= =?us-ascii?Q?8old7C0IJofoX5o59ieWhuVL17FTI992rGzKUlw1SPF4sfEBU2ALnX5OJrMm?= =?us-ascii?Q?HpQfTHw1v7gDKQ+8OaBic6PpoVILeq+V5s+wPAQ42H9MRkbsy8yTjqao61v5?= =?us-ascii?Q?CpVIuosPyWlIg/MEV9dJFqtk3puVZS14DrM1+GEzL91zETURirloiYtxoMij?= =?us-ascii?Q?zKp7VGc0D3ysesvpmKFhzjkuHVomAJaQDHI7jWXLBzKWjv4XdpfNACpKb+YJ?= =?us-ascii?Q?OIIflZcX2CB3lfyqKHnDgusAVlK6uZcYSZwpTorCDNPt+8yzQoBXs4wt3Yz8?= =?us-ascii?Q?kIVNSAvpEfX3xpDMthtU93y49/MSmBo787EjsF/ehS/9cGgVjSJTSGacTsOr?= =?us-ascii?Q?yPtfRa1mMmqeN6AYN1bzN/QR73So4FEcj26GFyyeDTk6G895CCst50MOOfna?= =?us-ascii?Q?Ali7dAmXeBE5+V+aMFj5dDfizhnUdyW9SIxg+cbeBXEilOMerLtBn9Ut0Jvg?= =?us-ascii?Q?ODsI/+y3lv1hhdodHosVIEqgolvZ58DgVc7Q1nbtuqv1dGMXgr874Ef6pcGU?= =?us-ascii?Q?RaunYm03G8bV7U0NT2N7TboRjI9i/bL15alnIoPcBIeI0eFevH15JBLHq6bk?= =?us-ascii?Q?MfFSbMmvR3oPNVUKJlF+sOmGZJJShR33s1ie0hmZYdf56ITy0lbXp4I/VaZS?= =?us-ascii?Q?/IAWXTmY/pg8Rygpqu6zpC43GqkqPTHQuSBirFMWC/OMqUUSnBC0ps1uu6Pj?= =?us-ascii?Q?CoU/xIO6XZqT7C8UWEX9tZ/j2bQr7Od5xroR5c8J8YoduDDcBKCOCtB33ory?= =?us-ascii?Q?OXxdGoqY3pJ5H7cbYef7oIDJ3GAPpEh5a4rZ4S8QNxdJ/HvEWQp62oCCgTid?= =?us-ascii?Q?isHrrPZGw/7EDxw3Jnh1GKYqRKgJDNzs5xvBQQPM3+5bWfE5j3iP0y5oQuM8?= =?us-ascii?Q?NveuRgCsHtUULiXBsiboPpKbekuNQY4s851j9hnt5J9VIBWxtgsbkAzPWjsI?= =?us-ascii?Q?Oh53F3poTAoX1LWzu/yRtsVPvsACXfhP1Nca?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:56:54.9605 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d8bb476a-ce3f-498e-d058-08dda8482fd6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD78.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6147 Content-Type: text/plain; charset="utf-8" In preparation for moving kvm-internal find_highest_vector() to apic.h for use in Secure AVIC apic driver, rename find_highest_vector() to apic_find_highest_vector(), to signify that it is part of apic api. No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 27b246ee3ada..d168b5659a4f 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -616,7 +616,7 @@ static const unsigned int apic_lvt_mask[KVM_APIC_MAX_NR= _LVT_ENTRIES] =3D { [LVT_CMCI] =3D LVT_MASK | APIC_MODE_MASK }; =20 -static int find_highest_vector(void *bitmap) +static int apic_find_highest_vector(void *bitmap) { int vec; u32 *reg; @@ -695,7 +695,7 @@ EXPORT_SYMBOL_GPL(kvm_apic_update_irr); =20 static inline int apic_search_irr(struct kvm_lapic *apic) { - return find_highest_vector(apic->regs + APIC_IRR); + return apic_find_highest_vector(apic->regs + APIC_IRR); } =20 static inline int apic_find_highest_irr(struct kvm_lapic *apic) @@ -775,7 +775,7 @@ static inline int apic_find_highest_isr(struct kvm_lapi= c *apic) if (likely(apic->highest_isr_cache !=3D -1)) return apic->highest_isr_cache; =20 - result =3D find_highest_vector(apic->regs + APIC_ISR); + result =3D apic_find_highest_vector(apic->regs + APIC_ISR); ASSERT(result =3D=3D -1 || result >=3D 16); =20 return result; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2045.outbound.protection.outlook.com [40.107.93.45]) (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 8EA4B24500E; Tue, 10 Jun 2025 17:57:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578244; cv=fail; b=nE6fbdWMHzsXZ4ajwGOaMPW1h+JqeA+Lay0WsPyTF/sGhpW8dpBAAHrjj+3u3iWFgu8bwETEsakh65jqx/EAtHFrx5nW05eBU9xN05DDCI0oKJGyVql1TCoE4/i3cDjpCk2rgR+Z2pHGrzKvR49LlKEMKyEenqSiJSErlEYT56c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578244; c=relaxed/simple; bh=iED+QB3PJAqIvuKWlR/hab6oyvOeRjasq5nyy6/Bwn0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=b4kFEQ6/XPJ1Im1bmIXXroibcohzMgyxg9nZs144vRUu4870TkFora/MlGLFtC6FnkjYVaVYwJEt+qW43SQwSqITh7vwuDDw1oMpBw5hX8dpji/XVKKD9ezbXdCMYBzghcglvOExSjbr3rNtlpw40+2XvKPvJs8VQrUJxEanvYo= 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=UxVC2oFh; arc=fail smtp.client-ip=40.107.93.45 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="UxVC2oFh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=koujEadI7gsKkZiacZohFn8Hg24UX8EyvhxFFPbJcd4f3Ee4qlY+1h1G0W21CUYpcNH5upKSXoaUz4aV+WyQoZydoIhcirhw1XVh+HTWxkzYRCHT12ma2b4lkvOBeOgbAUSBbe8reUvKon8kHFNnMAoheIH5Gj6uhnfUtkPD95v/dLiFdRyQyM/fGXvDrKJZ98SVCG50MDromDnrrcGf4P1m/hxvuDptlqO63tEtEaELc91phXXZyxaONGM3Nd0VNC2KTFNKqzqj8JBxXgQRM7Rv1a7izVgmEMQAVbTRfrT8LVhRUTuaga8MwLbcxKr+Jvgsnz2xZHJGWy0RAAPVIQ== 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=zgL2IvzceWYrHBiYUvDgLzH+IbjBWZ/amAjG5cw4AKk=; b=gXk4Q9kecKyfCgmeYlIkVbfdxSNBCKmfuQw06Du/f7TjpyaX1f+C6H03IlvlnDVBVMwc+Iv6sSb4wVtQLepbs/Ojw25wiiwAcTahiacNFFzKOlsz6d/Vp97suqukLVNOsA7dKdT2Kgw/bYLG+Rtl88WY8vP96YY21To83UZvMebtf6mxx+HS4nHawg+/fzwkDgNVnRVArNYz9p0b72NzUe7Gwp7huWdhIh48zojgr2CV71hq8mZ72rv11GPlforHVmghGw2azfczKcxKPyKAyaiVgjnTslVbWRLKjBzl3Sb0SQ1IroHTVQGfYdGUvV5Fq8F6ZSbZqm4tz0Qj3fKLQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=zgL2IvzceWYrHBiYUvDgLzH+IbjBWZ/amAjG5cw4AKk=; b=UxVC2oFh5/1b+VZ7LPkYxCdtc/ue6oGjl6jI+0a+WimSnNADrYqnhU5sJfzmT5LZP9flDzBYSnnKW4Sw2CMjmiLlRXS1ruKLyDxsztAnNPfeQbjlUqfTN78bpreOMTxrVuScBlimOGw0IqiRKNl9I8OdiGPFD1RsespKlvnuTe4= Received: from CH2PR03CA0027.namprd03.prod.outlook.com (2603:10b6:610:59::37) by BY5PR12MB4180.namprd12.prod.outlook.com (2603:10b6:a03:213::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Tue, 10 Jun 2025 17:57:16 +0000 Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com (2603:10b6:610:59:cafe::5c) by CH2PR03CA0027.outlook.office365.com (2603:10b6:610:59::37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.18 via Frontend Transport; Tue, 10 Jun 2025 17:57:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:57:16 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:57:08 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 07/37] KVM: lapic: Rename lapic get/set_reg() helpers Date: Tue, 10 Jun 2025 23:23:54 +0530 Message-ID: <20250610175424.209796-8-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD78:EE_|BY5PR12MB4180:EE_ X-MS-Office365-Filtering-Correlation-Id: 0f1f9c88-0e26-4377-bead-08dda8483cc7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?POn6LEgrICVnRXo8oclwuO0USdt6sHGDYTEbajvZna9HMOJ/nBZQ24qF5y7B?= =?us-ascii?Q?F766c9q9U05oQ5VVNIbjPfXpzrnwRtMVQFYIwiIpX+EpsIbX4fb/vGjZCieb?= =?us-ascii?Q?g8UAsZhPBPktNmiqy8erjE1oZhZRC9uchpTv6KKCgue0K4X/X5ERziWSEH71?= =?us-ascii?Q?yN3sHxBUFN0vRvhtuzfvq5oWNO78xkQvCDjkEEnL8711e9fxWqal58vYri6N?= =?us-ascii?Q?YPRxdt099WK4Ou3GDCl7v2kWauBMzWoNDrmSTcdy1bqvp/5U37nAtJYAoXKm?= =?us-ascii?Q?VuGZOqpr2pk2yT6PWCyJveiJ8wE46zPByzHyu7x3R42ZW1JBSWCZKdwfk/1J?= =?us-ascii?Q?I2aara4fFiSX+D0Ya6QU2C/7t3FuofPaPkgwhFkTFNehJ/S+uqmfeXYsCpFn?= =?us-ascii?Q?gaY2HOsdWJ5Gl2uQtV2iHQQPYgNnRJ/l6TtmfUsRfYg9a3tg4MjptnRiEW8M?= =?us-ascii?Q?kUClMNumJKmuwKOXwGvP6sIFvV+wOV0xrDUX7WXGntl09jUCLYJmhOPJjePN?= =?us-ascii?Q?SClvYsa/VJYz/J1m2RgMETrGLtOzecIkSrzJz/yYMLgIzm0Sfym9I4jY1Pqy?= =?us-ascii?Q?FnrbfWQ5A8luLzMxY/imuVbTbTa1+60k6NsJnb48yxv0az0WNEr50hGqiDbl?= =?us-ascii?Q?1PDReEwaHvtvvTx529wMtPNZOFvB0fT4tz/uf0MOfIBYsCUjYGhBKGvMlSb2?= =?us-ascii?Q?2Blfzno20Kk/OtSpiYbntoMW4zqN8mFIPDToxgELFCUub7QZ/vPl2edyDNfO?= =?us-ascii?Q?7OpjVssDXFcLcOixfzv0T83I/PoYjuVdBAOdFabvqn1YSeuVoffuOaQtEZR1?= =?us-ascii?Q?MtcHTfQsJ09omFGBMPkYxUN5xiYdPNAaXIIxqnvbQCrtTBhavs9il027zVmL?= =?us-ascii?Q?Y5uRt9Axo+vDUlmxW2fqB3Q82cDBqlkvKGIh5GVTSFwTH8gNg12kwF1elBab?= =?us-ascii?Q?L8BBtDmnnXgppDKLBP9HJjhomKHsndg5Jz45LPnZXM9LgeKCgSs7YfIOt01Y?= =?us-ascii?Q?VHp8Z209JeIv9sImiF0wKYFOHQ0iEA20X33WntROn5mzB1YZy/+lKCd0ii0u?= =?us-ascii?Q?uCZaU5+RyASA6+tkNXyUh2+yV78FUG0eITq5nSCJRxQ5K3mjGlRngxGK6V1u?= =?us-ascii?Q?BJkYljHfKFZQT+6v4iPI/HQgX+/Bk/l+NEEmbD+mFYt/ccSGzv4bi1vQpKWN?= =?us-ascii?Q?ZrqwuNx7yVkkGn7dgEK1H5m29pq4v22uKWVOGhPSwweGFn3KhhY5GRG+HIWG?= =?us-ascii?Q?IIvpcyS+ETfl6fpS/Bqen2QxAkHKN63tZdhL40uDR1astNCgglI36Uo3wTGa?= =?us-ascii?Q?binfR0yOGbpS0ZXeipENwh54+d3udl0mSEOSZEMnYISzMUxj94PQQEUkBg/b?= =?us-ascii?Q?NYJ/N3mU7vPhuBUmNf6PS/JPqHp0CiYcxxC3qfQ+D5tvA3bhnBbKaOPvWPPy?= =?us-ascii?Q?NGJoFW5P9t525AYTe5J3fTk5tSsg9Kov9XXTmy29B9L+EAAxiUeuAfNRDGz4?= =?us-ascii?Q?5s5wrtJDlupn4MfogBrRdGAcX9BD9/2WO9kP?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:57:16.6761 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0f1f9c88-0e26-4377-bead-08dda8483cc7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD78.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4180 Content-Type: text/plain; charset="utf-8" In preparation for moving kvm-internal __kvm_lapic_set_reg(), __kvm_lapic_get_reg() to apic.h for use in Secure AVIC apic driver, rename them to signify that they are part of apic api. While at it, fix line wrap in kvm_apic_get_state(). No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 13 ++++++------- arch/x86/kvm/lapic.h | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index d168b5659a4f..1893a650519d 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -79,14 +79,14 @@ module_param(lapic_timer_advance, bool, 0444); static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data); static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data); =20 -static inline void __kvm_lapic_set_reg(void *regs, int reg_off, u32 val) +static inline void apic_set_reg(void *regs, int reg_off, u32 val) { *((u32 *) (regs + reg_off)) =3D val; } =20 static inline void kvm_lapic_set_reg(struct kvm_lapic *apic, int reg_off, = u32 val) { - __kvm_lapic_set_reg(apic->regs, reg_off, val); + apic_set_reg(apic->regs, reg_off, val); } =20 static __always_inline u64 __kvm_lapic_get_reg64(void *regs, int reg) @@ -3078,12 +3078,12 @@ static int kvm_apic_state_fixup(struct kvm_vcpu *vc= pu, =20 if (!kvm_x86_ops.x2apic_icr_is_split) { if (set) { - icr =3D __kvm_lapic_get_reg(s->regs, APIC_ICR) | - (u64)__kvm_lapic_get_reg(s->regs, APIC_ICR2) << 32; + icr =3D apic_get_reg(s->regs, APIC_ICR) | + (u64)apic_get_reg(s->regs, APIC_ICR2) << 32; __kvm_lapic_set_reg64(s->regs, APIC_ICR, icr); } else { icr =3D __kvm_lapic_get_reg64(s->regs, APIC_ICR); - __kvm_lapic_set_reg(s->regs, APIC_ICR2, icr >> 32); + apic_set_reg(s->regs, APIC_ICR2, icr >> 32); } } } @@ -3099,8 +3099,7 @@ int kvm_apic_get_state(struct kvm_vcpu *vcpu, struct = kvm_lapic_state *s) * Get calculated timer current count for remaining timer period (if * any) and store it in the returned register set. */ - __kvm_lapic_set_reg(s->regs, APIC_TMCCT, - __apic_read(vcpu->arch.apic, APIC_TMCCT)); + apic_set_reg(s->regs, APIC_TMCCT, __apic_read(vcpu->arch.apic, APIC_TMCCT= )); =20 return kvm_apic_state_fixup(vcpu, s, false); } diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 7ce89bf0b974..a49e4c21db35 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -165,14 +165,14 @@ static inline void kvm_lapic_set_irr(int vec, struct = kvm_lapic *apic) apic->irr_pending =3D true; } =20 -static inline u32 __kvm_lapic_get_reg(void *regs, int reg_off) +static inline u32 apic_get_reg(void *regs, int reg_off) { return *((u32 *) (regs + reg_off)); } =20 static inline u32 kvm_lapic_get_reg(struct kvm_lapic *apic, int reg_off) { - return __kvm_lapic_get_reg(apic->regs, reg_off); + return apic_get_reg(apic->regs, reg_off); } =20 DECLARE_STATIC_KEY_FALSE(kvm_has_noapic_vcpu); --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2048.outbound.protection.outlook.com [40.107.102.48]) (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 99A54236424; Tue, 10 Jun 2025 17:57:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578262; cv=fail; b=Dsu2f/2Fwng6dxQKpxbyalpsDQbl2pvZsR/LoUBl6VvYurQ0nua5q7oE/ZL6xQLKGsmtaMraWEGodN/bTRh6D5yVkWeiXQiflHgrZjPVcbGYttTMd5euSrK8u61zXaTjW6VVTGd7gqDgGeW8YNOqFae7YlmEi64vatRuM/6x4QU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578262; c=relaxed/simple; bh=W1u0nuguvSNLTUKKtrOzbffMmRD+wGi/6omn7ISo7EI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qRERLGMP5bl+5j8MFs+TMRXoNLunpNoJ0gjT4Q83aMp7cgmWc+LOvlr2ss0PTSUx/AJ5i+H3jch0XIZ45fBZEONybbcVUAtEugtyrQqWcRBmSvenRLDmVw/MSuF6R3goukLj1xqoCzsaPj8XwxfvLBnItgYAheAqaNj3ZPmwmkM= 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=5exXw+Zc; arc=fail smtp.client-ip=40.107.102.48 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="5exXw+Zc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YslYGIkgg0rmKOeJfRwSMnBch9bO0v9vxtPGVln1IHbuQKlnS+jO92t5CIpP4iozojT5DGECiwuCWS5dK2QSO79Vf1CIDK1jtjyC6gls2JbRZBmPg6J0L4MsNNkHy6AD4kky061DaxhzcQ5T9Qy4jyW3Hjantqcvtv3VeRXm7hmTgpx5gDALfTzowAFo24XNiRjkdpV6aiJ9bBVSQHxqqtLZIueBp4EYRXxTWBVnzZA8jBiKPjUS29j8hpS1OMc0gmmQ8vZxe6aRVWUGyXbNLzNTa59CkBwrPr1SnCeH4e9kvRRXubvb9r4bnm2fHCQy76YgdvINvLC4w9gOP+5MTw== 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=p5wMfHp6fdjrEQf/H4uH0BS8Apakq8eoJxgkc4QdjVk=; b=COYvEOUKxPJfSFSlb91V8fwWpK6Cf3BzVEsVg6I74H2DG+tdLBPKGIpnoydKLW6NKvjV59niuY+rj3cMPt2CxPOa61wKSfYBW1zGLy1hOq7EFijviOqRoCe1F1sejQ6g5aI6Eb3RW5QI9N9zfYaGg3sIAjDMjlsvEwixV6XYUJ+MvyjCrUGB5tzaQAR42OUmgI6ozIMuqRupHzwpQI+IG56xA6wS7CprKYUkzKuVo9YsljDwFzD9zDYefNNBq2kiix9SpskZ9YZ9/hTuVPeQjNwamYdHP5eO+48hdYljbbnX+jctk1G0zkxie7gWoyDdnbDHm5FipYIHYN5LichZ+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=p5wMfHp6fdjrEQf/H4uH0BS8Apakq8eoJxgkc4QdjVk=; b=5exXw+ZcVw8YzYyntE+xPRVyolYeTJ7kojhSKbpjlADS7R//hCv/o2+Aft/LHuWKMUOeGRpLuElV2Xf7lK9On8w0AVY7673+Zwgf9b0iNJLIxPLhLXm2ZC+HK7U+u8XJlDTnpZIIBUFWKt/W3TrGnMeeTYEo/WwZ+yFuyg8Z3W0= Received: from CH2PR02CA0020.namprd02.prod.outlook.com (2603:10b6:610:4e::30) by MW3PR12MB4474.namprd12.prod.outlook.com (2603:10b6:303:2e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8813.31; Tue, 10 Jun 2025 17:57:38 +0000 Received: from CH1PEPF0000AD79.namprd04.prod.outlook.com (2603:10b6:610:4e:cafe::6e) by CH2PR02CA0020.outlook.office365.com (2603:10b6:610:4e::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.25 via Frontend Transport; Tue, 10 Jun 2025 17:57:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD79.mail.protection.outlook.com (10.167.244.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:57:37 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:57:30 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 08/37] KVM: lapic: Rename lapic get/set_reg64() helpers Date: Tue, 10 Jun 2025 23:23:55 +0530 Message-ID: <20250610175424.209796-9-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD79:EE_|MW3PR12MB4474:EE_ X-MS-Office365-Filtering-Correlation-Id: 358c787d-a560-489e-fbe8-08dda848493d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?BVN+6h6NpBksHmaNDwhNbdy2Renq9cNgVQpnhwXaYY4vLibY9i98igww/MK2?= =?us-ascii?Q?HNkSfqP4npUvOinPhkpMgrvKaoV7P6EhaJ6hMLDFL942fGvVopR1zoxOcjfU?= =?us-ascii?Q?19Howvmea8LaJeUeAE3q1dlNTzniwp0WNddhfLVg3tO7YDbZFaCqRzJZxNcf?= =?us-ascii?Q?m0yIfAy5V3me5FTRddemvyGV+nREYQuY1X2Y/TNES5UdNc8D8PhFwp/bL7TK?= =?us-ascii?Q?0f1NKNizsNR+w6ujgYDFOH5Rc/arcs3AkqkDohZ9cmUCUXMUjRPJ1/uZGquK?= =?us-ascii?Q?QbRV7RRVb34qkN9EokDi4g/fGEF/KAqz0Vsk6I209Xo/jygdaGBpCOf305Xx?= =?us-ascii?Q?nKn6Sha+Z4SxuXPkkgWFhcEbiHbPx0ho2/30AscB3fdBC6p26fRryzDdsrfl?= =?us-ascii?Q?p8QE25TKZ3uSrty54PYFDFI8k7FQIz2FXYDHpzjVObtWTUki4sMKAyMmWtIq?= =?us-ascii?Q?0rmtoo4Vb1eIcbObRxbUVtf2q3niSNAC6YcI19lB0jqQ7Da4PL1fOt9mBc5B?= =?us-ascii?Q?VYPbFh/eJWqbVmh9Wtt3GqAN5PUHiIQNFfl+G7JFc9nScl2qnY2UFlGnE9ut?= =?us-ascii?Q?yOCtOij2+iAmgrTElVaYKDOSsOitG1ZMDMi/+8SL/l/QA9N9q+cLJ7Tq0tr/?= =?us-ascii?Q?DVzZ3RMcq3TKgGG3MO7EvxvJBTaD5n3pPcbJCZUmQZBXIVFFTlBJvUSfhCRJ?= =?us-ascii?Q?euu/jYuzA4XtUBaiD6Wsz50RLRdpe+0UMebqk3W5J0/oEJuMiHbq8h9nMtGZ?= =?us-ascii?Q?cSX8ppALvpw0Hx0pX1m+UJePnfOWdCKXIEXkw6G23G26Hv/Ie4b5OVJ7Yebb?= =?us-ascii?Q?BHp4HWN+1dwsaV4eXZO0K/oRQS0ry3AlgQoJzaDYX81+F7Wct0V4Mphyridv?= =?us-ascii?Q?ADdSZnjOp8ojM8tn8G9/p3U79S7CON80r4wqlyHd0ZeKLIc9fgDSnbKe5rDj?= =?us-ascii?Q?AHNNJQmApSZtvZzvePcTfqf7x2kdHlP6rDqxXdGFZHQiloFC4knpZ7VoONGw?= =?us-ascii?Q?huB2bo9aMzEE/CXoI0Hu4he8YyFfQ/eqOsz3kEsTrKg6XcCpROI9K+xzfhGN?= =?us-ascii?Q?qusmxaQEcHz4KYBsL5v1fDWwt9LM2FLAs2PrztWQBHS99oukgMFmTdbuMHqz?= =?us-ascii?Q?3PXwTnYXVVZIVEbNIm8EYj8uLSwtTTN8te5r0zCiCc1wblhvjAYKWU30ABPY?= =?us-ascii?Q?pFU0AjjuiVHnwiB0njKclUpbnjfxPGmOe4PGgBPv9lTHHZNsYEE6ZZlSxzoq?= =?us-ascii?Q?vIuw8lGj9BIPO+nc/d8vFdYL0TWuYN19OC/7jmN17CN2YNLUzPy/GUNDQt2S?= =?us-ascii?Q?DIdolDRa2XCcne7XEELjToKeGXY0U+upX3LJrrbEMuuY6MEjId9vB/Bgw0z0?= =?us-ascii?Q?lBjzaxDsl/u4ao9m+zZID3zmVSMLPp/8P7xlfGESmfvgh5BsoCRLhndff7sI?= =?us-ascii?Q?UW9Iglx7XR18w1pEw8s1GCT+YxaPTTHwlBHyMEsf3dF6H+dji189QH2okgON?= =?us-ascii?Q?M918Qu6EevagYe8WGCl2L4Gsf8S8fmSJije3?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:57:37.5848 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 358c787d-a560-489e-fbe8-08dda848493d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD79.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4474 Content-Type: text/plain; charset="utf-8" In preparation for moving kvm-internal __kvm_lapic_set_reg64(), __kvm_lapic_get_reg64() to apic.h for use in Secure AVIC apic driver, rename them to signify that they are part of apic api. No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 1893a650519d..e5366548e549 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -89,7 +89,7 @@ static inline void kvm_lapic_set_reg(struct kvm_lapic *ap= ic, int reg_off, u32 va apic_set_reg(apic->regs, reg_off, val); } =20 -static __always_inline u64 __kvm_lapic_get_reg64(void *regs, int reg) +static __always_inline u64 apic_get_reg64(void *regs, int reg) { BUILD_BUG_ON(reg !=3D APIC_ICR); return *((u64 *) (regs + reg)); @@ -97,10 +97,10 @@ static __always_inline u64 __kvm_lapic_get_reg64(void *= regs, int reg) =20 static __always_inline u64 kvm_lapic_get_reg64(struct kvm_lapic *apic, int= reg) { - return __kvm_lapic_get_reg64(apic->regs, reg); + return apic_get_reg64(apic->regs, reg); } =20 -static __always_inline void __kvm_lapic_set_reg64(void *regs, int reg, u64= val) +static __always_inline void apic_set_reg64(void *regs, int reg, u64 val) { BUILD_BUG_ON(reg !=3D APIC_ICR); *((u64 *) (regs + reg)) =3D val; @@ -109,7 +109,7 @@ static __always_inline void __kvm_lapic_set_reg64(void = *regs, int reg, u64 val) static __always_inline void kvm_lapic_set_reg64(struct kvm_lapic *apic, int reg, u64 val) { - __kvm_lapic_set_reg64(apic->regs, reg, val); + apic_set_reg64(apic->regs, reg, val); } =20 static inline int apic_test_vector(int vec, void *bitmap) @@ -3080,9 +3080,9 @@ static int kvm_apic_state_fixup(struct kvm_vcpu *vcpu, if (set) { icr =3D apic_get_reg(s->regs, APIC_ICR) | (u64)apic_get_reg(s->regs, APIC_ICR2) << 32; - __kvm_lapic_set_reg64(s->regs, APIC_ICR, icr); + apic_set_reg64(s->regs, APIC_ICR, icr); } else { - icr =3D __kvm_lapic_get_reg64(s->regs, APIC_ICR); + icr =3D apic_get_reg64(s->regs, APIC_ICR); apic_set_reg(s->regs, APIC_ICR2, icr >> 32); } } --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2077.outbound.protection.outlook.com [40.107.243.77]) (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 CD5E224679B; Tue, 10 Jun 2025 17:58:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578283; cv=fail; b=LsYfJc3bPOOIhd85X0f2HnLPcvKUvc1Ha73RZYRL3VGhmL+TJO5eH0UlmfuCvZvs322vcdhdQR6pFvX9/fRRORfc/L/dSVDanIR8S6IQPztIklHyuSB0Vq/aCgO/dfmlmiNxlSCHcATBrJitiJRPx/rMtav+TpbpXy5wH7YCL6o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578283; c=relaxed/simple; bh=CouRq8xg8dAWpBSQm6xg4SVY6DbEhlsNFmico6JivzU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HspRduZHHz1a4F5hMEVD0Q+Ku7U4N9jaky4V6RoOPmWHK8TDrgMFJnfoUeyB6Er65Ynt7gfFrDo5Yfyxkt+NZUp1YlBuHNb54rs3olOjyQKg9IWSl5mLZhKm9eeywxBmgYy1ynd4+5g5tm1gTCa2reMDPmJRo3LP9njJ/7QKZo0= 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=ufaZ5Je6; arc=fail smtp.client-ip=40.107.243.77 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="ufaZ5Je6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V90768uBFw/k4dsfQfhDb89vxnr7mK7agBi1xBsVBF0m0vFiY/95et+08HdJJYTdc9xFNJ5s4AH3r5a+w2XGNaHs5GIxNIAWpOo5OOBPJCaofpanJf/auO1pjFGpFhLtPEhbFt599nqJ1P4QWcCmKGE44Sog8M/fXewiTL1kvxV4ppbnC2OdBde/WROn9JerrGh7rYOFYZeo2h4dEoKJ7e5LrFoMjHR94NgBs7xmyO/5qes+x/qds2vrfJdL2tFUYyCYAZVGf2Y+KYwtHHHIfieLAd8/wHdnXE/4T0vKZ5AyIlC6FTM0nPMzawaT9pIqitLQA59mG8SoXc/cBPQ78Q== 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=SiOCuWICGdZmO/pPK+HhqZKoxzutHUbrJgF8LuDyl90=; b=YD21tRwcUPfkY5epof90r1IqtbZckHTVviLFbb7AfUX4kMtD/sr1uGQbYlwr33t7CCHMyVU2MkvjgHj0D6s0DdsyJf+npq2+0mELJKtXmV9LVFtyAo5cJ+Z4rBurLgL62J+BuajMwIvynY3khwZ99okikK41gFiVyE/ztxgQqCyNGUJULc7XXF/qL5h4UiI1l8k3r6TJ62yjWjuyntP9daiAZkvNqu04++KzkIrLbp9QVAgQud2MoF348MEcKVIBSxtO9Z+PZr6C/oZNzyJmRyd2pZ4UW23weNxiAQLRf/ZAz0Q7roQZ8Ij2vHZU+H6ck28l/fU61pynFNJnzSx6zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=SiOCuWICGdZmO/pPK+HhqZKoxzutHUbrJgF8LuDyl90=; b=ufaZ5Je6UwOKpGyLQaPgXq9hQpL/thp/0cUNbz/MDfrO4QIX84m59ouwHzczG83WHG9XWbp7egYsBjG5THAfyTTevwozqyJPSesdN5LAsuO9yx46z8cZE/BFJybhM3bay6JbjzeSyapfxm9/i4199szPGarH0kiie6JnvyWoeug= Received: from CH2PR03CA0006.namprd03.prod.outlook.com (2603:10b6:610:59::16) by BN3PR12MB9594.namprd12.prod.outlook.com (2603:10b6:408:2cb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.41; Tue, 10 Jun 2025 17:57:58 +0000 Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com (2603:10b6:610:59:cafe::a1) by CH2PR03CA0006.outlook.office365.com (2603:10b6:610:59::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.18 via Frontend Transport; Tue, 10 Jun 2025 17:57:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:57:58 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:57:50 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 09/37] KVM: lapic: Rename lapic set/clear vector helpers Date: Tue, 10 Jun 2025 23:23:56 +0530 Message-ID: <20250610175424.209796-10-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD78:EE_|BN3PR12MB9594:EE_ X-MS-Office365-Filtering-Correlation-Id: bb8e4c76-5ea5-4b2a-80e0-08dda84855da X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1dgT/IFyQ+p2DBRoMrVtOxH/9i1p9jnmnjy+F/nPS0uM+JTFPLqdRBBTmOdL?= =?us-ascii?Q?2G9lmZCv463W69CIWDNT3NfLNsX362dSSFmoF/uM4RCYShH6tOf9BC5HxMdc?= =?us-ascii?Q?JeHFtYUO5v0J7wRArvAG/8Ab8QR3GCWQ/vBLJlHg8f1ijLHL/Io55BNy8ZNV?= =?us-ascii?Q?/XZZB3yGqRBk5u+EqkK99aw6+okPByD9x0StirQ8KlfPXEzsB2Fp8UN1PaXy?= =?us-ascii?Q?JIZQ50p5ZZ8/hZ9tVHTTQpFiRqc/6zZD9elhlriYJTfUP7b40ZsAnc8EFwpO?= =?us-ascii?Q?bJBRU1wMG4RNEuSVJ6GjH0OLzFiL80PWr97TI5i2YDR5GE0VRc/30sSJ9VZq?= =?us-ascii?Q?dCmuOUEDzVRnLgVPJS0xE6DnLbux6NoKwakdewhu7Ubdht1OK8qeGIH10RZE?= =?us-ascii?Q?/WU8r2M+aOPTWzKSB8vT0K9FyAfe7tqiUSzMlG+xReHBnpzwwK8mZU09Lz10?= =?us-ascii?Q?vv7enyrgbLARn5sI9i0SW0/fCiHM/WvdljZqodSIrF+O73DCX9Z6/kSNZkxM?= =?us-ascii?Q?oRXlWWm/RTSOBK6bffPKrz1ZgMSOZOoW8FhovQE4j4jEJIaT7TtkZmIOLFr2?= =?us-ascii?Q?uoCQ9A2dCdCclS/3AYP+azWEpb9MVh+vXkjow6awJWwvasqPEb8G1/cD7C69?= =?us-ascii?Q?yXmipM/SE6mhn7Y8foGmGVtWUEgM9aHSkVZNO7jESaXz7rMfaKVJRtxFi5F2?= =?us-ascii?Q?ZOhOIRoRSoqRtxuVB5F+POZF+AFT0sEHgph9vC6EoQ7+vFgtuPcseGMKIHu6?= =?us-ascii?Q?IzW3ForNsa+r9ExKQNfBD49toSpwyAvYNPhJxbr02lGyfxxVOo1q7nx8kTCB?= =?us-ascii?Q?ORZuT4WQOxrd5As0qi/nZqRB97D3GwYGVnL9a9DJLv15gwajffIcsmPIMPbu?= =?us-ascii?Q?Z/eg3EUX+28CVE5AhUmUHX5tpq3Hr5/Trv8P1u1yW3q9Ikr8GrDS26q3wZqr?= =?us-ascii?Q?HffOfj6nIYV30MYxrOwaCf49wtL7Rql/ikCLEdpnLw6tKZukdo+ubPca6ixP?= =?us-ascii?Q?GEtuQC7nwST0k7J8t0SvyAR0Y6+DirABxkf5f66CAwMhPcE+ReZlZYBx9xZv?= =?us-ascii?Q?77+2awR+S4TYK6b8w4nM1Re8pl+dmySsHbnmEjHg2uUQ387yXcFsbWJvNezZ?= =?us-ascii?Q?DlWpbRlZXruKo2pAjbsC52y7vusR1Hdf2/AO8u3yZRSK1+MMIYUrm4phjPim?= =?us-ascii?Q?j+hzJ5deQyR0ZkhiuUMaDJTxvYk1fWl2cVbmCMYN/YiYNMZUAZe4pZmqk3Cs?= =?us-ascii?Q?8s0zd0uXhnZv+pTp62WxH5W/Mq9dLji5AN2NNkGNZkX5O4ixjRcBGAqnJPqn?= =?us-ascii?Q?YX4C2NkDZs/G2LJwVkVuSyW+ErW8fURQB3tCVJfrm1aZs34+wHNU/uW62zvs?= =?us-ascii?Q?IH/dGDVgJhdv8CBtmmlRgGkkp3eTuwf6pE/eGEvisu++NaWl1q5W2lPm+Ttc?= =?us-ascii?Q?aMOlUswhuXnUMuJgOyiOFpWxwNOwle+ySF6Jqsmazj2qkzN9Ak65YowJIa6P?= =?us-ascii?Q?SC4axXDnKWRDryzLWcEXSFphFbI95GbIqFAf?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:57:58.7411 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bb8e4c76-5ea5-4b2a-80e0-08dda84855da X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD78.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR12MB9594 Content-Type: text/plain; charset="utf-8" In preparation for moving kvm-internal kvm_lapic_set_vector(), kvm_lapic_clear_vector() to apic.h for use in Secure AVIC apic driver, rename them to signify that they are part of apic api. While at it, cleanup line wrap in __apic_accept_irq(). No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 10 ++++------ arch/x86/kvm/lapic.h | 6 +++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index e5366548e549..20e2ceb965b7 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -718,10 +718,10 @@ static inline int apic_find_highest_irr(struct kvm_la= pic *apic) static inline void apic_clear_irr(int vec, struct kvm_lapic *apic) { if (unlikely(apic->apicv_active)) { - kvm_lapic_clear_vector(vec, apic->regs + APIC_IRR); + apic_clear_vector(vec, apic->regs + APIC_IRR); } else { apic->irr_pending =3D false; - kvm_lapic_clear_vector(vec, apic->regs + APIC_IRR); + apic_clear_vector(vec, apic->regs + APIC_IRR); if (apic_search_irr(apic) !=3D -1) apic->irr_pending =3D true; } @@ -1326,11 +1326,9 @@ static int __apic_accept_irq(struct kvm_lapic *apic,= int delivery_mode, =20 if (apic_test_vector(vector, apic->regs + APIC_TMR) !=3D !!trig_mode) { if (trig_mode) - kvm_lapic_set_vector(vector, - apic->regs + APIC_TMR); + apic_set_vector(vector, apic->regs + APIC_TMR); else - kvm_lapic_clear_vector(vector, - apic->regs + APIC_TMR); + apic_clear_vector(vector, apic->regs + APIC_TMR); } =20 kvm_x86_call(deliver_interrupt)(apic, delivery_mode, diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index a49e4c21db35..c7babae8af83 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -145,19 +145,19 @@ void kvm_lapic_exit(void); =20 u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic); =20 -static inline void kvm_lapic_clear_vector(int vec, void *bitmap) +static inline void apic_clear_vector(int vec, void *bitmap) { clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFF= SET(vec)); } =20 -static inline void kvm_lapic_set_vector(int vec, void *bitmap) +static inline void apic_set_vector(int vec, void *bitmap) { set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSE= T(vec)); } =20 static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic) { - kvm_lapic_set_vector(vec, apic->regs + APIC_IRR); + apic_set_vector(vec, apic->regs + APIC_IRR); /* * irr_pending must be true if any interrupt is pending; set it after * APIC_IRR to avoid race with apic_clear_irr --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2084.outbound.protection.outlook.com [40.107.100.84]) (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 2C1F7244693; Tue, 10 Jun 2025 17:58:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.84 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578308; cv=fail; b=W4+Wjk8ZbzMMHryL3Z6sT7UmVV22JWsmL+vb86q77Z14B5lt+Rv2Idu/6d6jzM1LHR7QGVM1379mIfmWhg7dr6qdsVIofo19F5p2oTIUFww36GzJkVaW1Z9UOxp4iaZjmngab/YaerzJB/POfuuAnZp0A5PM0qz59mngda6r/EM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578308; c=relaxed/simple; bh=sk1j6J+dLI3X2VC7x9EPkYBnTz1nTiFszOnyFx0sFeQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=N+kPzHz9kWGSfjzpIMXbvsHev2M0B/m6MuWEVp39DcSUsOuM4wDziFXepiHPmU45CwNJPQHfURqT2akgUQ0QzuYsVHTyIVprt38fS5qGJkcMq1wV720jy2nOFzdwkmCHAM0H4suidbNC3SFdu4rZhxPqPQjyxB9j/ocPb+T5w3o= 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=DhuN3/Xh; arc=fail smtp.client-ip=40.107.100.84 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="DhuN3/Xh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I3qnsLYBp0uie37JuF+VdCyUoEU0GsypLw8x55Kkz3rf7+Dpc0Y3mmD6nk4XRRCkOcXdanmiyxk7AUi9R7IBCX7c1VI47C8r30ur4T6B2whnFdwup0bqSNGTHkoHSkl5LOHAYzpHeqEGwphj0mhhpbwe15hU4eSvKE/G+XLfhBLADOY6S06gGN8SWTbW4NV/OgrYjVF65gk//N/PxTpoQBxV4DU6Zn3zfK51s3L8rKg+A9YO/AvfrJaoqI4yQ733P9JC2kSbOvNZ0cfYhibDaZe2c44OUw02poh8yNyc/BtexQYeEI8fOmlomk0GdeHatnFGxp7K5/Cz4u1nU9+9Ew== 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=QfIodZbsNFCHoOQGRMpwxfSTsfuBBnMTLEVH1hdFWhQ=; b=Zd4Kw1CJKz3lB57aLK7Z8lJgovtNCP+zeyYhu5Sl+3ergHJcVxt3aMqHx+WTqdtL5cB5YflZdJghwJoBLdNg9iGG7x5MqFPUf5uIfwKrkKb/OgO1zTHsmcqr+r8V4arXYS9u1WxwHNNivOaGBqRsHiiP/Pqs1G48KLmLCQeuUJYzjWqkotDhdewbf+sUpTwL6mK9NgUqThJ8K+ngLLOSp+4q0uWw5JNHeRhR+beXS0sgx18bYya0qrUQzshtom/0dzIraxTzuajgn10QQr3VjoH0ICzDlQoa6K5JxWBjGi2Em0ahFHhj0TOqvoMshU+qonPRQQLF6IUnOAq9kRgNVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=QfIodZbsNFCHoOQGRMpwxfSTsfuBBnMTLEVH1hdFWhQ=; b=DhuN3/XhANqrFM2EvKblk7ApXhs4yO5iDNfiegJJAcxuSqfyXmsQkG0LQPNKq1lVx7qWuR2CMLnv20DR+XYqrwAtT9RHp+5uUeLYYuTPPBo0bhjeXGrAqtzeeWnYv50YClBSorR/5ZlqJtCho70Rk6XREt+E0xwIL1U0HpwUj5k= Received: from CH5PR05CA0012.namprd05.prod.outlook.com (2603:10b6:610:1f0::10) by DM4PR12MB5746.namprd12.prod.outlook.com (2603:10b6:8:5d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.39; Tue, 10 Jun 2025 17:58:20 +0000 Received: from CH1PEPF0000AD76.namprd04.prod.outlook.com (2603:10b6:610:1f0:cafe::af) by CH5PR05CA0012.outlook.office365.com (2603:10b6:610:1f0::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.17 via Frontend Transport; Tue, 10 Jun 2025 17:58:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD76.mail.protection.outlook.com (10.167.244.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:58:20 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:58:12 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 10/37] KVM: lapic: Mark apic_find_highest_vector() inline Date: Tue, 10 Jun 2025 23:23:57 +0530 Message-ID: <20250610175424.209796-11-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD76:EE_|DM4PR12MB5746:EE_ X-MS-Office365-Filtering-Correlation-Id: 344bb0fa-cbf0-47a5-d5cc-08dda8486309 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7+8iDgzDs5VA+vdvzvYuNoOIcAKRPSqv1QgHroJeJ2y/kbRHHGeN25cTZQwT?= =?us-ascii?Q?Lr7oka1OlPSSudgLbm0kwUQk2rWGP02Y5qXNlLhNhG++dvv/QDc68IVqHnNr?= =?us-ascii?Q?fYf4sk2XAeIcytnrJXBBWCdICnLWIdcgjrSeA5cswBqQSd6gVdwBB/NfR2md?= =?us-ascii?Q?T21g3LdZ0CTwpyhmLiBfIcJiZg/152Xoyp8ctwOOcfJugOmuwBsk/hFC2eMu?= =?us-ascii?Q?/K5jg3El1iAJJm162xCmlOgDC4XuwFu5VxhEbVEjfbhInVdWuuzy7dl/tpCB?= =?us-ascii?Q?ijXPK8w5Mqjj3eT26J+q1oHlNOV/RxQb4Rtr8RIz+Oi+XRAA2WOoDb+khkFO?= =?us-ascii?Q?Mzj6s4J/InBDkgWyxPdAAcB63SAAw7dqtsNyewCkl3qNOo0x5Nq5n3MifF+c?= =?us-ascii?Q?5BdxGX69CWf5t78Z9ric4JgZi3/xfuwCc3NOORWunrStwBUkYyOQEt4zyDKd?= =?us-ascii?Q?66hVhklbYSxR/gE0giiV/zWdhylF/RIDwoBoq/LxYscvR1HXLZJwq6CGZf+l?= =?us-ascii?Q?oAN0pHDpzrb45nxdMmpUWWSk/cy4BtZ+gSrWwCnaY/GBrhBfv7Fgq5exI7FZ?= =?us-ascii?Q?fA724pZtfw1VbfUNdSREwhspZNVbFODcHXJHVQ994lruYqMY95ag6gYoHKUO?= =?us-ascii?Q?e6imUxdX0jTSUunNiFgqFq/xJeEKwwNWqqBF+BKU3C0CpkFH0R921ax1DdDW?= =?us-ascii?Q?trXfOKHXnFo42g5olpiKIKUBAKKAahAUXRB8EyPRmQaLdrk4fGLKKs1u2NAH?= =?us-ascii?Q?lQd4uRGjfZ2dbUfKmebjTPoU/m43FrrcypYinBZSGGpUXy4JXM5Rl0Qbo9TP?= =?us-ascii?Q?3JKX800ofo3NeyFj2pYEmx0Cz671f1l/QxUsq+cqB1NjEU4+3P1MjhPfc6qm?= =?us-ascii?Q?M8eaF1yIYdgdkeovp1HOwloRPFgSyHt+kJarY49iJeo9OeNFbtSlY3p9hGTN?= =?us-ascii?Q?cEzkDee2eeKr9214E5BCaQoM2P/A1ALmF0ch5/rEl7kyZf1x/ZUj50DbHuwR?= =?us-ascii?Q?WRzm9iu5sTHppPeyLIjD6bhZJV2oVv8/ZrhyCO8KG1kw6dzaB+q7K5YGtdE5?= =?us-ascii?Q?lwPDH7H8FHY8a7eGPg+u+jwk7x8r6uN5TD/u6E50DKSJPhTinUVjvleOkgWb?= =?us-ascii?Q?0cNoutVe+7AWAi0S3XOwcMcVEMI62O9XhWZoixjuRA3ZoHS3ZQocZ+AwPULP?= =?us-ascii?Q?119BlT2ge4V3sGigs1ElxqEeHoLWyRv0p45ZjohssUI0aofhi0srxgt17Rfd?= =?us-ascii?Q?iCF3esCKHqAL5a5NfgqSlik3ubusLxGJ1+vt9I5p3JhgkZxX19iiaDp4HMLK?= =?us-ascii?Q?TdU4g6WI7NWRaoTOa/QaW5Em60RyiYi2IwuiIsVM1ZlhFdBfOQQcmMm5mXrD?= =?us-ascii?Q?ZZV2k/DJacVgcE2CvWiYyv5VkjrwrVfKGMO/JGwyszzVkCjdZI3/+7lrnViU?= =?us-ascii?Q?/kAfe3UVy6Q6WdVivt8z4yPvZy8lLl++ztaS+9vsPu/JwjF+cd/nK86iDbzE?= =?us-ascii?Q?X60eUkD9qIak1rF8bbUt0y5MMEf5prj/kanT?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:58:20.8635 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 344bb0fa-cbf0-47a5-d5cc-08dda8486309 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD76.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5746 Content-Type: text/plain; charset="utf-8" In preparation for moving apic_find_highest_vector() to common apic.h header, annotate apic_find_highest_vector() as inline. This results (on gcc-13) in slight increase in text size of the binaries: Obj-file Old-bytes New-bytes lapic.o 28455 28563 kvm.o 664638 664746 kvm.ko 701907 702015 Signed-off-by: Neeraj Upadhyay --- Changes since v6: - New change. arch/x86/kvm/lapic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 20e2ceb965b7..1f44bbc63f17 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -616,7 +616,7 @@ static const unsigned int apic_lvt_mask[KVM_APIC_MAX_NR= _LVT_ENTRIES] =3D { [LVT_CMCI] =3D LVT_MASK | APIC_MODE_MASK }; =20 -static int apic_find_highest_vector(void *bitmap) +static inline int apic_find_highest_vector(void *bitmap) { int vec; u32 *reg; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2049.outbound.protection.outlook.com [40.107.244.49]) (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 4C125246766; Tue, 10 Jun 2025 17:58:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578328; cv=fail; b=LXiIe7HtWHw/dtc5P116K5juk2EgghCdnTAulQXjgTBtEWHp+iWPvrspJFnzHQYwFsn+t49h9j3xu24xOc6AuBChsnRQdlSxYDrIfjtKH93oD/UPNJVCS2LyIe7QhEdzirlHtMxiagPEcVHS193WE0LyMmgg9zvqaOwEmvL8GSA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578328; c=relaxed/simple; bh=td/jJhon/xyMQbSGu+ZkfrkiS6BhTf4OKg6r7Nl/PrI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MRrYH93KN1Ond3PcPvPHR5HXt9i9wQk1JAfBYuZzFlrMbC43MMRox6D4THkaaWziodZnZBkpOSxhNHuQHemvLHMWmihQbDM4WOL+VFmCreJ3nTgwvWp7B3vSAUufmw2Vdwuj/k1PhunaHkqm6yO1AOeZvbOIfGZkXUu0xrwL28M= 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=Xd+9mUSM; arc=fail smtp.client-ip=40.107.244.49 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="Xd+9mUSM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YharJfZIpIzAZsCmDavm+DHo85MqzOAUkz9CvnfiDcMoLh3G5zts71pE0WYTUQjPiMKpzHD5rtcYFwppmIm5i+FPkCNzCrITQxyAmyoLNHRtsP1gWKttKHjEk1oo5nMWOQJC7ENKVkgbvdTctZuvg2pUpF/BlmUh0ShpH2Q9riVBlXeF5GQv1LMX1TRgw7DDbZyg9HD6SUgWvi6GQ1zj8C/C6fdYpfQhQzr7gsIxzHRyJ30gJrBL4UNS5q/K04RQaAS7REhGD6OaWiqg5R+5ccFGJ2y79bS+Bd0a8oMX9vM1iyR4Y9hX2CiGvq7PJMJ09lHkIVxFcojfS9yAUd4CtA== 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=n4kvqvyIby/ffehHtaatyPMoG10Rb8cQNNnBqmOgvtE=; b=WfwMJIsAh7e8iEF5+QK+A/jd7Qoh1zjzcstpIJzdZiiblNrLRIzOTsAcsYDBzeJqqmKIyrwGNRqp5BMzA3dd48vdTzfZWg8jH5ez+wN82vFPtfUZLj3GiZLkvLqP40ZRZIn4uSXHX7vWQTlH6s0Eh5iY3g+HwUBtgf8rA8paQeBzQpdQpOSuhi/Wo+yEVOCSiQCXFTaF5VtjJuzRhmS6+5pzdvHyLvdLOlG8Ey5hFwH54WR4L8Vc8b4M+6Wfk6MaaZ5pyd+Pe/RHck8m1tnxrYM7ta9UAftUZLKo6MYkOXxA3xiviXWStWdmdvGi2OKfjl8NzmH2xNcAyP7ZrDUkrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=n4kvqvyIby/ffehHtaatyPMoG10Rb8cQNNnBqmOgvtE=; b=Xd+9mUSMnKCK2BYsSCcT/x4cMnp6o7ftp1ZP8fXPz47V+SLYDSFQyx+vI2Rxpp/ygmmnNkIsA/EbeYTikj+kkoHhLpyzoIRoJhgj4aehq+y8tu1FaqGH1ZPpXWS+rn8PD9U754DUa9oJsYvlA+w+H/eH9urNnljvVHNbClHD1P8= Received: from CH5P222CA0021.NAMP222.PROD.OUTLOOK.COM (2603:10b6:610:1ee::10) by DS7PR12MB5960.namprd12.prod.outlook.com (2603:10b6:8:7f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 17:58:41 +0000 Received: from CH1PEPF0000AD75.namprd04.prod.outlook.com (2603:10b6:610:1ee:cafe::fc) by CH5P222CA0021.outlook.office365.com (2603:10b6:610:1ee::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 17:58:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD75.mail.protection.outlook.com (10.167.244.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:58:41 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:58:33 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 11/37] x86/apic: KVM: Move apic_find_highest_vector() to a common header Date: Tue, 10 Jun 2025 23:23:58 +0530 Message-ID: <20250610175424.209796-12-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD75:EE_|DS7PR12MB5960:EE_ X-MS-Office365-Filtering-Correlation-Id: 63c90af4-0a93-4f2a-9b24-08dda8486f64 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ztiC9mKLYl4ecz7CN4Cwyn5BeP05zdNjV4OmmI43bHu7tfNDrjrezoZBudzS?= =?us-ascii?Q?uQFganEV+XuWN6jNfbOCyBmTNHMq+ARQx3oqutuwuSxhbo5ClJ7eq3wQLQW3?= =?us-ascii?Q?/mk1gP5u7Xe8PSD8+vlC44JFfIq9CBdXS62sIDqYQ8O24kg9R9a1f6GvQ+b2?= =?us-ascii?Q?XJ6HrM1rgJ8uSzBT+a/XRFCHv8WuYLw7GiEVYh7KpZXfTochGTlUTanvu7pl?= =?us-ascii?Q?yDuUUaxWULNi+IeBL7v+0u+ZmZxTFTMnujURzdSP+lvDuVGt0O83Z09OfgdK?= =?us-ascii?Q?YeNqqt+jTiwye6R9fha4dXpzdQ4vhJjYdL+28Mc/PHYaSNUSmYFkoN3W5Nmf?= =?us-ascii?Q?FTI8INr1Nfruwrsy1IGRp83jh4haQkGXaucO0AbCaW5GCoP0Gm4ba1HIYGTt?= =?us-ascii?Q?FQoHUGg4Fw1w9jaZ766hK94kZ3693JSM/JLBeyNdYs7NZmgZoIEs4aVW10Pb?= =?us-ascii?Q?F0W4w8pq/VuNIJ92SVqB9rIejyWcTjLne0Yl+l7EKxFLEphSFwCbQQ5+OpEb?= =?us-ascii?Q?Zv8AXpiHaDkXesJgSy65It8A/4n+dR1t9Q+q4cLar65zvuG3vuAHgiTS64ok?= =?us-ascii?Q?NEztLzbZqNTA37oOad1QeJMnJQoOFoUPA/3t6SaH4ElAiV9LYW+dQd3qCfY9?= =?us-ascii?Q?LJ+9qtEflQsNcOWFkchsJIPGwwjkfiiPd9gO8Mqb9XFFBay91kpY6IDhAju1?= =?us-ascii?Q?ncAgSeK8ViIT60Ahdq2D3SRTitwi9bPAO1RnNCjNRsUw+V2ULTqaFk9O/bvK?= =?us-ascii?Q?+OdMlVNbhXi2v4S/ph7EoKD8rsQuGeBSseRkQP8h30I0wrW7RivPzR108nti?= =?us-ascii?Q?YgMapXtQkKmoQsrHFeeP9ujr5ctK0m0wFxUqSsotN5btwOeqCTiECAFALT6f?= =?us-ascii?Q?fQipXNK60R+Ahr5iyHJlJ+tdwYN2lMdVjK213xTehNLv+kKUf9e1CRjsG11D?= =?us-ascii?Q?0lYXdBZfL7GsKnEmqYe2oP3pfUm6qrLg0Hqj7AMSyMcrYtK+dPXv4Ll3jfrs?= =?us-ascii?Q?vP5Bvr4593d17tS3iUNB5u2OdNcxCRAvAWppB/mhnPBQc8ibFR7LioimEht0?= =?us-ascii?Q?1BXHEynqUfoWyS3vEVOQTSarB3m+JCz31HYhADyJoXpsoNdasFJgp/xvTcD/?= =?us-ascii?Q?98uGlo9FlJxLAHWLuGymD++KE3ulAgnRIwHCtuLryTnhxQwChlfMQamZ8/iR?= =?us-ascii?Q?AIGqlmFFh+jK/CU8BcFO0KTO9d/lg15lZq6HzXr7aTZFDcNyx/WhIBSTxoEL?= =?us-ascii?Q?LnJT1JpyQ39nMMjj7/CFEZwtWcftU2WLSplYyhYDYKtGzKpajL4opAjGI4Hq?= =?us-ascii?Q?jHhCNaGskMV7gZp+zf+9oQdHmxfuxbiOYKTphTAqUA8nFDLx1XQZ+yjcvhTK?= =?us-ascii?Q?tj0DMZx/wbdfcqB0Vk/Lcmm04EwsDnlZXgTvWdUjLCFcfSz8JL0sR0zAcdNs?= =?us-ascii?Q?3o/7bRdlTtl5r/rAk51tlDszaeYgp4QDdvzObx0uuvJubb897fuhfKA3kmbP?= =?us-ascii?Q?3AgxHVMr5HVJ1twDvhwj8bWGo7Y9phq1p1p5?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:58:41.5900 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 63c90af4-0a93-4f2a-9b24-08dda8486f64 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD75.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5960 Content-Type: text/plain; charset="utf-8" In preparation for using apic_find_highest_vector() in Secure AVIC guest APIC driver, move it and associated macros to apic.h. No functional change intended. Signed-off-by: Neeraj Upadhyay Acked-by: Sean Christopherson --- Changes since v6: - Split the macro and func renames out of this patch. arch/x86/include/asm/apic.h | 22 ++++++++++++++++++++++ arch/x86/kvm/lapic.c | 18 +----------------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index c84d4e86fe4e..c7355bcbfd60 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -503,6 +503,28 @@ static inline bool is_vector_pending(unsigned int vect= or) return lapic_vector_set_in_irr(vector) || pi_pending_this_cpu(vector); } =20 +#define MAX_APIC_VECTOR 256 +#define APIC_VECTORS_PER_REG 32 + +/* + * Vector states are maintained by APIC in 32-bit registers that are + * 16 bytes aligned. The status of each vector is kept in a single + * bit. + */ +static inline int apic_find_highest_vector(void *bitmap) +{ + int vec; + u32 *reg; + + for (vec =3D MAX_APIC_VECTOR - APIC_VECTORS_PER_REG; vec >=3D 0; vec -=3D= APIC_VECTORS_PER_REG) { + reg =3D bitmap + APIC_VECTOR_TO_REG_OFFSET(vec); + if (*reg) + return __fls(*reg) + vec; + } + + return -1; +} + /* * Warm reset vector position: */ diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 1f44bbc63f17..f94adcdf242c 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -55,9 +56,6 @@ /* 14 is the version for Xeon and Pentium 8.4.8*/ #define APIC_VERSION 0x14UL #define LAPIC_MMIO_LENGTH (1 << 12) -/* followed define is not in apicdef.h */ -#define MAX_APIC_VECTOR 256 -#define APIC_VECTORS_PER_REG 32 =20 /* * Enable local APIC timer advancement (tscdeadline mode only) with adapti= ve @@ -616,20 +614,6 @@ static const unsigned int apic_lvt_mask[KVM_APIC_MAX_N= R_LVT_ENTRIES] =3D { [LVT_CMCI] =3D LVT_MASK | APIC_MODE_MASK }; =20 -static inline int apic_find_highest_vector(void *bitmap) -{ - int vec; - u32 *reg; - - for (vec =3D MAX_APIC_VECTOR - APIC_VECTORS_PER_REG; vec >=3D 0; vec -=3D= APIC_VECTORS_PER_REG) { - reg =3D bitmap + APIC_VECTOR_TO_REG_OFFSET(vec); - if (*reg) - return __fls(*reg) + vec; - } - - return -1; -} - static u8 count_vectors(void *bitmap) { int vec; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2076.outbound.protection.outlook.com [40.107.236.76]) (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 615B524676A; Tue, 10 Jun 2025 17:59:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.76 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578349; cv=fail; b=exEEfH7TMDyIoAdSWsMRj1nuiIDbHylvdjdvJd0Oa9qvEo6e61X8FvhwTMkW9R3JxsIJ+YqqwV1ivVPYYYdnyWxx5/uLuISyQ+ccfxO1SC6qLeXAJoqQL5qMH5SABRJekM6psUQIsvvjDpF5byppDg3xLEjXCWULT386C7oAZaA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578349; c=relaxed/simple; bh=bP2mjtcUGYJKoLP0tO8rLRU03nqoC+kzgb4jmBLIeKA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=C6dcWuFaTs9yyWirCxt0cHnBPhA0pE/MN8ZS1NqqTycu1abThRQcdAANCr6BxFcI6a9GkT7Cj/vy4NZZSQcGzRQ/HTxBT4eCQ9sxg39JnPTzrQfB/sSmBw0QCkBoaHgiHxtfzlDa8W72VgyYk3q+uty3DY18R8na9IOqMGS4Gz4= 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=XEJJSVto; arc=fail smtp.client-ip=40.107.236.76 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="XEJJSVto" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LHTfObNPRvW4dLXC6Wn0CayBjZg0gNBc+jt9Ovr5sATP32AtuxLF95N182lUy9gdfzgANbrH+KQfADE1AtPwEwQa2Uel3fyJws4heaU3GubZYW7LXTZNUCjPyMtl+zjCy7nbDh4+sC5U87wj6I8OUhaeeGuHj2lMr4gPLebRqrXMSCzbSkya17Cj16nSCJTJiHVGNNrjS7hjnUZDheH4KU6il/vk3fOrtP0f1SD8cG2O4z84OyqhDn8wVaSauhH8L3C6+SSfnaUph2rVF3C47qfna0a02XIM2LXoIKaSKU5GrNLCubvEYebrVHuRqk9e2HYgBP0cvE9km241F0kGEw== 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=lZyPZoHd199o4amWgiGzJiidSE44w+tsDqV3vEW4CRQ=; b=ve9pztAvj56FnzD5ZOdNAs19rTwtFBngV1HVmC1LeReypHjCXHBcA1eOosZo2NMaAY1L9vlFd4r9wx5763V1KMhTqEJ1y7FlblInoC/wNAYY6WQQpVp61OPgrQGuI0MYgG4/hp1avqHQywe/+dqhI+5NsFrtidNCW32kV4ncvFZlSuwS0ndylKDqENlAU7AcjiVvye9hkgHYIhmqOSdYeT6mbEfnOYbo4oGXi5B9VPBwjDZ6+oBLK23hdaoggzTkhE0woLCgCEUsU2kEchWMLpfl0aE0bfmnRuNvw7do7MmVjK66l83gN22Wh5swWLBQyBUqcdfg52IqpjIuuZRAAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=lZyPZoHd199o4amWgiGzJiidSE44w+tsDqV3vEW4CRQ=; b=XEJJSVto9hQ8+K/eH2d5/0Tf1J2ORvqWjGYu33B67ZsTTKK1gJBss8EZn8bBWuuy9MFwuXRBDDmBgb4zq7C8mrZJxKjS094rSjr+2977yKKTvu3aSr5lKZygrZ9ubBS49TCHEVlwCUZ2NViLh7HzUe5qHw3Fc/EkpnfNTtLh0wI= Received: from CH5PR02CA0020.namprd02.prod.outlook.com (2603:10b6:610:1ed::25) by SJ2PR12MB7797.namprd12.prod.outlook.com (2603:10b6:a03:4c5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.35; Tue, 10 Jun 2025 17:59:03 +0000 Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com (2603:10b6:610:1ed:cafe::89) by CH5PR02CA0020.outlook.office365.com (2603:10b6:610:1ed::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.27 via Frontend Transport; Tue, 10 Jun 2025 17:59:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD7A.mail.protection.outlook.com (10.167.244.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:59:03 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:58:55 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 12/37] x86/apic: KVM: Move lapic get/set_reg() helpers to common code Date: Tue, 10 Jun 2025 23:23:59 +0530 Message-ID: <20250610175424.209796-13-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7A:EE_|SJ2PR12MB7797:EE_ X-MS-Office365-Filtering-Correlation-Id: f86f5406-576f-4bf4-cc2c-08dda8487c32 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YHrvvr5tV5d0d1S5yKFjcY1JcsyDyXIVTshiWNRlrlax/kzUlppzqUkJ36UB?= =?us-ascii?Q?5dOp/g17jXYieyKaiCRAhSQmRG/sF7OLNp8KVSwhSguyt169EMop/zpU+Nux?= =?us-ascii?Q?1wC+YuhdCfB01vuFovUlAnrL7epYU69bM5qOoexhZBuq8YXqKE8VauH7QW4t?= =?us-ascii?Q?clsn6W3P52YSg6f/kuDk/uKYrY3ySNWsiN+Sq9WdRmeSXg83xKZbycBoiven?= =?us-ascii?Q?VfWQgUJvHYGthzLINSqIAwQL4/UFKnn57FnLS9X9eTl85urJJQaO2Ne8SyyS?= =?us-ascii?Q?aZlQ3/DWDvi0uMBpehb596gaS90ITHA34koCjeMJ+xq66sBobIsL/QhyxQOJ?= =?us-ascii?Q?o4cn7cw48ofo9Y/4ImkocXzU6VEWM5jMpGU9mCmayV8/zdq2VbDyzlZfYFPF?= =?us-ascii?Q?XYHyoOWycTXOqqyth9P8va8I8xeiQUtKEt1XpUIo2ZKVFc88gXuF4BiEo0WF?= =?us-ascii?Q?r2jrxrzlRQmSI+J7NWpEOFUQdRdqpG0OkQQzbvr1yH9y3HJterbUzAu/Lkdm?= =?us-ascii?Q?GfG2ir0BgKjFSONjAfFDvgvWu2lMG0vZFr89tTtnLVAwj3ujZQ3/ZSPmGSAx?= =?us-ascii?Q?nB0FrUIJjNZx2PLq9fXiNuPe/LGYLIiDxP1Hrfwz5dcif0dQVmJNhdcxgEip?= =?us-ascii?Q?C7PB8b2Mw8OUQ1si55nlpZoHTYHMiVFW6HjmF2p24ujJn3cEUgjQAFTkur+S?= =?us-ascii?Q?g/ji3uXu4hgzyGC9wvGywjuUvZEgYdXKb30IGCcgrP6Phe/7gmk7GZ0Q8Fhk?= =?us-ascii?Q?sY47pFJFBTKe31XvuS+PW7+40/z0xoOGc12HOpZmwCqryMiZm49nldukSKt2?= =?us-ascii?Q?SBc64WcAvHRAJfyKfE4GU71KAjxcehHjnk/KmJ9YYtUyAEogH7veqCENJlRW?= =?us-ascii?Q?n4fWtAguOptnbuJ/kdfL6qimvG+SArSSafPKaKPtfZk27/mK13EalHCv63gh?= =?us-ascii?Q?SHeVAHOCzkGTxvk3V3kdoM4zE1btlQrcfwh0zBt8jf63sXSkE+vb0wehQIhw?= =?us-ascii?Q?EVBcch097yhNMYfWo2/+4dyCep3qWHkixdMUezZiXPdqE6PiFgqmfFGVNI8q?= =?us-ascii?Q?OazWXE8vK6VM/bn9CG/39c1g7jmElRSQ2RRrDsNkj+LjGe/7Ad4Jq6ZYBxAh?= =?us-ascii?Q?8JeLwf0rzT/u+UcvHCfjLwg9Gg7xPlOCi59f0uscRKIPNfgjtLY3JdX+y5m1?= =?us-ascii?Q?irAxXj/ECOe++9gdE4NSowqk6dYT3bC6wPYn9H8ePwwsFzjI5nRYNAqcRqyq?= =?us-ascii?Q?DCILC6TgV7EHZUSaTPMKw66AReXs9oAULau9/1b8FFlKXnDPC/BGqcA9fb6t?= =?us-ascii?Q?l618xXlhTCy3AWJria3/HaxjnHLOUSz8wVmkKkuIaAwDJ5ycmupWy3gfrCUu?= =?us-ascii?Q?dbutTsjv7sA2Ln31z6lTYRetmmOR4GeUbApTby7+kHwtT9TR/1G21aTcOY27?= =?us-ascii?Q?4OujTVfNsVg/oiSqGwQeWK2N8qR9nvh7WFlNvoFCTHMgIx9AgulRH3Eyc9dJ?= =?us-ascii?Q?XMsCbSc9u/fQJ5AfRlaNihFPRJdzfOA111ZE?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:59:03.0756 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f86f5406-576f-4bf4-cc2c-08dda8487c32 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7A.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7797 Content-Type: text/plain; charset="utf-8" Move the apic_get_reg() and apic_set_reg() helper functions to apic.h in order to reuse them in the Secure AVIC guest apic driver in later patches to read/write 32-bit registers from/to the APIC backing page. No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Moved function renames outside of this patch. arch/x86/include/asm/apic.h | 10 ++++++++++ arch/x86/kvm/lapic.c | 5 ----- arch/x86/kvm/lapic.h | 7 ++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index c7355bcbfd60..904029f6530c 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -525,6 +525,16 @@ static inline int apic_find_highest_vector(void *bitma= p) return -1; } =20 +static inline u32 apic_get_reg(void *regs, int reg_off) +{ + return *((u32 *) (regs + reg_off)); +} + +static inline void apic_set_reg(void *regs, int reg_off, u32 val) +{ + *((u32 *) (regs + reg_off)) =3D val; +} + /* * Warm reset vector position: */ diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index f94adcdf242c..b27f111a2634 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -77,11 +77,6 @@ module_param(lapic_timer_advance, bool, 0444); static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data); static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data); =20 -static inline void apic_set_reg(void *regs, int reg_off, u32 val) -{ - *((u32 *) (regs + reg_off)) =3D val; -} - static inline void kvm_lapic_set_reg(struct kvm_lapic *apic, int reg_off, = u32 val) { apic_set_reg(apic->regs, reg_off, val); diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index c7babae8af83..174df6996404 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -4,6 +4,8 @@ =20 #include =20 +#include + #include =20 #include "hyperv.h" @@ -165,11 +167,6 @@ static inline void kvm_lapic_set_irr(int vec, struct k= vm_lapic *apic) apic->irr_pending =3D true; } =20 -static inline u32 apic_get_reg(void *regs, int reg_off) -{ - return *((u32 *) (regs + reg_off)); -} - static inline u32 kvm_lapic_get_reg(struct kvm_lapic *apic, int reg_off) { return apic_get_reg(apic->regs, reg_off); --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2068.outbound.protection.outlook.com [40.107.92.68]) (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 CA7762367CC; Tue, 10 Jun 2025 17:59:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578369; cv=fail; b=YCFhHOei7irs2h0FVtnrYs6QDSW7XUqtnMQbOaq1CH0qcRCUYM9Z3YoaFpWlFTsLsKdeam/KhpdrokFAR/zvJaqGbuikS86zplJ8BbfTPUKkYLIHyH5zJD7FIPSnAZkEcWZUCSPAFoB4fQoDWGKSlDECV0/o8hNtqd3xedDFGNk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578369; c=relaxed/simple; bh=kyAlHv6fSGpTYB2S2zREAhhGR/lathoMM1HzGeJGREY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZAPbfDGYqJ18vw9WsDXSuQnm5M5GzTfkFVrHuPLQHPhQNN6DEb6exQUH1nNBz7BymmDHsSwcnEuLls7DrA99yZfjhGAlF/aj6E9KhsTEQ5blPewTs7gcpu0N91aBcpeR5FeHiCFhW5SEw79ELLiMAKVQ4BKnZsrXzSau/kTapWM= 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=eUjlMnWp; arc=fail smtp.client-ip=40.107.92.68 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="eUjlMnWp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w7uV+4TtJS65Eo9DRDTGdgWNWp8YKzbOz+uJiH97e6MXUHmriHUqOqqpBA0/zFRy+D/QW+qKYillrl9VURGv6H+6E8RwY+PzAh3lA29ltWdKv65/qXkdPTk3DqQoohi61CRlMpR0tKFSJXjkAZRELNnSkc/jenAsAKP7b0oplnkCIc1bEHz0QMCreDGeR+1NAwFRcRDErpQ0ESr0NdBWkV6stXaBfvQnUMGVPosSaR8mPvj1pH5pxZNEmCSAzdLT3JaOW1hDocecP7S2UDoCByP1OerueR2wgUg1t6nnM0l2AVbaoGFIiI5BNzbmGUXz1khnxLXm/iNedLi2oMR0Uw== 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=hXCNYsidJXwh/Q2E09a84rchXWbOpJjqAx8+HA/KdWQ=; b=wUXjbgOQim4XtYiO0ObarcymiJgjbGoS72SRCWIfHIET6hSQMWVE9fX07Uh+1W2Zz7bWNpLmBdhcRFV/bfZggFjOnaJw3i+9JIIBCZvgmQvyjfQKI7BWYPw0+5Vp02n9pKWQDZ7mYSvknXYbLKVGcSohKw2fNVyl30ZOMo39hAERZoiYZaepP0mtsGRqloSGGA6wEWdViIvRoR+jv7r7wkHY3DgVre/Yn16V9yOdPfhAMrUeIWug+eNWH8Bfn7rkzG24kk0SZSODRwlIdbTnptdcy093ChKBWwE8RBLuSCeMszOgoVWbdaQsYY9YVbEX65CelCnzGZ/eTC3py5tJ5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=hXCNYsidJXwh/Q2E09a84rchXWbOpJjqAx8+HA/KdWQ=; b=eUjlMnWphszlY1Dlw2xy024hfBBlQBndWZC7iSjLLe+aruxylP55b/C9KpLxApESAM/dRv90eSeFbG7QeH7Fv1rw/ukSVkaMHSFidYu7H3e6pCHcAfovszz4Cm5jauDc3QsJxsg/n3bLgnPhc9Pvu5LQiqsbQ7fAdk8Ny1Z4gRc= Received: from CH2PR02CA0022.namprd02.prod.outlook.com (2603:10b6:610:4e::32) by IA1PR12MB9062.namprd12.prod.outlook.com (2603:10b6:208:3aa::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Tue, 10 Jun 2025 17:59:25 +0000 Received: from CH1PEPF0000AD77.namprd04.prod.outlook.com (2603:10b6:610:4e:cafe::7d) by CH2PR02CA0022.outlook.office365.com (2603:10b6:610:4e::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 17:59:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD77.mail.protection.outlook.com (10.167.244.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:59:25 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:59:16 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 13/37] KVM: x86: Move lapic get/set_reg64() helpers to common code Date: Tue, 10 Jun 2025 23:24:00 +0530 Message-ID: <20250610175424.209796-14-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD77:EE_|IA1PR12MB9062:EE_ X-MS-Office365-Filtering-Correlation-Id: f5512773-5b95-4f6f-606e-08dda8488955 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sDI76/BmdD68ACvwo6lT+oiM+tkUE5aOKm+G6vKQ25aoh7MoSuHd+Vq5L3CB?= =?us-ascii?Q?LffJ3R0UxKBqyt1jsIGstuJTovvxLDmqijCPHmLasWYh9lL2DLs9VJ0kQzgC?= =?us-ascii?Q?0CySCLCkUg6JF+R7U6yh3WSmqe7846DJB/vcoqRoaAIcALhkPNFYjZPtkgjS?= =?us-ascii?Q?HMRCU0p45Erv/fL6K15YUURQp/DMmoT2b/dC/n4cD8bKxEC6u7FXFdPzcYUQ?= =?us-ascii?Q?Hy3Frzkgs0YWFITCydOymRYAhKHSu0O+Ji7D6ZTSKsBkWRshzLIpB7/Sit0M?= =?us-ascii?Q?+9y60z13VAQ0IbjBStluODCrbaelWYhrIGnLItBKiK38IWzF6GDvIGm+1poq?= =?us-ascii?Q?pGOL/jrPH8p+fAv5FLjBD5yPvozY+zR193hO6lSWvTe8la61Ab8JRZyzkQwD?= =?us-ascii?Q?3c/p6ixN+1KjJ4tDAeS/olScio2UwZFCKkFZyXBnfgnapNTZ/kV/PYBEtEws?= =?us-ascii?Q?0lnbLRDBWMCpCiZVgxAZYzlVhVP5jsY1WyObC18BltmrfZ7C7KD2DpN59CwL?= =?us-ascii?Q?cN8rIMX1j0SWqtY+soAlGcZhiKyhgMZ0TZfA0CMIGs1TLo6Cw8lOtt5fbXCG?= =?us-ascii?Q?6wtzqXR9eyhqA5/71/Ihts1In//WHOpowXBrN/X+wIEXeQ5XQQPdzhFnOdUR?= =?us-ascii?Q?DkUljdZBcNv0c3Q4PTAdG7DVIZPFWo8MUmGYC6PdcZxE2zIQvz+jk6ilLfDk?= =?us-ascii?Q?aum5QyoTHWbm8C0h3VUeWINGcm9GGrp2s4sHycuhx3VP3qSKac8tZoXygkIb?= =?us-ascii?Q?5adlJ15hYUHiHf/drBdcbGAvyvvhOyoxFxz63qJFIeF04+xuZLj+zJ4Hxlmo?= =?us-ascii?Q?18+epXhyFnnsmtJzUS4FxmQp0ksNDOoeYj708sOZm20sCtRCW9NnCVTruny2?= =?us-ascii?Q?LSYJ6OHIwv5kXTF5BrL4L/Q+AFONRItEzozu6udyKj4rzbUqs02hZGyqcB6k?= =?us-ascii?Q?CsQQbfpgeorVyLIFv82+Zb9tQL7ov1f0fFr4fi+dElaq9VKDKQWkkUCX889u?= =?us-ascii?Q?PtPx6QGHIpu7Ip2BWbK0Sv6TYtc+qBu4KYbsbIAvCoRAtuPw+TqfxWy1FkU8?= =?us-ascii?Q?L9YNSKrKwnknRwh0PyUr64cp9wrXPQyWi5AnNEll0868Vph+l6dp8edWHkjB?= =?us-ascii?Q?LXLTeDOl2UXtD6k/45ouLThenHtRirohO4vZyonIVz2jUb26jX4L3j2OyLV+?= =?us-ascii?Q?PD0bG69VBDD2UB7qCXSx1Y+6T3LKdbdVBSofYDRXokPGuvXuNBTbnebnYATd?= =?us-ascii?Q?ggfDeI02yWW8nYDY3Kc1Yf91Rm4SHOvrfmAlFEk4H2pUlFwWG8UvrdIs3qJy?= =?us-ascii?Q?myDWlO2zKXQSnvPhPWxGLKa9mgNGM0Iax8417Sf/GivpOJsFAmTWoe9rUPCI?= =?us-ascii?Q?DzUT2n1aEk5aT0MazyV4r0MedZJdGYsQOcdNAN4m/fP6Vwn381Q6r9s/n5iC?= =?us-ascii?Q?8ih2fYlxPxKpAC/cej6YDMN/NxlycRgREubbIgM9wIBnFEHOjqPD74OiqMAJ?= =?us-ascii?Q?+wwsFPCCwhyLZZm/zp8P+Ew7X5dOQor17Xca?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:59:25.1095 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f5512773-5b95-4f6f-606e-08dda8488955 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD77.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9062 Content-Type: text/plain; charset="utf-8" Move the apic_get_reg64() and apic_set_reg64() helper functions to apic.h in order to reuse them in the Secure AVIC guest apic driver in later patches to read/write APIC_ICR from/to the APIC backing page. No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Moved function renames outside of this patch. arch/x86/include/asm/apic.h | 12 ++++++++++++ arch/x86/kvm/lapic.c | 12 ------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 904029f6530c..b8b5fe875bde 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -535,6 +535,18 @@ static inline void apic_set_reg(void *regs, int reg_of= f, u32 val) *((u32 *) (regs + reg_off)) =3D val; } =20 +static __always_inline u64 apic_get_reg64(void *regs, int reg) +{ + BUILD_BUG_ON(reg !=3D APIC_ICR); + return *((u64 *) (regs + reg)); +} + +static __always_inline void apic_set_reg64(void *regs, int reg, u64 val) +{ + BUILD_BUG_ON(reg !=3D APIC_ICR); + *((u64 *) (regs + reg)) =3D val; +} + /* * Warm reset vector position: */ diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index b27f111a2634..85bc31747d54 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -82,23 +82,11 @@ static inline void kvm_lapic_set_reg(struct kvm_lapic *= apic, int reg_off, u32 va apic_set_reg(apic->regs, reg_off, val); } =20 -static __always_inline u64 apic_get_reg64(void *regs, int reg) -{ - BUILD_BUG_ON(reg !=3D APIC_ICR); - return *((u64 *) (regs + reg)); -} - static __always_inline u64 kvm_lapic_get_reg64(struct kvm_lapic *apic, int= reg) { return apic_get_reg64(apic->regs, reg); } =20 -static __always_inline void apic_set_reg64(void *regs, int reg, u64 val) -{ - BUILD_BUG_ON(reg !=3D APIC_ICR); - *((u64 *) (regs + reg)) =3D val; -} - static __always_inline void kvm_lapic_set_reg64(struct kvm_lapic *apic, int reg, u64 val) { --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2055.outbound.protection.outlook.com [40.107.236.55]) (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 7973424500E; Tue, 10 Jun 2025 17:59:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578393; cv=fail; b=Y6kk/z22M0lUSDq+AP89E34XBdPIK8+6BVauccs7llkoYewyyjpiz3MlYN885WW0Z4MfFgJPUjieCdT5hZDe6q3az4zT8pBi5P2Nbrhn6+99/0qweXYz0gYzAoCuj+SGVg1W6UQz48me3XUWs/HoMVz8GefxiLRQ5yW3xiy5NoQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578393; c=relaxed/simple; bh=Ad/jxD8pi+s+XLQrKjxYOCqxsehbvDPjkvDrW9px0xo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=N6Ybx4Zju9znZUs2lLu6lz176fzYCW53lpmfaDPlYOVC9S12Om1eOaIA+hY8T3Vm2YZ23bOM/+Abe2hnNgYgCLOL1CHFOfksvN2LKJ8yzqial/i5iNrsBrhEmET0YKrgEz2OQe/LqWQs93ZxEleS9uSUAIcETHJNz2k4KombSLY= 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=OhwgGINp; arc=fail smtp.client-ip=40.107.236.55 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="OhwgGINp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y/B4jQ2NDIB9lD8izU4pPfpCGcKMShk2bSOMG3YAhYBJB2iyTGsudB90MP3M5ZTTs6LQhHjvcAZbE4q0v7XuPpSnFujv03CVtJ9rG41SBcrXb50XpKd8Z/lAtuz3awyiDDAWY2Iy0UlwtGyzmkDm0InC9ERUduFBxx47r6HR7HEvCdftTO+5qOMGyBUXrWK6OXmO9N/IGWg0kfBu/p/QtuOc7LNaJFeutyu6YJzZv6ZhhqCL6S1VLTPA/6t5iXFa2DLNnLSMoO0UCjiI4QvVi8W4TzU6huCyFyuJQa1swnM73L4YLFh8QSTZUagWj5t9xS2tTxqYkGFX+vEd5iRU5A== 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=GQUBkz9MI+HS76u9yxeLvbbRHTBus2mvth4HpRZpzvw=; b=SrM6DY710E4vmtVRYpXrzbRweePu/AKXQQr9M2Lh15Xo5bQCZF4/Tc2+C1aC9XSrztcvge+nAMc7KrFVJZgq0aJOoRH6Jp24BG5OXPYX98dsUTtBPJ7Yr0XFzx4XTrhbUapvZi/pEjoHmXwW6957WPqvBjz7XyV+IlZUmtkIsjgNVfwveMc5kWRN3OW0obz7lqYImbxyf7UsJnQ2Rc/Ml6pNscDGmepQ1ATe6pirCTNTu4Fcix1qfYjYSBqNjd5zdxiO44dNI3uqVzq9UqR9v7z6X+2ebqshnL30vD8qGxAbt1Qpz074XKu7BDtvl+709oHvgPvDKEDriswFkBfe5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=GQUBkz9MI+HS76u9yxeLvbbRHTBus2mvth4HpRZpzvw=; b=OhwgGINp8crgGrodtIeXGPxJY1LPgixwIOU0NRxf7AcdPGNOANm0NO18at7+4A1iz5LkzYGub3QICkGHhlR3CLIAKOy+Gj35taJoOvj++DNCPHTiIAxi3xoxJ/wPmqLe8QH8itCHF0qA09Lsg1Ast1MDoNTtjbJI3ZRQFJ4kGT8= Received: from CH2PR03CA0029.namprd03.prod.outlook.com (2603:10b6:610:59::39) by IA1PR12MB6284.namprd12.prod.outlook.com (2603:10b6:208:3e4::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Tue, 10 Jun 2025 17:59:46 +0000 Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com (2603:10b6:610:59:cafe::ff) by CH2PR03CA0029.outlook.office365.com (2603:10b6:610:59::39) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 17:59:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 17:59:46 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 12:59:38 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 14/37] KVM: x86: Move lapic set/clear_vector() helpers to common code Date: Tue, 10 Jun 2025 23:24:01 +0530 Message-ID: <20250610175424.209796-15-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD78:EE_|IA1PR12MB6284:EE_ X-MS-Office365-Filtering-Correlation-Id: 43e0185b-7372-4854-f558-08dda84895cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?biszSFRB1Dsv9H0/ejzauTGV7UNdUPxYWnsDsVIi4XlNQCo8uyE6i3h+IwQY?= =?us-ascii?Q?ImrRFVhOUtapEAmLU3jNaG75wzbgCmuiay1jhC22RJfDMQqL9suvF1C8kHgT?= =?us-ascii?Q?byAJ+1NQpnYxDNcIhgj/YBSPFcbRnh8zARD88usTc5gUdrnsN//OdhET0sX8?= =?us-ascii?Q?Un7akijWJKFY2ORmrTLP8WwW3QcpJpdZGfsvnJhimWfV6dLe+E2IYtHEqr98?= =?us-ascii?Q?oQhNVGxsufoNi3ARAkjxtGssMcL9ZkohgNN7Ao9z30ZAzpCeMzcZkcJzkkE1?= =?us-ascii?Q?8koL/+0u8n/W1mRv+5qBh9kz9AH3rn+FTe1uLVvNhrCtJVy8DsmLB5JhiqKk?= =?us-ascii?Q?3YJ2k3vIU4Wsi7Hd8sxPOdG7eILc2N9gsa0X7nZjgITwyU9DP4lyFn8dz24u?= =?us-ascii?Q?8iECJq1gPgd4psfbDyTQPAMe1VW79pWwaf/82c9woL5yOWh12AOuf/no5usd?= =?us-ascii?Q?SrEQgTaynyOQxIS0LXsYgE5LdEDJbsnsFC6698+YpkmUAMHfO+ZB5bj2gi5l?= =?us-ascii?Q?O2BmhOvjmVLgdd6CZlcpet/0BGkcJiPkB+MsC5cPhVzacuqL4yBOWSW8DSUy?= =?us-ascii?Q?zOih9ntIP8IGZaxZ5eI8JTGy6PysBpQi1uKQJpIaBfCRw/cjiCDaxPIFQij6?= =?us-ascii?Q?SnE3fC2i2hI12XAVoRk6I5NUdXW/N4aUldBf85VvP96YTM8rlZCvySP6nwod?= =?us-ascii?Q?UfknZcnhykEfhCozMGz8p5vQyUIjIj/JYiV5FtxKo4zGqwYPSMjHK3DmiBNs?= =?us-ascii?Q?lLTrVlwMwIdbh3QheVJr8XS19NRHXQUyCMRLnmsXtKDHE0CBm2G+DCfNrqZe?= =?us-ascii?Q?BzAPF62z8lRifjRQl9dPdrAPAz/t2Lo982GrPF49ajdVsuuaaL3ljatvz/4B?= =?us-ascii?Q?q4CBEQJ3kruoPZnZaywxJyZNvcPxniwzh/8GDYiNh0krh6cLoolYpcdydYjG?= =?us-ascii?Q?iY1cKK319QRdtK8JcxrRfa36vDkmHGXE9SDnUjTdy2q1mvYhNqAq0IadAbh+?= =?us-ascii?Q?LLsSDRDVg/RtLQreCSMBN6JE+fuHBBFZlXt/OPinzEXl0CxfcAtyIOJ2bBh8?= =?us-ascii?Q?1KpNsyf0Fpmepg9+t6/AvdMA5Qm0QLVWQgnIyXHL8VOXyTJIMMkjgLA9nbGj?= =?us-ascii?Q?5r8m7YYSVg5lpyrrmjl2xDsaF1NG3t5c/zjvwW/NYXj14c1K66+m7dbc+CmI?= =?us-ascii?Q?sm+ZAGgjy87ZWkUhAcAVbp92agCNy7mDBD4DQDUenDOIPSIWL3EQlYCaR72l?= =?us-ascii?Q?iKTB1PqJf2e4h/zLUKDB1ujeRaB7GOZdq/AeJs2NOCRvDOceO2kAa2MrZruW?= =?us-ascii?Q?0yMnY0eH5BgcEKfXdDVY7zkTLM0qMfYr8+Hr9vd15XdVZ7u2fqRi8XoTFzOJ?= =?us-ascii?Q?zbWbjd1L/6o4Xdk31SJImr3EImHjuswhDsA16+CKA/cWb08rnRGbCu17MfsH?= =?us-ascii?Q?zUTuMuCzN+PRNIhhtC2Fqth4M+e1pvlK8bfMhNbU83V1hrpbgv7ySJuP7UTO?= =?us-ascii?Q?LZP03ZYVSy44HMG8LmCybGCj60JlotU2uwDr?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 17:59:46.0287 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 43e0185b-7372-4854-f558-08dda84895cc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD78.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6284 Content-Type: text/plain; charset="utf-8" Move apic_clear_vector() and apic_set_vector() helper functions to apic.h in order to reuse them in the Secure AVIC guest apic driver in later patches to atomically set/clear vectors in the APIC backing page. No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Moved function and macro renames outside of this patch. arch/x86/include/asm/apic.h | 10 ++++++++++ arch/x86/kvm/lapic.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index b8b5fe875bde..c6d1c51f71ec 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -547,6 +547,16 @@ static __always_inline void apic_set_reg64(void *regs,= int reg, u64 val) *((u64 *) (regs + reg)) =3D val; } =20 +static inline void apic_clear_vector(int vec, void *bitmap) +{ + clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFF= SET(vec)); +} + +static inline void apic_set_vector(int vec, void *bitmap) +{ + set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSE= T(vec)); +} + /* * Warm reset vector position: */ diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 174df6996404..31284ec61a6a 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h @@ -147,16 +147,6 @@ void kvm_lapic_exit(void); =20 u64 kvm_lapic_readable_reg_mask(struct kvm_lapic *apic); =20 -static inline void apic_clear_vector(int vec, void *bitmap) -{ - clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFF= SET(vec)); -} - -static inline void apic_set_vector(int vec, void *bitmap) -{ - set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSE= T(vec)); -} - static inline void kvm_lapic_set_irr(int vec, struct kvm_lapic *apic) { apic_set_vector(vec, apic->regs + APIC_IRR); --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2050.outbound.protection.outlook.com [40.107.93.50]) (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 A04D6245028; Tue, 10 Jun 2025 18:00:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578418; cv=fail; b=S+l3W645cL0YC/gErcCwLymHVx6dWaidosT67kCNpNLUKvlJv3Pr9AAF/oOJnmW1yY8TZZhgRAVex4krIV07aAwHSARhz5auwuIR3ZgOmBdZzwbYGS60y/AgUhGfrrJdStN7FwYWIkN+4wHQq56aTXsdfjCpx3G5ak5edAjVZLE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578418; c=relaxed/simple; bh=ozAIRwXbOZbGu4jPiy0PAb7MK2NHqYsNBBgg5NMM4jk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IInmmx/l/1c+PrGyWKYIoGVs44/qKaFDcnGjV8c8e2n+/OTAe/6dWP9otskqDwhottcbLJJQkg8ncTPdj1xO519ssexf7eW4P8Hvb78mVHIpl1gAPTmNgoqj0bGEHtDKT9gNXgZSdTGs+2OMyqhBcTwA6Zzo+8m9byjAC4cOct8= 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=3nJZmHjb; arc=fail smtp.client-ip=40.107.93.50 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="3nJZmHjb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=okj/ECqkw3TRgnbXEBdfoDZSQOwD6VrYDqDMBeCVnla34uOtFXxu1pUtci9J1+XIz9xwVXt/ZJr38IxrafGTGUBoLYLrTlYv1bAYxe3D0IQ+ZDSAm+gc7xLmsXwhhdHV0vEFF+t7xZG0bKkfg0Z2abIf6tany+Su7EjMoBWqEV15YlaOBnN4MahRnEWBPbPvWEPa19Zy6nx5kF0QRGIDV97L6TvV44F5SvGzWLX8qDC9dE/JBNOdVruhlkYInftRs/vkuN7m6VpDd6dSrooBa1DTuhPc+n3hHXxj764bm5A1Ow9dCXZjjKL3PGIh5LnnVEAiQtSRQ26KzgaU90khQA== 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=N3TixncYMd+dai7EzhTj4JRs90ylHRIsEwkqsHVOpIk=; b=N2gGufkpJt6hzdxJ65T/WMEz5MO0PluFu18dawUUlpTiGSnr3pedyE3H3fDM9Ic3tdkWARnjD99gCzR4o9D9HwB3IZD+UDYFih/+j2OpdA31hQWaLjH+GEx+zunBjfOdKsdJgx7a+ZxBX1lzUU0V3EJmxIvAaZPNy9DQQ+LidxayQOL+TG/eQOeknugHssyYfvzc4UOmzPpdFRcfR6NyYyzMWIyrKaPNwj/UL2+3YykwYOEiBvb8Qn1T7xmqy2CnTgCBh9LEq9suLzOB3ZU88GFV0Ry70PYFpgLcF/4Qafv2aslQZ4qlmPJ7kylLAekxfw506LmZprIrcn+DX2DUyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=N3TixncYMd+dai7EzhTj4JRs90ylHRIsEwkqsHVOpIk=; b=3nJZmHjbC4W/Iylcb+CUz8LgAMTsNqYIg05Sf6Xb7cvmNeJlXGkZni0PvULx8whvlMQrR5Q5CKH4Ia46JdXpQr76XWbSvIbKYnicdXqViT6RQSar0pPFbRUbpA4gSgpbZnWezwvozsCIQVp/q/qcsZGW+5r3SN2ytS1kZNi2QNU= Received: from CH0PR03CA0080.namprd03.prod.outlook.com (2603:10b6:610:cc::25) by BL4PR12MB9508.namprd12.prod.outlook.com (2603:10b6:208:58e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.36; Tue, 10 Jun 2025 18:00:13 +0000 Received: from CH1PEPF0000AD7B.namprd04.prod.outlook.com (2603:10b6:610:cc:cafe::ea) by CH0PR03CA0080.outlook.office365.com (2603:10b6:610:cc::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.27 via Frontend Transport; Tue, 10 Jun 2025 18:00:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD7B.mail.protection.outlook.com (10.167.244.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:00:12 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:00:04 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 15/37] KVM: x86: apic_test_vector() to common code Date: Tue, 10 Jun 2025 23:24:02 +0530 Message-ID: <20250610175424.209796-16-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7B:EE_|BL4PR12MB9508:EE_ X-MS-Office365-Filtering-Correlation-Id: dd34e1e3-1477-46f7-4335-08dda848a5cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hh/QXXirunO4oZW8gdscriU8b6J60YswSvrNTQ47ksvLZw3i3JPeWlpDsidz?= =?us-ascii?Q?7s4AIzNlK7ady9dBXCzLC5KRoIoZxELSz89xNzRoGr7ZLGRKWKnJCqulsAWr?= =?us-ascii?Q?6syGiv0TvgIR4hG2hhBuycOhQHYusW/EgDMGgk4okYmgdQi4ghkkq+BA80Dr?= =?us-ascii?Q?2RMaa9DavlPQCqW6vxlUUa9/xzzWyMADSn6iq9Vaa+xjJp+k1gf+o1n4jL6+?= =?us-ascii?Q?eCrLeNr6QUiSEMfbus/HlFYWu3XBqj88rXohOuYA4i2/o0ie6+ScECiNiz0a?= =?us-ascii?Q?/yDnR6u3MaOAyYMZoaKNPxmwc1Mjw/j4I85didSVlgpnJEOwiwmuBTzIRW/P?= =?us-ascii?Q?H24zHOnAO4kGeTraUQDegCsLfxiGf1q5+zo/vxhAcecN3H2ZZYWqSlswNNtM?= =?us-ascii?Q?+81oO6UapPryi5KYCCLkKjKElj5ttRmzP26Y5/+k+SoAQH15Dd1PvX8iVBHl?= =?us-ascii?Q?NYLVwOS0PAYCcqqq7+tCKINjuqCRdr5L6XmWnRA2hrs9x2UjexIo08bEbZxB?= =?us-ascii?Q?71CyIqhFBvWZC29HyDH274roAJ5os4s3iIpT3okp402AgfwdSaBQdZYvX6dC?= =?us-ascii?Q?ie6AW5uB4WcLyAJhShSd98f+XVvRe6jfjkbTgHBZ8iWgcoa9GkJwqijM4+wW?= =?us-ascii?Q?HRZO3mlbnCUkADRYlRbC41I2ygIRp6M5My38yc6HBBPU7UOuQE7bK72TzWfG?= =?us-ascii?Q?bkL2gT4i58cR8IG59EI/nF0JdDyclknbh0L22bO56KRqz4e51Nn8QAi5u0cz?= =?us-ascii?Q?SP+6fpM96rUUQcfnzMtzd3UTq2TvMDbklgx5bbUfY4hqUreXuxYDmFc0T9U1?= =?us-ascii?Q?BW96X88ORaDQzKhXYcO12KKwjxMbrGOn8WpgPKmhGFxUsOBipjw7OJacuosz?= =?us-ascii?Q?yZANUzHr+tXawBvyXj2BAFqBz8JnkLneTD/3iTveNe+Fh8IiPg25Hsuf3PzL?= =?us-ascii?Q?4rWpQy7Zyc9I/ZOaSGYxwlq8yEQwOTxGMbzWHoOCsu4VYD+gNyI8DSrHu+c6?= =?us-ascii?Q?VfxdFcH2fIk3AVQxSJcbU4XqtTmV7lgsWAxdrk/+YIykrtsu460Czb5DiVZq?= =?us-ascii?Q?yMZY/SzGS8xhqpoIMjwroCAJQyeSX+HmnwdM+PIQ5XDvOkdoTUn6JSnexU2z?= =?us-ascii?Q?mYLOGmkTWdoKxMRhdlqpSA+iju6qAiB2D0UEX2qLUWFm6WGsMdY3RKkRbDfJ?= =?us-ascii?Q?7xmi3UCFW2DPGCGk8nQiTnW/oynOEM5yHrLqDltqWg2mU6/XChiaY+AzFS8+?= =?us-ascii?Q?52nlrdBgrtELXPRIvLWIKQF/Onz7xnMl8JWPmiyPp1MCdO9QmfRhEKJunPza?= =?us-ascii?Q?+mmW9rUUrOAmVTCkcmLBQsQ5/KVPfrlku5Wp10TJp0rE/IHjPhkPYkF44Lmz?= =?us-ascii?Q?pH0yJHfMFQeLBdHBv26ppUZnUhq5tzlKlfGNB3aihArlqtu8CRnV50utW58T?= =?us-ascii?Q?BaHVY/XMqCWMEdj48mpMHW4B1H1MdKT52hYs58rTJ7EgHbjKm0VEKcapoEKi?= =?us-ascii?Q?bBmKNa+Mu3FQPwEvFscrvqgbJKqvVZ5LH3DF?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:00:12.8667 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dd34e1e3-1477-46f7-4335-08dda848a5cc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9508 Content-Type: text/plain; charset="utf-8" Move apic_test_vector() to apic.h in order to reuse it in the Secure AVIC guest apic driver in later patches to test vector state in the APIC backing page. No function change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Moved macro and function renames outside of this patch. arch/x86/include/asm/apic.h | 5 +++++ arch/x86/kvm/lapic.c | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index c6d1c51f71ec..34e9b43d8940 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -557,6 +557,11 @@ static inline void apic_set_vector(int vec, void *bitm= ap) set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSE= T(vec)); } =20 +static inline int apic_test_vector(int vec, void *bitmap) +{ + return test_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_R= EG_OFFSET(vec)); +} + /* * Warm reset vector position: */ diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 85bc31747d54..ed5e22fc49cd 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -93,11 +93,6 @@ static __always_inline void kvm_lapic_set_reg64(struct k= vm_lapic *apic, apic_set_reg64(apic->regs, reg, val); } =20 -static inline int apic_test_vector(int vec, void *bitmap) -{ - return test_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_R= EG_OFFSET(vec)); -} - bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector) { struct kvm_lapic *apic =3D vcpu->arch.apic; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2046.outbound.protection.outlook.com [40.107.237.46]) (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 8A068245028; Tue, 10 Jun 2025 18:00:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578442; cv=fail; b=dOUXCbrKZg4ThHoZ10j6X3AR0QTKOeAqqTLwa78FMAI4dVPGAy5iXVgRFYkjubgQhOfzqIrlNKhdLrpAPDetecln4BeA7Nvg4abmnjFrG6hF49TywopUqJVSisam0ilux+6pUUBaiRo+OMVWZ2Kgn93ZVTBHlE9GOnHpwdb914I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578442; c=relaxed/simple; bh=OS+1F7+813CldFbQDj8JCzJP1WORriiP3QQoaJbhJp4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=G3S+2HSeNkBjVU4zKzBuq1jgbJR9cw1Q4U8n3b05VzuMKViZhnTzmpW8/SaLoEv6+7JGpCJ6fDwKXZiTgYXB8QFwJANHhdMyrVKRdlhGTXCXU6K3UEfZouh+gq8yh1x0sWFSZYzUrwf6gFGLe4f1Uc9f2NOk7IPZxvxpg7ZVMDE= 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=cewzaJ5S; arc=fail smtp.client-ip=40.107.237.46 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="cewzaJ5S" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JWXX/OO9ep/Fb0Hu+bLMSip1heg00sQ1Mwq3ZO6It660HPSX7i8J/hLuhGoFnWgAhTpqfyWticNKwWE7ou8lcHQcBdwJdmEtc2TW5G7HJAesl4/kaNjVMyHmk12EhWh1uvx4pPAn4u+dW2MD9cOkyIo1fd5Mv7p6iIi6HIN27nL0yyArk/ICAXZQfvxt8IsmAYWFB8JIDQqPOZmcxhtEAgy2/O6/697MPpKX30mVIl06ytD6cXqkHyBuKoZBtJ/3VN2vICxOPKElNt2rib0qgKmJE3yfT716n/uW2ifC4XEB2TCsLW5E3Zc/GhqN1Q+tLDHPqDidiq8vYeR2ZiIumA== 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=sFakHNpI5ttrTrk+OVjQxrIVaLiDpysc0qqSYWtSmeI=; b=ozLHXjzF772DWtPqwb8TcZKz/ZnpCh6htkqLupYhLwfulGkLtEr8DOzyA8UT9Xf4OT71tZ4PXFu0hIhZXguqCwo8weavNjvZ48GKR1IEaJXerZfrsHU0HKCrOALZiN6fRapBZpEfhUqzYGk0Ye9xcgaOEItIafVsREJ2bG/haViIcEtl49/ENoW6Am5ByBEwH4Hu9StL+H5zRKWTxddWEA086/pGKLEQgp7mPHrIVdJaoe+Nu7+DuD6RDFngc0xoZr4azclAFngyaTIfOxJMdYvg5a5eoZh2pptojVuC9n++LI0xArlnTrcMTQiVmH3cyKvgzz30MaibKWKN21/jRw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=sFakHNpI5ttrTrk+OVjQxrIVaLiDpysc0qqSYWtSmeI=; b=cewzaJ5Syd/NL0n0Mn7QXoQeeRhyyD6QMWp6e1qoMhlp7UqVJTccefsjuF2eR3FW1zauFNk8O2L7dGgtdmmWTKIMM9uwmy8FPZsfqC9p2lhN5e1EqpPefOvyF8HEf36rh3hhVwgVgaofEWJThqT2I4SXd9GxkSdTn9VWr6J1MjM= Received: from BL1PR13CA0420.namprd13.prod.outlook.com (2603:10b6:208:2c2::35) by DS4PR12MB9586.namprd12.prod.outlook.com (2603:10b6:8:27e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:00:34 +0000 Received: from BL02EPF0002992A.namprd02.prod.outlook.com (2603:10b6:208:2c2:cafe::81) by BL1PR13CA0420.outlook.office365.com (2603:10b6:208:2c2::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.17 via Frontend Transport; Tue, 10 Jun 2025 18:00:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:00:34 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:00:26 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 16/37] x86/apic: Rename 'reg_off' to 'reg' Date: Tue, 10 Jun 2025 23:24:03 +0530 Message-ID: <20250610175424.209796-17-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|DS4PR12MB9586:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f6a3e49-bea2-4d59-b2bd-08dda848b29c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DacfypBBrw35iMMwuR9KFBmD+3weG7soD+sp72H/JsVtRCMgQgfzWGgJXGkb?= =?us-ascii?Q?t/XI5G8E83L6PfJa/5cl5w1gxu+PGvRcz/OTDRf91B/IR2RaCrm35P6vGE0j?= =?us-ascii?Q?wungbThMm6FSHVWNlbPh4OIyLO/esvTjI+GnuATN+e+tOnE1YZtH2jD8slzp?= =?us-ascii?Q?aI6TFU356cWM8xfmg9Qsn7als/2xOsiBxRMNVwAM6zxG5HY95dMNLJLsciaN?= =?us-ascii?Q?3MBaSb04sEJH9QxLxUD482aVQspfj/hTm86EYMxWbx9O6QPIFq+4jdp20IZ5?= =?us-ascii?Q?9DF+TCJOdSQSt6ZcWLCNTjngFMhZ0y4Lg0/MPmMhVYuWkJ3FXyw3n8Qiv/aC?= =?us-ascii?Q?MOvPtuyWCB4GrVxq4ZQCLFTgTLZ2GwhrbDXdYx6mA8EOAM9kM9v8alsPiAJg?= =?us-ascii?Q?aZ9oaNrzslby+NBlMuBpnIFKNIYtpHmGMh9knlafkMisAFSr2kzpyiC/1Q9n?= =?us-ascii?Q?ovVZ2cJxBFHVneQ6uAmXm1LEcXvNvwE3LcWJXa9CSnSVUUaOYFW80iUJgj4W?= =?us-ascii?Q?CeLrWRiMDZet9oA4KQ4YDq6IClc17VP39EDoHEao+RWj/XF5xOLwyVNW3XEO?= =?us-ascii?Q?IeSAlRgNpi2V3ZzysBvFt12UaUXHMysuERtGXkZj8ZZOgpWhTBNfHOaD8KiF?= =?us-ascii?Q?9xA4bkXV84YKTdz6ZRQgfU55nDi5VRcVl79MXVCcM4akPG7XuXaDNR62PL2x?= =?us-ascii?Q?N2n/iEmyDUWA3vM+EJh2MX+TwlMyppUj8X+e+w+ywPN1knqe3veLQ5nkEWsP?= =?us-ascii?Q?rzHc6y6U5+/vHWsaQTvEin3LRaUyngyMJytGVDOEeMbE74UvAzHtBkBRl8cN?= =?us-ascii?Q?RCVE5jxCka6uTE7Pyikx++wcsZJr6ouScaKegOdeKarGj6s2I92M/hUkYs2q?= =?us-ascii?Q?bmRUTVecDSGaBfA566tXwJMCgj/h1XHr5ZW8/owimf95bMF7bLkZOvXk3GSD?= =?us-ascii?Q?KWZjo+9u/9mowKsysZFSfdnLpufAafhvbUw2cFa8a0UTlRMyvPYl0b+EPgqV?= =?us-ascii?Q?UR+2WjgjbIBjc8VKteD5I7lXNHXHTxkz0MA1kvbuyW8yhfYF237sZtJ2Ce9G?= =?us-ascii?Q?hB7eQN6uXPZ1MjYe2GPO5Q7AoH28EI+Byf7Bdmc7C5H86cvYqeeEPqlMmX85?= =?us-ascii?Q?l6fiFAmjaanHAdIic8+l10X7IEPKBKF4ox5cGYp3o9gffkNWTH5S5THU+4cY?= =?us-ascii?Q?lswgZ6ZBCkcMekJXyUAMe2wGmPT8pk+e7vdunj9bRxDRlRn6iyK07y6FRdH5?= =?us-ascii?Q?xZcOYTp6noYd3+qY3XBSKSijb5xJd1tuuZ6iltVQJ0vTkh4+YpdXzrBks+iR?= =?us-ascii?Q?ymdHzQydDQi56NxuAShhaPyHpVL2UDDD5CSibN5J25INHn/sA6xch/B4b4Im?= =?us-ascii?Q?dSNu1jJaqYGmt4Y9PXEPm5IHDywiyjoelNWfOpzlE2WmcSFUXoHWgOQrcMzM?= =?us-ascii?Q?mtVp2T3kUDEO6R/YwZSeMOhbrlH869YgQOB1oAtXj7CVm0xCkmm/DHS7eOa+?= =?us-ascii?Q?THzOCVaG08GMSCk/yX44ucRTz246vaqiBBT4?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:00:34.3764 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3f6a3e49-bea2-4d59-b2bd-08dda848b29c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9586 Content-Type: text/plain; charset="utf-8" Rename the 'reg_off' parameter of apic_{set|get}_reg() to 'reg' to match other usages in apic.h. No functional change intended. Signed-off-by: Neeraj Upadhyay Reviewed-by: Tianyu Lan --- Changes since v6: - Added Tianyu's Reviewed-by. arch/x86/include/asm/apic.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 34e9b43d8940..07ba4935e873 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -525,14 +525,14 @@ static inline int apic_find_highest_vector(void *bitm= ap) return -1; } =20 -static inline u32 apic_get_reg(void *regs, int reg_off) +static inline u32 apic_get_reg(void *regs, int reg) { - return *((u32 *) (regs + reg_off)); + return *((u32 *) (regs + reg)); } =20 -static inline void apic_set_reg(void *regs, int reg_off, u32 val) +static inline void apic_set_reg(void *regs, int reg, u32 val) { - *((u32 *) (regs + reg_off)) =3D val; + *((u32 *) (regs + reg)) =3D val; } =20 static __always_inline u64 apic_get_reg64(void *regs, int reg) --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2075.outbound.protection.outlook.com [40.107.93.75]) (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 5D4D0625; Tue, 10 Jun 2025 18:01:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578470; cv=fail; b=Op0OZufL0+oUn3nQe4gXEeSAFphMCUUyv5wuOsqzSArcn1rUZHcFRZnr31CUFoQiEfsQ3QVdkdpKr/SMZrUvWx0BLzTxoojZILF6oFYFKAjI9y5/rOr7G2DWlzHhDq/Bjj46tnYmSoZFSPLZ3qZFGRzDEtbNElzTGAXskqzzffo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578470; c=relaxed/simple; bh=oVr1+mZ9lw0i19mhjItiCOOdmLWW7eg1euR2frusLG8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aXBi6NMSf29jw7iTLWUQGiwnah5+9IkQiUgcD10r09SR5ZplPrlmSTqEtckBpEvKj8GXJOt1o53Bb10W7jMVnXd/LsG8WGLCnUOz/vV70PNCtdhhCvNmwVivlLPpW1/LKvmhTFrJpDcTAd9c9dvoxg+tEfzokU9DYaJ+9ESH23k= 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=HuOYZiOk; arc=fail smtp.client-ip=40.107.93.75 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="HuOYZiOk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FfSrKSXnmNAQDUZowAajANtP3SGKKSpMC8qkFUw9rNS/4lwtMgKFsj8EPyzGNxgA2xWaBmusQDT7Rl1f3K73LEIem9fnQRrszoPV+u9YVo4Ou+zufZqg829xvFLhJszSnqZ8Vbfb+lpphN+6+W0OlWc/89/DIZA43gbjUfOsh3CWtV8sgCb/3JDsOj3sAyCvdN+DD/yDmmsFYJAbmW0R0EagOXU7656YXsdtX6+I9z9oSVWJwVkEkd1h69B5xCGHfin7QIWw6sZ3Xn8zFIiJqA+wyM0mED7sPV7omCcxj0R5xo2IeONhZ/kbuCxtruXXUFH8oO65QajFcTI1cLIJpg== 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=LL6B0dyvRUtINtIX09DzYUBo9Dr3I/HdAAiJtezZ3vw=; b=cCHV1Jt/wiCyM0OJgXtrCXUNrf9OvrVxvcUSy7mki1JS6lUarpH1TRi5OAGjeMvYGmJsNTnDffvjnOb4+GtkAeKGXqkDY0ZElBHxK3WjrFOeGenG0yZeGH7+z1Knp494dkvzNIC0sg1kiz6pTv+F2yY1PkQ6JB0oKAL1y/uWjjBytumUbTZyU1bDVSYYv/T6JL7ohiNlJ+Gc5KjcFF+UEiMFTa/L71u5FezYkIGB6d/2m0MXsj1oNOTcmlTU0yEZElJqw0CWDzAK/yp5DD8apHbVVHvKzL0Mc+00omyG/YAHwixr4DpFtFT36jkqL0ofIbcfvABnch8nt71ngz57rA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=temperror action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=LL6B0dyvRUtINtIX09DzYUBo9Dr3I/HdAAiJtezZ3vw=; b=HuOYZiOkfGHykGul9uLqXPr1q8kj4Uv3iVoslYOo8p59qcKTBbXH9t9iPkPEz0EL80zNNoFY6LhZdXcKJtR6sEjEzhloTCccDtgsJSx5IglvZitDrK2KLudvSaCNR6WqjDACH6LwlorEA6Y/W1z4odixioDVXGaOpDE1Pux7LWo= Received: from BN9PR03CA0984.namprd03.prod.outlook.com (2603:10b6:408:109::29) by SA1PR12MB8599.namprd12.prod.outlook.com (2603:10b6:806:254::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.40; Tue, 10 Jun 2025 18:00:58 +0000 Received: from BL02EPF00029929.namprd02.prod.outlook.com (2603:10b6:408:109:cafe::13) by BN9PR03CA0984.outlook.office365.com (2603:10b6:408:109::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.18 via Frontend Transport; Tue, 10 Jun 2025 18:00:57 +0000 X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=temperror action=none header.from=amd.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of amd.com: DNS Timeout) Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:00:56 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:00:48 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 17/37] x86/apic: Unionize apic regs for 32bit/64bit access w/o type casting Date: Tue, 10 Jun 2025 23:24:04 +0530 Message-ID: <20250610175424.209796-18-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|SA1PR12MB8599:EE_ X-MS-Office365-Filtering-Correlation-Id: 02dd6d99-256a-46c2-22ff-08dda848bfb1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6WSFnWoKtSB+p3sIn5A5HcauGbYs70BGuZ993dJBjgBbJn5BnuyZgkFnP2Oh?= =?us-ascii?Q?gtKGHiZHRWnYyqVZFSagwuSTZiAvaIKJZFxbvj76jBO+x1m5WXaFn2Cax/3V?= =?us-ascii?Q?QO0K8Gfwe5PR/+tw7ZauxQf7uZeYAxdEWTUaEU7Nbaa12wZHaYroe8GDND76?= =?us-ascii?Q?ilWg6XgURLDFCyyEr9k5sy2wcsP5gzTeUQ1fTa7yXRB1GDzEhFZa2k+9S1pr?= =?us-ascii?Q?qzVujRAe2i54XjR6VEC4Ef7TCktTP5ISaq9zdKx6OtR6TYtLqlOt18yfRUUv?= =?us-ascii?Q?6A3o4rD8c4giJpLHM3GWFd8/PYGuO4PIUpVNW/Pg5YVmTCp3/Vmbj+FHcCAp?= =?us-ascii?Q?ysorQhGnzhoputo0laboWfivOxr2nyvHFQkCo5ukk6+fmyv/QlpzSjAhqTyK?= =?us-ascii?Q?SHxbSGoyKIa7izqOl1yD4Pz7vNZGHdXl/1pPAgePBjXHBCPDyNFBK6lTZt2e?= =?us-ascii?Q?+AWzz/7q7OLU+sV15ezs+tbZ0Y45UYK7dyhP/EfU3KtdsF3Wrag7M01jcTQ8?= =?us-ascii?Q?gIxRAyk4QKB2SmS1Ob9qSYuAIdeArel4QBjKrXqQSQWIp3/JTMBFc3e3t4JG?= =?us-ascii?Q?FYn48UxXt/dPKpC8smrtQk/NBTQG4Y9txWOVrL5sMpMFGh1S0LzTQ3uqA/0j?= =?us-ascii?Q?/HF8kVT+I9UnocPesYcYL/fukbRaLILYpHNJeOexHXMZRlfznAlZHhMAoDQD?= =?us-ascii?Q?mAW0AQPQJnfFJjbJ0qx9xmwhaR3lIrBYv9FJYLJ6PvW/eMxbMOKoaZTfRbs4?= =?us-ascii?Q?c67Bs1NMR+MEVvBGoUT/TEQKaRxLhFOhv4eCClxWt6DoSrJGFJsS15J6FTYI?= =?us-ascii?Q?FFti8l3oNbEqBqucAD+z5CDaKnRMa193PPjmOenRIPRpabta7LM2zkHm2R7u?= =?us-ascii?Q?fgNeoYVOCT7FyP2squ20VCyc780hTqWdOEPpVW9kGlFVGGGcVcCFOS8pQvW0?= =?us-ascii?Q?FBeCxgstHawOWCfgUwaFfzQbXFv2kPQWxMh7oLgUWgCuzBBBx+jzQjxvUfJo?= =?us-ascii?Q?+5wxvM7gUBirVlNPShp9wSxjePq/WnRcxfAkXh4y1m7LWU1f6x088O4v4yJv?= =?us-ascii?Q?zcpi6pFJIyAnUHpumHWFet/2fihHGEP3bDKqNyJ+4hm8NsUIFRTn8wodI2ES?= =?us-ascii?Q?JY/jgPMSLrjB2u9JXxaeujXkWu2f9z16wpM5CpGdQGaPIxQ3PoMJ9SSQCPlE?= =?us-ascii?Q?FBDzKDzC6pYImR4rM679LDD97ktwIhUhHVu8HfCFKDMBoYnpNEMb0VG1b0GT?= =?us-ascii?Q?kVivg+sGnwQ9sKRsyP11KwpC7rwTXVKFvo+iOGRdKWmCpdTKKd1N2FTptQJj?= =?us-ascii?Q?2zKYAVCSxGtgX2X+SBakm7MPhCoCKeKGdvdaKXmjAQIjxBssuwPF3hekzW3Z?= =?us-ascii?Q?i/I9PLmz47YGEJ3iakD/Ib/Lh96M+RkNAmx8Rkt4Dt2HC4wDpfQyqMc81TrY?= =?us-ascii?Q?cn5tLZ3jQj893NBsd/AvCGX7/8sO6wD+UVfI9exBXIIEMNataLlporpstATg?= =?us-ascii?Q?XM4AguKEriBQZKN6HTqywKcmBD5tp8tgqXnP?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:00:56.3100 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 02dd6d99-256a-46c2-22ff-08dda848bfb1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029929.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8599 Content-Type: text/plain; charset="utf-8" Define apic_page construct to unionize apic register 32bit/64bit accesses and use it in apic_{get|set}*() to avoid using type casting. One caveat of this change is that the generated code is slighly larger. Below is the code generation for apic_get_reg() using gcc-14.2: - Without change: apic_get_reg: 89 f6 mov %esi,%esi 8b 04 37 mov (%rdi,%rsi,1),%eax c3 ret - With change: apic_get_reg: c1 ee 02 shr $0x2,%esi 8b 04 b7 mov (%rdi,%rsi,4),%eax c3 ret lapic.o text size change is shown below: Obj Old-size New-size lapic.o 28800 28832 Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Converted assmebly to AT&T format. - Added details about overall size change in commit log. arch/x86/include/asm/apic.h | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 07ba4935e873..b7cbe9ba363e 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -525,26 +525,43 @@ static inline int apic_find_highest_vector(void *bitm= ap) return -1; } =20 +struct apic_page { + union { + u64 regs64[PAGE_SIZE / 8]; + u32 regs[PAGE_SIZE / 4]; + u8 bytes[PAGE_SIZE]; + }; +} __aligned(PAGE_SIZE); + static inline u32 apic_get_reg(void *regs, int reg) { - return *((u32 *) (regs + reg)); + struct apic_page *ap =3D regs; + + return ap->regs[reg / 4]; } =20 static inline void apic_set_reg(void *regs, int reg, u32 val) { - *((u32 *) (regs + reg)) =3D val; + struct apic_page *ap =3D regs; + + ap->regs[reg / 4] =3D val; } =20 static __always_inline u64 apic_get_reg64(void *regs, int reg) { + struct apic_page *ap =3D regs; + BUILD_BUG_ON(reg !=3D APIC_ICR); - return *((u64 *) (regs + reg)); + + return ap->regs64[reg / 8]; } =20 static __always_inline void apic_set_reg64(void *regs, int reg, u64 val) { + struct apic_page *ap =3D regs; + BUILD_BUG_ON(reg !=3D APIC_ICR); - *((u64 *) (regs + reg)) =3D val; + ap->regs64[reg / 8] =3D val; } =20 static inline void apic_clear_vector(int vec, void *bitmap) --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2045.outbound.protection.outlook.com [40.107.100.45]) (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 E40FF625; Tue, 10 Jun 2025 18:01:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578495; cv=fail; b=RKQgvBNs4k1AM3iY8pOnAK1876dZS+D0lgQDnQBJP93BgnYDY/GS8IglP4mr7eWgbB6fOux+/TPgd9wN9+jpvdhXYVn3obTmB2icL7Ch3sqvdNquUDkRclovhV7GpM3r+oVOZrRl27nXINU6VOjYS1LBUvJ9VktazvzSBGFV1wo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578495; c=relaxed/simple; bh=zxgj12Bd9jFsDU/q8WfqY9LfydKUL2peXiwwrSxVrkU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Rq52YyXR9mjMeg46olCNHyUSuCEP9IGh+9CqUy2S8AYM+VTfy0RLBlw0FYj+rkAtEuIxY9cQeUsWBOzi6B7XFOynEUo1OaTDuTNR0c0608vs/3XllHP7lqKS4ByyHFDUm6LQZudM3ZHj43UUy1Q/AoYeVN7De7gQMzEY22MFZIk= 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=C8FVRewd; arc=fail smtp.client-ip=40.107.100.45 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="C8FVRewd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pubfh3tTpLMwBo8byrlayty9WeaHeakRHyH5DbqxzKnj77ZvEAxZDBw1Dfv0iU7RPaz38Y1kOICp063qcJy4wMMjcUuSYio2DfsMlc28htaILsduo6KefQS4Pb1meAZOvdRkluWp2qqha31T+96B2yhr1QExVYusFx0j+rayYumLBSNSkqfcgGUsQkdlM+3+RDYpiBYITJM4WGTBWKTVi6GVP0Wkom+jbHWeSxlSP/hBqQq85vuwSGZnVTrLKhk0UnxTgEJdQ6tBuHSjY77DC+oUo1IaV5P77+HxaGSySU2XeXNcxDQMwlb2/CDbbeCEjuzfccLovOBmpTBtxjUssg== 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=u1+rpu9pCzctk/884afs7qS6+3+tPCRGHTxM3H5tWng=; b=iX1K3MME8Dpcfnrus8eyEL4PVMBsFQYJ0/IjCmdghDEbZy9FecocJ7UodNWOaMCas3kDp844oSS00YESZcMC4pxyxzwd4yJU5Mv8hoDDWk/P9ESYOzu494N3yShMafNLb+Oq3shSDeMlXf9Z9Yjp2ovniAEvHaZO/3wdZIarwNBJFHXaoKbX6uL3uJY/5YTUScD1RHVCYaebNwYyqnTKlnpb+eMqpkwwC000y3Ub6JJL7+Ijjzgc0mP19nut70zLcy2IshqXEGCN4E1HZQbZ+Yh2h2GOYWh3ICmwLVgxdoOu3znw9HxhUimv48v6frstZ1erlRPBAQaIyJm36RPAvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=u1+rpu9pCzctk/884afs7qS6+3+tPCRGHTxM3H5tWng=; b=C8FVRewdEt84WUjRrw1P/PWlPSB96ccdY5PeXDGKbYmXo0XtkRAmEpkktiUht8K5j23pfwmPgrQmCi3e45DVgAVXDPC2+kEiTkrjsaKHBCEnKPrbis5RUjjt5Y8m4p+90+IWKY02gYf81dpnLo4xpokqEApnPdhulNO2e80UzhU= Received: from BL1PR13CA0202.namprd13.prod.outlook.com (2603:10b6:208:2be::27) by CH3PR12MB9146.namprd12.prod.outlook.com (2603:10b6:610:19c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.21; Tue, 10 Jun 2025 18:01:27 +0000 Received: from BL02EPF0002992E.namprd02.prod.outlook.com (2603:10b6:208:2be:cafe::a3) by BL1PR13CA0202.outlook.office365.com (2603:10b6:208:2be::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.10 via Frontend Transport; Tue, 10 Jun 2025 18:01:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:01:25 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:01:14 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 18/37] x86/apic: Simplify bitwise operations on apic bitmap Date: Tue, 10 Jun 2025 23:24:05 +0530 Message-ID: <20250610175424.209796-19-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|CH3PR12MB9146:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e88511e-0d48-4443-4205-08dda848d129 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QhFADx706Pho4VrFJmBE8kRTBakkSUws/qAbJUIBQ4GDp80epm4P4WRGgfJn?= =?us-ascii?Q?B5bpvAAJlwm90ngBxa+GWVPRp1gUcq0iW7in3Z6xcjkiw0MdPTbIUEyxXWiv?= =?us-ascii?Q?NOYK19oYFce/jjnl8Hl7lCmmp5kcahc2nQHHrT2+D/OlTGcVS+nDGQBrDbvJ?= =?us-ascii?Q?9AtpteVz39pE1/ZGi99gYQccc4wAo0NV/5Hw6p5gwc9m22y2fx3klwCzpFBa?= =?us-ascii?Q?ChqA+Xqhrxo5ZZBkdMJKV2Zzxtx/a1JMSblniXeNWpYge83SLsIdFczygzj6?= =?us-ascii?Q?WVzMXMJKP/19yhL/ucWo04SNMwftZPP2Qp+RNF4b1dkTS2t/KJJZPLceb7Lz?= =?us-ascii?Q?KXnwtq3QI5HyE2iuhOWGU92dRkE9VIVDVMZ9qpe0GqwalIXA5+p9Oxfrzki8?= =?us-ascii?Q?uxavnh4bPI6sULxbg1JTFk9I/GQTI5aCCKCrrPk2IPLdgjhfxjmDqBsx6rbr?= =?us-ascii?Q?dJVIS+7nogUTj/CgmpNa5zHwl4ETE3yy4moocVXUPf+KetvWo9mwnrwVHlYC?= =?us-ascii?Q?p5pG4xvihpD4sL6ImJufBKyY62KaGTKBQbKPzJNHYgEjts2oqAlH856NXshk?= =?us-ascii?Q?Hy6vJ6aVEiNWGG4ZCZ+hnqr6DBxHmzBRfPHxIiu8BK25iI9NiEH7wi3B1Idk?= =?us-ascii?Q?gcXiIgD/xivB7wvxAT1lH8cj3h6hi7Gph+T/g3scjD3oP3YYI5TApKoR5Oyd?= =?us-ascii?Q?kOtJu4xY2A8kF7JWRRq6geaHg95OIBnmHS9Y+4huNT+J1Hl205GwNEPr4X2O?= =?us-ascii?Q?yL8eMX+psRAzO5pxJcQVwssTtSk9L3RwqdHWWceYzA2/INA+xksPgz2io9NQ?= =?us-ascii?Q?ZWXnmtPybpZR4DpRiIgyWv/JDVY8WpUlbi2YqWjai27J3rjWkTOxNm6V2Auf?= =?us-ascii?Q?ZH+zATQoTj3R+3oxE+rJK3SWfzjPVMjRyYbwYThkbO1qov5eRebkhbN+LSzM?= =?us-ascii?Q?3dsuJScXZ0/b8cs4MMkujHejKRnLYPkB4y9NAi09k/9jmvWpMnZXhioC3Uaj?= =?us-ascii?Q?jzSTzThi45QAOExecB17VNueEuvfwPhNbXhSon+hw5cqv3uhmhr+eVNnJ/5E?= =?us-ascii?Q?57NL+pn70sVui2gve1cYMn0IUKW7bBdPoVqRA6Y7e3P+ZkMn2aEC9rCMIO24?= =?us-ascii?Q?MI0MgIjHu3+l15r3En+/37G77fnm+OwEuI3C1l4Bco5Gw5pfHAQGQlsbEV11?= =?us-ascii?Q?7p2Wc7ocrze9kHlCLREFhXN/cXAS7K9/uiZ2GSXy0G7i1Od2RIKfsk3bM8i/?= =?us-ascii?Q?JHoDyjn8JtfZYiS7BUa+6pJHjskfbFkOnzJQat/p3SWbwcwEIXJv6rO1l1FP?= =?us-ascii?Q?eDCuj+7ifEYujfVQzBcdChxoZu9BWGcuQqv79+0OAHQkcK4hjGQXQK5dH52u?= =?us-ascii?Q?h5RCiDuJjeTFZxnyvEZ5RzTiKUTGdjsqN2B3RGgkWP32x9iBkaQlX2mPrOY0?= =?us-ascii?Q?7ay2vq41BXx3sfKv3d30EFpmazGb9TQa2/gmsh4KXK43rIcg27JmSAU5Go37?= =?us-ascii?Q?IS2wedC9RWsyxHX2hlHS/wqswGCxu+coIWPm?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:01:25.6280 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7e88511e-0d48-4443-4205-08dda848d129 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9146 Content-Type: text/plain; charset="utf-8" Use 'regs' as a contiguous linear bitmap in apic_{set| clear|test}_vector() while doing bitwise operations. This makes the code simpler by eliminating the need to determine the offset of the 32-bit register and the vector bit location within that register prior to performing bitwise operations. This change results in slight increase in generated code size for gcc-14.2. - Without change apic_set_vector: 89 f8 mov %edi,%eax 83 e7 1f and $0x1f,%edi c1 e8 05 shr $0x5,%eax c1 e0 04 shl $0x4,%eax 48 01 c6 add %rax,%rsi f0 48 0f ab 3e lock bts %rdi,(%rsi) c3 ret - With change apic_set_vector: 89 f8 mov %edi,%eax c1 e8 05 shr $0x5,%eax 8d 04 40 lea (%rax,%rax,2),%eax c1 e0 05 shl $0x5,%eax 01 f8 add %edi,%eax 89 c0 mov %eax,%eax f0 48 0f ab 3e lock bts %rax,(%rsi) c3 ret But, lapic.o text size (bytes) decreases with this change: Obj Old-size New-size lapic.o 28832 28768 Signed-off-by: Neeraj Upadhyay --- Changes since v6: - Converted assmebly to AT&T format. - Added information about overall kvm.ko text size change. arch/x86/include/asm/apic.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index b7cbe9ba363e..f91d23757375 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -564,19 +564,28 @@ static __always_inline void apic_set_reg64(void *regs= , int reg, u64 val) ap->regs64[reg / 8] =3D val; } =20 +static inline unsigned int get_vec_bit(unsigned int vec) +{ + /* + * The registers are 32-bit wide and 16-byte aligned. + * Compensate for the resulting bit number spacing. + */ + return vec + 96 * (vec / 32); +} + static inline void apic_clear_vector(int vec, void *bitmap) { - clear_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFF= SET(vec)); + clear_bit(get_vec_bit(vec), bitmap); } =20 static inline void apic_set_vector(int vec, void *bitmap) { - set_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_REG_OFFSE= T(vec)); + set_bit(get_vec_bit(vec), bitmap); } =20 static inline int apic_test_vector(int vec, void *bitmap) { - return test_bit(APIC_VECTOR_TO_BIT_NUMBER(vec), bitmap + APIC_VECTOR_TO_R= EG_OFFSET(vec)); + return test_bit(get_vec_bit(vec), bitmap); } =20 /* --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2058.outbound.protection.outlook.com [40.107.93.58]) (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 AA13F236424; Tue, 10 Jun 2025 18:01:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578511; cv=fail; b=IMRpuZXuUYLJ141S9ppQAAXu1oDQsKjdya8KVI9VymRF2JYtTuZf0mmkhMS+5390i432MaLRBSmGTvGWwQpbHC+kPI6IDCaw06xu4k3+Sdr1b4IMk2QDNmVauQjmWe9PJ9rbbKKlRdORnb4CY/2E9gqQLh9KNlEMcSqytBLT2jU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578511; c=relaxed/simple; bh=Ddtv226hmHsAKb0qANZnE6CYQoovghkOMM6iqcmaCqg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ff+NsMdoXpKwmvWp+9E0RdcwMm3wLsoJdT9bUiZUBIctVKzFZK8gQWxMyEJ25yA+KDSM/GMabifRBeMhik/0Twp15ZSc893JQNVM3A2bxM+22lC9CaQRThvm8X5QYzm904Kt/gS73Ny0LVDhNbIhzdsbG2JD3cfY65qZ4HZbTkY= 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=12hcP2Jb; arc=fail smtp.client-ip=40.107.93.58 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="12hcP2Jb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jj9rIHxOv9WkP4qIZeGi0PuABCsdpVrs4u77th7od9VHDPNQE3Za7tg2vu7eqXq6fN6KI7UF/MYo+lPEc1of0YtfQMzi7rrpQjOoXv+AMirGgghPY2X28CRtFwywfWy1HkR+iot0dGTglesctiZ59/tA7kJtfvAcFSboRaUw5IJxRu1HW5GxN0/RYCPreXVBaz7bsTI9HOZ07wY+0TlEe3d8mLedJv38xsp85tHRDBi3K6/46XjjBdeZizfuCfb+Yrvs/BRQXerCQO5Nu41HgoTiE4Wzg9xnnPft6nQlzWKIcQePGr8RIffbSL1gBKfZolwkcJ36aUCZdDa9Hxcsyw== 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=0ZmJfqG0kOSb2seuwfHp65fJ43cRysHHgmhFVo+9wuw=; b=atKZJoDotluszUoaIcMAzeAaOV5cqxEwg6CvyBrwy7sJeWvCRirctZhEylkvJoNFII7v6JgD8i6/wXDHLT/a53pSwFobQ5I9yCM4PlANn6SgRIdkiT+0cPdnPlPrzSvLVOkQFZx10DRyJgv8LbKMaP4rNhgwW1ptzW6k4YQkTeLRI86qCRBeslPRm3CU2t0J4K4EKu1eTFmRLHOLFWCZ4HhNGMl/eKki0KVHUw4D8Omj8F+j6ppMlZUrVqJ814SejLamQxTKCnFna8SWQ4eOKzUA9nFr+Z3LDPHRtEIKnrUN049oP40jYTFp0irKjR/o4l9NoSMgX2sYYGymNz8Onw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=0ZmJfqG0kOSb2seuwfHp65fJ43cRysHHgmhFVo+9wuw=; b=12hcP2JbdbsJWZyJkBwFrYbWszFZ1A3x5YtAPpAqIrP4MblFWx0LokFaIQQvKNhqWMgoqs5xvX2m2zHQhaf3EL3uaB/i19KKuvCe7yU2nxb6Pf6T+YoKKSVgAQlzeoQzS+4aNxxXHHQ1Ccfv+GKiKlqaPE7kRrMJKrqjps3kh+Y= Received: from BLAPR03CA0077.namprd03.prod.outlook.com (2603:10b6:208:329::22) by DM4PR12MB6350.namprd12.prod.outlook.com (2603:10b6:8:a3::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.36; Tue, 10 Jun 2025 18:01:46 +0000 Received: from BL02EPF00029928.namprd02.prod.outlook.com (2603:10b6:208:329:cafe::a7) by BLAPR03CA0077.outlook.office365.com (2603:10b6:208:329::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.19 via Frontend Transport; Tue, 10 Jun 2025 18:01:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF00029928.mail.protection.outlook.com (10.167.249.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:01:45 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:01:37 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 19/37] x86/apic: Move apic_update_irq_cfg() calls to apic_update_vector() Date: Tue, 10 Jun 2025 23:24:06 +0530 Message-ID: <20250610175424.209796-20-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029928:EE_|DM4PR12MB6350:EE_ X-MS-Office365-Filtering-Correlation-Id: 50d3f0f4-e08b-419f-c66f-08dda848dd00 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?u+mv5W2ATVXYQmiVWP2I6FB8jtSqehhXpWoIBezHrPLCe0WJAIN299qVQVX2?= =?us-ascii?Q?m6cUsv1yPZe6Bos5aT2AY6lpbTl8WQ/RoOjYgM9pSW8UPMRh7Pa7PPXbKrm5?= =?us-ascii?Q?CgLB4Ps5jGHkNm+2SDxDVFo+ZDL81K6C6QncgVmdA2GhZ3J7cQCewB9eskyw?= =?us-ascii?Q?MeTHVL5sEWXB1/uCXM0pTxeS6PK+NVnDcc41Oh8MgSXnpC500yOm074kRmsH?= =?us-ascii?Q?aJbktecYUPQxefOdmK3sCcW/xnMJU1V4Psv497GZkCDgddkALpLHVKXxzapU?= =?us-ascii?Q?+O6fW1RLXa4V9afRzRjC1NgVCSpQGyQjoacRSoH7K63gL1UGKanlrZ4kB0Fo?= =?us-ascii?Q?gg7mI5ncJMz7l0orGh6bbr/sf96FJ9JmxjZhOmOZ2ABDgxNTKboRSHMLjht8?= =?us-ascii?Q?3jTJlUKAF3on1FZYjH8qrOrAa2KFDpJU3BiQDE5WRX5z0KAvbOpkWcfkNCR9?= =?us-ascii?Q?18ZV09kCg5/YZxMw+Br027H2zol53vymheuPHLnWsfjfJ+HBsnD/WyPm3QLB?= =?us-ascii?Q?OBQhOC8mPOKsalJs1yoMFDHGnHTi+JD3hQbSOO0sZLRX4MQAmCQgl2dOgUCJ?= =?us-ascii?Q?jxI8VEUK5v6GlpImJM6HnqdLEYY3kgByJzpa1vsl41psQ85csXlD/qju3eV3?= =?us-ascii?Q?EqR06XOPwxstdgzzXfeL0COzpiGfTQnfJIfZcGXvpf0eoPZTJM05WWGKiCIt?= =?us-ascii?Q?AX7UJQ4h0gTZIYDYiWOB68S72bp/G3cuC4KEfLDQRFuAxseljr9dZAr5DvTX?= =?us-ascii?Q?CR660W5+iYgwmeQwdryQ11YCNSdBucdlLCcBcgwLPH++QbcVLahU0QqIHPE8?= =?us-ascii?Q?zG+sID6ZqRJmH2ZDOuZyEtjDgjgZATB7OnX2gFjSPYwbY+JuWt9UthEpITAs?= =?us-ascii?Q?SPonXkdjaDTJmn3s8DIaEBE9jAVZOiDhZaeeViSSIzGZCD3zzsVY63mzyWXt?= =?us-ascii?Q?03q0KeHNY3u5grRB8tFfhoDaMt/Xh+2N9XZAYwJP76wHgmv1+oUJcsn9Xw+W?= =?us-ascii?Q?On6zBjg9XSlpqL+5u2QCz1McwVXWJnUS0/hoGG4bg4Ceq0HnuKdM9vJfOXox?= =?us-ascii?Q?HVU/fk56HR2c0U8iWv918mKArwwY8hPIEWgfSYQs+S54teBytsepwYs2UHAw?= =?us-ascii?Q?q1Vw7NS+qF4fgz8WUy9TMcfe7rHTvI9Fsp+3n3VYT4TPy0//AwzMmH6MyNIR?= =?us-ascii?Q?v0i2Qy9Pb2K7QGHRDOO+g/ee0ep1MKEG8Ogwe25vGJr9uVSagZGbw6biR4wG?= =?us-ascii?Q?YNAIxwFK5oIgKMbvp0Dm3oY8WiphhK3sAlVvVFWa+WhP9jWtXX/zRChE5Nhc?= =?us-ascii?Q?jEFWHyH+S2nfh203ibBo9hsXwrhgMqagVSpJVYaj95POiW6eS2bNJqU/rTQp?= =?us-ascii?Q?j4K8wQscV5IL9uusS9rXwgnexQq1pEvb/ZKIth3TReAe2U8ULF1lqSsX1Gll?= =?us-ascii?Q?P4VZkzh7vyV8HrN3vDyM44mKBSMxq2sWXNaR7iWMC1w0om+kEde3Qbsq6GnB?= =?us-ascii?Q?3aGocu9hFme+73WQEInCHwIPAAbdv3E7JNXu?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:01:45.4691 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 50d3f0f4-e08b-419f-c66f-08dda848dd00 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029928.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6350 Content-Type: text/plain; charset="utf-8" All callers of apic_update_vector() also call apic_update_irq_cfg() after it. So, simplify the code by moving all such apic_update_irq_cfg() calls to apic_update_vector(). No functional change intended. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/kernel/apic/vector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index 93069b13d3af..a947b46a8b64 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c @@ -183,6 +183,7 @@ static void apic_update_vector(struct irq_data *irqd, u= nsigned int newvec, apicd->cpu =3D newcpu; BUG_ON(!IS_ERR_OR_NULL(per_cpu(vector_irq, newcpu)[newvec])); per_cpu(vector_irq, newcpu)[newvec] =3D desc; + apic_update_irq_cfg(irqd, newvec, newcpu); } =20 static void vector_assign_managed_shutdown(struct irq_data *irqd) @@ -261,7 +262,6 @@ assign_vector_locked(struct irq_data *irqd, const struc= t cpumask *dest) if (vector < 0) return vector; apic_update_vector(irqd, vector, cpu); - apic_update_irq_cfg(irqd, vector, cpu); =20 return 0; } @@ -338,7 +338,7 @@ assign_managed_vector(struct irq_data *irqd, const stru= ct cpumask *dest) if (vector < 0) return vector; apic_update_vector(irqd, vector, cpu); - apic_update_irq_cfg(irqd, vector, cpu); + return 0; } =20 --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2085.outbound.protection.outlook.com [40.107.236.85]) (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 15C631F1527; Tue, 10 Jun 2025 18:02:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.85 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578536; cv=fail; b=RTyI9tSWJjq/fl8M/OiqviolT0H6V0P/1Lqkj8rapogOQTvsyUU9vxMfGOyWlA59lbMKqyK5rrojOeysnjvPaGQcyNxS0UNMpITM3Cz5Ugku3to//u4zZAYhjROhVDkfq/4e9rktq+lAujGtLbC8mY6JPLWAlsLInCULfe5MjMg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578536; c=relaxed/simple; bh=hJJIqJIYCP/D5nvXSYOb2jhQ0lKyKaaEuLmDvj1xYNM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dOcwJ3TH3/x03k/v9E1gquqhvZtSze0xB7zxrdsYa3H6TRg02MkgByzpqEP2CnW8eOkRr/53vAfuSk+OGCIuK1IEjkpXL6TSLxTf/nHVHUeUKAFJzyLoZ9p5mGT2IrPL8Hr1A0xxtnthcEvbCatuG1lqNK5Ky+lJnergmPWEnPA= 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=N9vmoIa8; arc=fail smtp.client-ip=40.107.236.85 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="N9vmoIa8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=isvV8O43icsvKmAG2NXhcck+CCNsjreDNWCcNxxHZ1ynlUMiORbVH2n2IXj4qMH8WuX3/cM8UkZ1opCotSxSpiRfv4Iu+UOrlKqkkc7vyfbOcHqyztzQqvHzVVcG7QXab6TavITkHTDPuSscGntfd8jITgbHqkK4GEu7+7gSxNlDG0uPLdE8kEpGq97kLijCGWi8Ao2i5+kkyPTjwnyNf8zocrR+w4+NMF+0dge6/CPieq1RSVk3CFsnsPYCOggshmzGrt9sR/s5U25Bheg9jFiV9iXIPAnewIjHdK6756GE5QQEek73YouRjLCrgOYfo9DRnB9UZcMTPKqD6eEqDQ== 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=7LkLIRcXYIPmBAAnlIdWd+OoMuw3Epjx/V5seHr8LMw=; b=tg/zYqkGAIe9c1asrj08mFbSg5WkXQI4OsPHgeLBwFTT8ylX/4uJdKUw+kcKTJqqpw82fjB+rfe9yNbow32wINbGw839w/v5tx+U3beGoBfTnBFBBvGhNQYZb9P65D0JrDCMBIYe/0iGawATzqeoMYPif1Fh4LVWnviZxeBhBTtDxYbQ1jF0UMTXfl7hzLIPgmzuoq5cXo9ohCU53ut7e2MP5M3lbbVTTYjWyjMbBS2jz6TWh0LOn6WfCgh3Iq0PdQ4y2oIQ10Z48rZo+gwUMGUToQ9IbLRer9yw3v2PjVXMJ0qDhHN/EgkNaWLPRMhJOnKhPvGWwPFVl8TXZpyvYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=7LkLIRcXYIPmBAAnlIdWd+OoMuw3Epjx/V5seHr8LMw=; b=N9vmoIa8TUXljeDss6zMvrSAfj1AG+Y9Np5O2d/oL72ZCQs7lS3mBs8JOviDFtXGxTbeo2KHsdpAP2Dy+RcRITnuqxqowxKDUUQlXFVet7wvXYNWlLdTJ41gKXeUPTRoEsovl1idshCDgFZgBKK7ouCuIjBI/8z3PSLeS68x2Q8= Received: from BL0PR02CA0017.namprd02.prod.outlook.com (2603:10b6:207:3c::30) by PH7PR12MB6786.namprd12.prod.outlook.com (2603:10b6:510:1ac::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:02:08 +0000 Received: from BL02EPF0002992B.namprd02.prod.outlook.com (2603:10b6:207:3c:cafe::cf) by BL0PR02CA0017.outlook.office365.com (2603:10b6:207:3c::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 18:02:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:02:07 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:01:59 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 20/37] x86/apic: Add new driver for Secure AVIC Date: Tue, 10 Jun 2025 23:24:07 +0530 Message-ID: <20250610175424.209796-21-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|PH7PR12MB6786:EE_ X-MS-Office365-Filtering-Correlation-Id: a5ce33a8-f8fb-41df-4da7-08dda848ea42 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|7416014|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qpGQM9dq8VuYUNfOPB6JHKFOooLkDs90c2yUiCHiEhgGvYGuFBd4MaFaech+?= =?us-ascii?Q?fX5MrEocoMeroDG5mJBElrxy3lS8xN/6458XoMF07tg4STAX4GOpBkfgvXBy?= =?us-ascii?Q?TYZqDmauQVuPiAcaxwdo+wzBsc3N6sDRfdNp0lSCXM0nUbjqdAV7GcIJXM1c?= =?us-ascii?Q?fliSMztnBZH8OejNQaMTxOTojyzraVFBpsVz8SQPjk+porLK8N/2A9uI1k+q?= =?us-ascii?Q?tceDc5nvV8CfDFeAkzpbVDj8N7JlQi0ytXQfIAtWtSib9HMDPTbJPedft71w?= =?us-ascii?Q?P8mPLYs0I+pz0RItxeoM15WpODuK5wUScoj4KNr56Z6wthTEy2JqHmtpaFSG?= =?us-ascii?Q?JzyB47PHQVAfC4DNztVe8EkCBS2wApDHOQG9elrEVhf8spGzJCHtcN+wPMcT?= =?us-ascii?Q?jCd1zuW/c1QHaTZC2zfwC7M6YyWKshFpBWXSGfPUf2q5GHBmo9px9tY5z8mK?= =?us-ascii?Q?RfCqD6rwtwRq6Z/C57uM8kaXE7OtFbvYHS3YS6mpldqg46xFrMaxguZ+H42s?= =?us-ascii?Q?Jv2UZAvbEX1jyH6AUuFDRU1cbK7PDehnTVzlNotoCXb9VPH6x2gJyYNXQNTL?= =?us-ascii?Q?EdliB++oycqOCvju7s79Y2+IVZcr5mYQHUTb1q2gaqFG/+/4WO1QZbMVM1bV?= =?us-ascii?Q?RheliIlgoyKtlglB+5G8nkoFKWRa1BeHuQdDGjjiVteqa2JfTq36u0/tYMnh?= =?us-ascii?Q?JawIvNSEK695VYyJYUVj7nKflIOj4eTSKZtAbskkDhItl1+My1Oby+itKO4w?= =?us-ascii?Q?uHc1/zpOC+j3G05afwzr4fJUOwtvbyYjDnHwo+iQrmlYJKLGrxRF+jANWHX8?= =?us-ascii?Q?tVbYLRo+GcZS7+UPiuXcrAIP4vRxZM8UFcqxwFLEAYoZ58K7Wmsk9zDsQc0e?= =?us-ascii?Q?LLdQgq35xsdmdCdAuGOh/AD86ZMZrPn09+Th1vtdHMQrLe8s9hJqJ8OqVQYq?= =?us-ascii?Q?FxK65xvEAbTVqgzSid7aRkdv5RL39ugTwiefy1gsWiDSKSFyp4G+/eL3vHcB?= =?us-ascii?Q?FU9igviJ02oROLVHOYfqOiKgKTlmnHy4UvA2PdxAj3+ZsmUCDzkNl7dUl8nv?= =?us-ascii?Q?f0ZlWaZYjD3aUeGr06Lt2v8A4c4Qwjvb8OMmOFPS4GEw+fthcoxqFIxMmeJP?= =?us-ascii?Q?R0kHbvh9NctF8Gcvsw12n6VhkbRv42xadPhOhb6U0vmwg5A1mG/UKSDSMyW6?= =?us-ascii?Q?EoW9hXfYNA6C9Bd792HLwseyMco/2i27kDCMLG3tjNYvOmN54x0BCd5SPSXD?= =?us-ascii?Q?jtDEdyW5/fyZ2++ltmwjloeOVBAkHSk1lrGDhAgzvXyhE5as6eiM8YEk35RT?= =?us-ascii?Q?qf9MhWNj/JEGGfTWDyedKvL35zs9XVdtKmSNRdcCySkR9a+dNMK1gL9QL0Cr?= =?us-ascii?Q?YMa6VbL/JsFrQKcAEDo/CH/CGmw4FCW2pb+5G3ce/TFi2j8dwKyGHbqrHGYK?= =?us-ascii?Q?pJn7hDi+oXB+PBn9XNVfQO2PrUQxXPhYS+NMvKqJKtDvfS/s3Lnqt35u5vXn?= =?us-ascii?Q?z6uS5C16CZ2NXTCb4eOs+GkNo1yQ8idJ+PlV?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:02:07.7371 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a5ce33a8-f8fb-41df-4da7-08dda848ea42 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6786 Content-Type: text/plain; charset="utf-8" The Secure AVIC feature provides SEV-SNP guests hardware acceleration for performance sensitive APIC accesses while securely managing the guest-owned APIC state through the use of a private APIC backing page. This helps prevent hypervisor from generating unexpected interrupts for a vCPU or otherwise violate architectural assumptions around APIC behavior. Add a new x2APIC driver that will serve as the base of the Secure AVIC support. It is initially the same as the x2APIC phys driver (without IPI callbacks), but will be modified as features of Secure AVIC are implemented. As the new driver does not implement Secure AVIC features yet, if the hypervisor sets the Secure AVIC bit in SEV_STATUS, maintain the existing behavior to enforce the guest termination. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay Reviewed-by: Tianyu Lan --- Changes since v6: - Add Tianyu's Reviewed-by. arch/x86/Kconfig | 13 ++++++ arch/x86/boot/compressed/sev.c | 1 + arch/x86/coco/core.c | 3 ++ arch/x86/coco/sev/core.c | 1 + arch/x86/include/asm/msr-index.h | 4 +- arch/x86/kernel/apic/Makefile | 1 + arch/x86/kernel/apic/x2apic_savic.c | 63 +++++++++++++++++++++++++++++ include/linux/cc_platform.h | 8 ++++ 8 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 arch/x86/kernel/apic/x2apic_savic.c diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 340e5468980e..23afe08327be 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -486,6 +486,19 @@ config X86_X2APIC =20 If in doubt, say Y. =20 +config AMD_SECURE_AVIC + bool "AMD Secure AVIC" + depends on AMD_MEM_ENCRYPT && X86_X2APIC + help + Enable this to get AMD Secure AVIC support on guests that have this fea= ture. + + AMD Secure AVIC provides hardware acceleration for performance sensitive + APIC accesses and support for managing guest owned APIC state for SEV-S= NP + guests. Secure AVIC does not support xapic mode. It has functional + dependency on x2apic being enabled in the guest. + + If you don't know what to do here, say N. + config X86_POSTED_MSI bool "Enable MSI and MSI-x delivery by posted interrupts" depends on X86_64 && IRQ_REMAP diff --git a/arch/x86/boot/compressed/sev.c b/arch/x86/boot/compressed/sev.c index fd1b67dfea22..74e083feb2d9 100644 --- a/arch/x86/boot/compressed/sev.c +++ b/arch/x86/boot/compressed/sev.c @@ -235,6 +235,7 @@ bool sev_es_check_ghcb_fault(unsigned long address) MSR_AMD64_SNP_VMSA_REG_PROT | \ MSR_AMD64_SNP_RESERVED_BIT13 | \ MSR_AMD64_SNP_RESERVED_BIT15 | \ + MSR_AMD64_SNP_SECURE_AVIC | \ MSR_AMD64_SNP_RESERVED_MASK) =20 /* diff --git a/arch/x86/coco/core.c b/arch/x86/coco/core.c index d4610af68114..989ca9f72ba3 100644 --- a/arch/x86/coco/core.c +++ b/arch/x86/coco/core.c @@ -104,6 +104,9 @@ static bool noinstr amd_cc_platform_has(enum cc_attr at= tr) case CC_ATTR_HOST_SEV_SNP: return cc_flags.host_sev_snp; =20 + case CC_ATTR_SNP_SECURE_AVIC: + return sev_status & MSR_AMD64_SNP_SECURE_AVIC; + default: return false; } diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index b6db4e0b936b..e4d89a5f9f9f 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -79,6 +79,7 @@ static const char * const sev_status_feat_names[] =3D { [MSR_AMD64_SNP_IBS_VIRT_BIT] =3D "IBSVirt", [MSR_AMD64_SNP_VMSA_REG_PROT_BIT] =3D "VMSARegProt", [MSR_AMD64_SNP_SMT_PROT_BIT] =3D "SMTProt", + [MSR_AMD64_SNP_SECURE_AVIC_BIT] =3D "SecureAVIC", }; =20 /* diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-in= dex.h index b7dded3c8113..f617c8365f18 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -697,7 +697,9 @@ #define MSR_AMD64_SNP_VMSA_REG_PROT BIT_ULL(MSR_AMD64_SNP_VMSA_REG_PROT_BI= T) #define MSR_AMD64_SNP_SMT_PROT_BIT 17 #define MSR_AMD64_SNP_SMT_PROT BIT_ULL(MSR_AMD64_SNP_SMT_PROT_BIT) -#define MSR_AMD64_SNP_RESV_BIT 18 +#define MSR_AMD64_SNP_SECURE_AVIC_BIT 18 +#define MSR_AMD64_SNP_SECURE_AVIC BIT_ULL(MSR_AMD64_SNP_SECURE_AVIC_BIT) +#define MSR_AMD64_SNP_RESV_BIT 19 #define MSR_AMD64_SNP_RESERVED_MASK GENMASK_ULL(63, MSR_AMD64_SNP_RESV_BIT) #define MSR_AMD64_RMP_BASE 0xc0010132 #define MSR_AMD64_RMP_END 0xc0010133 diff --git a/arch/x86/kernel/apic/Makefile b/arch/x86/kernel/apic/Makefile index 52d1808ee360..581db89477f9 100644 --- a/arch/x86/kernel/apic/Makefile +++ b/arch/x86/kernel/apic/Makefile @@ -18,6 +18,7 @@ ifeq ($(CONFIG_X86_64),y) # APIC probe will depend on the listing order here obj-$(CONFIG_X86_NUMACHIP) +=3D apic_numachip.o obj-$(CONFIG_X86_UV) +=3D x2apic_uv_x.o +obj-$(CONFIG_AMD_SECURE_AVIC) +=3D x2apic_savic.o obj-$(CONFIG_X86_X2APIC) +=3D x2apic_phys.o obj-$(CONFIG_X86_X2APIC) +=3D x2apic_cluster.o obj-y +=3D apic_flat_64.o diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c new file mode 100644 index 000000000000..bea844f28192 --- /dev/null +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * AMD Secure AVIC Support (SEV-SNP Guests) + * + * Copyright (C) 2024 Advanced Micro Devices, Inc. + * + * Author: Neeraj Upadhyay + */ + +#include + +#include +#include + +#include "local.h" + +static int savic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) +{ + return x2apic_enabled() && cc_platform_has(CC_ATTR_SNP_SECURE_AVIC); +} + +static int savic_probe(void) +{ + if (!cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) + return 0; + + if (!x2apic_mode) { + pr_err("Secure AVIC enabled in non x2APIC mode\n"); + snp_abort(); + /* unreachable */ + } + + return 1; +} + +static struct apic apic_x2apic_savic __ro_after_init =3D { + + .name =3D "secure avic x2apic", + .probe =3D savic_probe, + .acpi_madt_oem_check =3D savic_acpi_madt_oem_check, + + .dest_mode_logical =3D false, + + .disable_esr =3D 0, + + .cpu_present_to_apicid =3D default_cpu_present_to_apicid, + + .max_apic_id =3D UINT_MAX, + .x2apic_set_max_apicid =3D true, + .get_apic_id =3D x2apic_get_apic_id, + + .calc_dest_apicid =3D apic_default_calc_apicid, + + .nmi_to_offline_cpu =3D true, + + .read =3D native_apic_msr_read, + .write =3D native_apic_msr_write, + .eoi =3D native_apic_msr_eoi, + .icr_read =3D native_x2apic_icr_read, + .icr_write =3D native_x2apic_icr_write, +}; + +apic_driver(apic_x2apic_savic); diff --git a/include/linux/cc_platform.h b/include/linux/cc_platform.h index 0bf7d33a1048..7fcec025c5e0 100644 --- a/include/linux/cc_platform.h +++ b/include/linux/cc_platform.h @@ -96,6 +96,14 @@ enum cc_attr { * enabled to run SEV-SNP guests. */ CC_ATTR_HOST_SEV_SNP, + + /** + * @CC_ATTR_SNP_SECURE_AVIC: Secure AVIC mode is active. + * + * The host kernel is running with the necessary features enabled + * to run SEV-SNP guests with full Secure AVIC capabilities. + */ + CC_ATTR_SNP_SECURE_AVIC, }; =20 #ifdef CONFIG_ARCH_HAS_CC_PLATFORM --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2053.outbound.protection.outlook.com [40.107.236.53]) (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 1CC4B1F1527; Tue, 10 Jun 2025 18:02:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578556; cv=fail; b=LvVZ54Z04Ckstw9FDsvaQV0zbRMabV7QUDkD6weM7pJkm1KsTeCsjSl5V76U27QKTFSqv2APXNbLFzA26GVC6gXLaU6YCU8xk8m7TuDMNTit1N+4Hhz5Tq9G6ONDiOfxcIIjI05aI6W6S2wKJ3hQPHl7XTZcZlaZlHfJBbYkDRo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578556; c=relaxed/simple; bh=+ZMbbzeWmiE9pme9PhR9qhaGAoqoCFtkMDA0rfEcmvw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gWI1aN1k1zAm/q9F6DmBllrAekw+ItlVUVMba7vD6Efo3vPmpNRFizl7Tc/vT+gEDhqpQic3xyt5XhH2EeKSlMAeOyuUiyB1n/tPoKVRvXucYf78LC8eNNDk2S+LQBLN38lkE/qGCJnDnxxQUW9eBVGE00xhjiPRDnY9X8Wp1wU= 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=M3B6Gcpd; arc=fail smtp.client-ip=40.107.236.53 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="M3B6Gcpd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PLC8AyfXLB5+UjEQbzoIzBotzGtE+96eQYPyf1Q8Znq0TX8JM+nmtBluoNugktJ9P1gZY9/sBj6BkVgvcH+hBfdafGSWuqnSpTIvkwI5C01/Q4e3bUpDsGGfYTCsC8CYGN7DE8i0W1xkIJAUFuuvUkSTvy+m7Zi9hMYRgALMUw9QDYDlNYv8dTGKYFno89ICHrdlYDy7aXnCoiVf3n1kN1etdAbGVskWjQK11shLI9ZvZ+Imh8n4W9XV9RfnjZV6u+Aa3UnXyAG1BDGYFpZywAh7WT4rVOkDoO5ZnjzoN/MdULL+7tZHVMmqtME92wtRNhhOWAQb8bh+kSrIEBYL2w== 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=MGR9qamGGv6xu+AoYxRkNwdPhrWCjwZnBBGTZSW8ly0=; b=AduquVIEvBAlSrQ0kTpwHIbTPNf5n0n98csgtfR6x6RrcVUddyltnLjRzwBbLClmGhsqczRstUAGUrUBhHLUU4usjHR7AaSzqoREUmgxEP/1CBeA7Oeqel+eEHgzvCADzJrrI8eLV3TrSUPTw6pnqVLUOfVuzRH4s4JqSpdwQPa3nCu08Cf12NaElpoY6/ctSz50duWLk4TF01IT9MBc61K0Grna0D2zCUhMpUT4C8xpKLFde/I/s505qt2Q9uJit/WE5vXyRI9EUV35EeTvsLL2oi5AG7VVJ/Yu9kjj2PIqucwTMczfkigdqMRv3AH/YSKlkqplGYrGVixaUs7B6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=MGR9qamGGv6xu+AoYxRkNwdPhrWCjwZnBBGTZSW8ly0=; b=M3B6Gcpdr77wS0l9YbSBwTHEuV9X4/L2oNs3soxB+D6xHheqZqJKknOBimKERPAjEb43REbtV7VJZWObgY6wKCyc0mmeS48JqTniYArvPtFTrbBj5WtegRjPaSomMDG2sQJqXEm3Drx4H57AAURGDco8nxULpbXRwkHq9kZKxUg= Received: from BL1PR13CA0409.namprd13.prod.outlook.com (2603:10b6:208:2c2::24) by DS0PR12MB6438.namprd12.prod.outlook.com (2603:10b6:8:ca::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.41; Tue, 10 Jun 2025 18:02:31 +0000 Received: from BL02EPF0002992A.namprd02.prod.outlook.com (2603:10b6:208:2c2:cafe::25) by BL1PR13CA0409.outlook.office365.com (2603:10b6:208:2c2::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.19 via Frontend Transport; Tue, 10 Jun 2025 18:02:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:02:31 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:02:21 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 21/37] x86/apic: Initialize Secure AVIC APIC backing page Date: Tue, 10 Jun 2025 23:24:08 +0530 Message-ID: <20250610175424.209796-22-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|DS0PR12MB6438:EE_ X-MS-Office365-Filtering-Correlation-Id: 14f1f970-8b53-44db-bf7f-08dda848f835 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|7416014|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2aYb0g3heFXnD4S8GtcHplhkfpANYwZJeimgOR9lETB8ku4jKxFPnQAjNT/g?= =?us-ascii?Q?0KVNr0BdGFwFaLSyAj6xJ6wOp/snSq6tQBYz5A4OHuZ3MIVIE239ezV07bdt?= =?us-ascii?Q?S8hB5cEi5zOMuLUIHRaC8qKZPoMP/zA8YqfiK8/6wHaHIL0AHlkd1jxyI6BL?= =?us-ascii?Q?+AQxfKsGlnIJ/d8QmuulQf30Xs9+PGk1lQuOlyNRq5Ab9Mg/HOdcrm6Fn0GH?= =?us-ascii?Q?34sTUfpX48Bz9cRvAWSuiqYDsKqg2ZgIv6M2g69phGc8gZpqS1Zu9oawj7l6?= =?us-ascii?Q?N1mcOZr1tnawUdckpVpTPROWsWOHgQFueXkLSYhWBmq0N9lfW4sEQ5cGXObS?= =?us-ascii?Q?JIXB+wlvPXHQrFRaoqO3YZJ+jxAk889wUeqC8zK80Lh5Yd0EBvP7F2TQ9Ic9?= =?us-ascii?Q?DKT5h3MZSnwkBNpKKydWo/MSZf9lJMgdgOGvxnQ1my9i7RhHLI5Eb9M6Tnog?= =?us-ascii?Q?jD1L30HroKjxqDADBrmrqBdjafXrgc5z140TLq1AZj0dW6G1s5lWRRd2GKmE?= =?us-ascii?Q?qzDUYsdIvjQMjSEE6QDseeK0FTXT0bJHsOtpzANdrsKbrbfGviZXX8YLIpYj?= =?us-ascii?Q?2F5JNKOqTO9G7+u7kDg8OoejnDxP9tnYC6fLaETwJyBU8yyCAIFH3rVxZaPS?= =?us-ascii?Q?NPz1YA3WYAMVJnOuQY3jORuI+WGLMpOV/9jbt2s3zNx69WAGYNX6evSd6PFe?= =?us-ascii?Q?XaPzzb+M8GcgBM6PP4f5Hixen70Kqwlw+XswVa+QKb2+0HB120LpUoLbfhQ9?= =?us-ascii?Q?rmtkj+C7bDGH55WM988jMbIO4v1q9kGja9kRx05I3l2xoYcid1f8cfFthZmP?= =?us-ascii?Q?l6ckWUB49wUL9dSCIGKXUHxLWR4KjX6OVOMgzs/F+IHdvZYwpaky4aXzlJoP?= =?us-ascii?Q?XjFxvVgXFKlOgG3eU3evohB4U/3zsysLttSN8G/NCGKoL2YlZvdCYs+8zxdx?= =?us-ascii?Q?G5Yok47vLzyxc7I77A6YY6UXjOlPNpidW9X1EjM3EHKn7rm2/+tN4HXET6z6?= =?us-ascii?Q?qu7k93BlXVLF4xBSWqXWoRC5UHLcjB4p3D4iRdBgSUB/XSkPs41MLf5Dxebt?= =?us-ascii?Q?hEzp4htMaORdPXKOrqTjSzGt/tLpMXy8xs1AwIzHolXAYtUemb8TCil4Kqb8?= =?us-ascii?Q?ovf1nLjoaHdzPKkIVwK2kqa14nq6avyMiog6Kqw/4d9+Tj3ldsRND3kVpXGy?= =?us-ascii?Q?TzWSEti2EYY54exrAftk4xZOV0GrTX99AcJNNo2yKBGV53eAz1q1hVl3HCgv?= =?us-ascii?Q?VR7a2LhXnebdDRHRUSBGd+Kia3BNgqoZIlHj9hkFtoZWeqg3XvZElUf8WS9w?= =?us-ascii?Q?3CaeFPa/e3Rhm+d3aPXN0lsBb5lIS3z3ZdgRDzoC3SG8fQXPudhuGXoc5iC4?= =?us-ascii?Q?moDaByXq1BhVOTKCIpZHmWbEzo3jcyc7g/RDjZeVolohRgM/X66EVemL23CO?= =?us-ascii?Q?xjgjpkxq7ryGuegz28EepBiCJxR6ecqWCaD0AR1pTSUWV6M6WXNGvRSPBRJm?= =?us-ascii?Q?IwnqMuVgC8Y4Mck70oglDDGi9ETtKhhelKvC?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:02:31.1428 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 14f1f970-8b53-44db-bf7f-08dda848f835 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6438 Content-Type: text/plain; charset="utf-8" With Secure AVIC, the APIC backing page is owned and managed by guest. Allocate and initialize APIC backing page for all guest CPUs. The NPT entry for a vCPU's APIC backing page must always be present when the vCPU is running, in order for Secure AVIC to function. A VMEXIT_BUSY is returned on VMRUN and the vCPU cannot be resumed if the NPT entry for the APIC backing page is not present. To handle this, notify GPA of the vCPU's APIC backing page to the hypervisor by using the SVM_VMGEXIT_SECURE_AVIC GHCB protocol event. Before executing VMRUN, the hypervisor makes use of this information to make sure the APIC backing page is mapped in NPT. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/coco/sev/core.c | 22 ++++++++++++++++++++ arch/x86/include/asm/apic.h | 1 + arch/x86/include/asm/sev.h | 2 ++ arch/x86/include/uapi/asm/svm.h | 4 ++++ arch/x86/kernel/apic/apic.c | 3 +++ arch/x86/kernel/apic/x2apic_savic.c | 32 +++++++++++++++++++++++++++++ 6 files changed, 64 insertions(+) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index e4d89a5f9f9f..32be4ab2f886 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1072,6 +1072,28 @@ int __init sev_es_efi_map_ghcbs(pgd_t *pgd) return 0; } =20 +enum es_result savic_register_gpa(u64 gpa) +{ + struct ghcb_state state; + struct es_em_ctxt ctxt; + enum es_result res; + struct ghcb *ghcb; + + guard(irqsave)(); + + ghcb =3D __sev_get_ghcb(&state); + vc_ghcb_invalidate(ghcb); + + ghcb_set_rax(ghcb, SVM_VMGEXIT_SAVIC_SELF_GPA); + ghcb_set_rbx(ghcb, gpa); + res =3D sev_es_ghcb_hv_call(ghcb, &ctxt, SVM_VMGEXIT_SAVIC, + SVM_VMGEXIT_SAVIC_REGISTER_GPA, 0); + + __sev_put_ghcb(&state); + + return res; +} + static void snp_register_per_cpu_ghcb(void) { struct sev_es_runtime_data *data; diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index f91d23757375..184cae6e786b 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -305,6 +305,7 @@ struct apic { =20 /* Probe, setup and smpboot functions */ int (*probe)(void); + void (*setup)(void); int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); =20 void (*init_apic_ldr)(void); diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index 58e028d42e41..12bf2988ea19 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -520,6 +520,7 @@ int snp_svsm_vtpm_send_command(u8 *buffer); =20 void __init snp_secure_tsc_prepare(void); void __init snp_secure_tsc_init(void); +enum es_result savic_register_gpa(u64 gpa); =20 static __always_inline void vc_ghcb_invalidate(struct ghcb *ghcb) { @@ -592,6 +593,7 @@ static inline int snp_send_guest_request(struct snp_msg= _desc *mdesc, struct snp_ static inline int snp_svsm_vtpm_send_command(u8 *buffer) { return -ENODEV;= } static inline void __init snp_secure_tsc_prepare(void) { } static inline void __init snp_secure_tsc_init(void) { } +static inline enum es_result savic_register_gpa(u64 gpa) { return ES_UNSUP= PORTED; } =20 #endif /* CONFIG_AMD_MEM_ENCRYPT */ =20 diff --git a/arch/x86/include/uapi/asm/svm.h b/arch/x86/include/uapi/asm/sv= m.h index 9c640a521a67..650e3256ea7d 100644 --- a/arch/x86/include/uapi/asm/svm.h +++ b/arch/x86/include/uapi/asm/svm.h @@ -118,6 +118,10 @@ #define SVM_VMGEXIT_AP_CREATE 1 #define SVM_VMGEXIT_AP_DESTROY 2 #define SVM_VMGEXIT_SNP_RUN_VMPL 0x80000018 +#define SVM_VMGEXIT_SAVIC 0x8000001a +#define SVM_VMGEXIT_SAVIC_REGISTER_GPA 0 +#define SVM_VMGEXIT_SAVIC_UNREGISTER_GPA 1 +#define SVM_VMGEXIT_SAVIC_SELF_GPA ~0ULL #define SVM_VMGEXIT_HV_FEATURES 0x8000fffd #define SVM_VMGEXIT_TERM_REQUEST 0x8000fffe #define SVM_VMGEXIT_TERM_REASON(reason_set, reason_code) \ diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index d73ba5a7b623..36f1326fea2e 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1503,6 +1503,9 @@ static void setup_local_APIC(void) return; } =20 + if (apic->setup) + apic->setup(); + /* * If this comes from kexec/kcrash the APIC might be enabled in * SPIV. Soft disable it before doing further initialization. diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index bea844f28192..a2747ab9200a 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -8,17 +8,44 @@ */ =20 #include +#include =20 #include #include =20 #include "local.h" =20 +static struct apic_page __percpu *apic_page __ro_after_init; + static int savic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return x2apic_enabled() && cc_platform_has(CC_ATTR_SNP_SECURE_AVIC); } =20 +static void savic_setup(void) +{ + void *backing_page; + enum es_result res; + unsigned long gpa; + + backing_page =3D this_cpu_ptr(apic_page); + gpa =3D __pa(backing_page); + + /* + * The NPT entry for a vCPU's APIC backing page must always be + * present when the vCPU is running in order for Secure AVIC to + * function. A VMEXIT_BUSY is returned on VMRUN and the vCPU cannot + * be resumed if the NPT entry for the APIC backing page is not + * present. Notify GPA of the vCPU's APIC backing page to the + * hypervisor by calling savic_register_gpa(). Before executing + * VMRUN, the hypervisor makes use of this information to make sure + * the APIC backing page is mapped in NPT. + */ + res =3D savic_register_gpa(gpa); + if (res !=3D ES_OK) + snp_abort(); +} + static int savic_probe(void) { if (!cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) @@ -30,6 +57,10 @@ static int savic_probe(void) /* unreachable */ } =20 + apic_page =3D alloc_percpu(struct apic_page); + if (!apic_page) + snp_abort(); + return 1; } =20 @@ -38,6 +69,7 @@ static struct apic apic_x2apic_savic __ro_after_init =3D { .name =3D "secure avic x2apic", .probe =3D savic_probe, .acpi_madt_oem_check =3D savic_acpi_madt_oem_check, + .setup =3D savic_setup, =20 .dest_mode_logical =3D false, =20 --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2050.outbound.protection.outlook.com [40.107.243.50]) (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 063292459D0; Tue, 10 Jun 2025 18:02:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578576; cv=fail; b=WkbE/g1grMtrW4+YMZX6J84wcYKGQmbqWhs6C5t501aDXJkIidb9KHm1ZJULErMXqb5brxjNBUFCo046hW2176AiyvOxQ3ipRVikStSvUyeCGV+x8UyXHVZpFkurDU96iaOBGkHTdR7ZLGsDSiByVL9P65dg4RU9fPVjfyqA7r8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578576; c=relaxed/simple; bh=nuI9QZ61PYKMqFwqfJjt9B5BWwNb9eWiYE3gSSaWsYo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mgkq2V3j6jkZUVfMfASuHfDZosRpIAA35nxPIQwMWa7xq59qOBkyJfu29rVSac1fOoD3ZW4OQ0qdcnhvIbCRguZ6EaZgUuFXzt0/bNLtCIfOEZSgPSnRulcLIhI2wNy3GYaDv+wZDcIRPCFUKOYPISD0VL/IGa/gNgJXlYhaJsk= 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=EAHs25iN; arc=fail smtp.client-ip=40.107.243.50 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="EAHs25iN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gk9wnkxr3T287odN0vyDGO+1iEjFjt6JyjSpL6GxClFZH3JvMsozrwQBHQxJ0xbNZ/KRSG6UwgAxXTo+LCADQgL9jaN/uQ8NppSD1CgYTwRRCUiuuxU6c/i2cv98zMU408sUEJuX6GfNMuruwaUaj1SOxgNRbUkdyogzsVPG6RtkoAWI7ckhlN8Wsxj7kIbEjofee3NnIQmXxt4qLnXwm+C0UCtCvroXIrg14Bco+yVdT9ovp8QOD/BpzUBO31ivMLNcjDnmvyb55iTCZhZtbL1fdTSZjwdvscwkkXVA7bJpZLuToYCTsJH2fN1JVGGFa7pQtYhWhig5RyDlVXtg5g== 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=57Jt/XlO7kLsZFK3JDRTa9Isu95SC4RvIHz/AWyCdZ8=; b=w77xRLmDW0GSNjEB9P4/Tby6AsMHAh0ap7VbdQjeJhZTT3prcziJTsH9CGrUmD3YzVrj6CzGqMMgrSUo7r5vRDUVr63bNp8WHqqvUFQG38JtNN6JxTSHF6rUC7L9WYjvF1Et0WUHNd/zHWMIYqP3VSHJn98TTdV3WwgciumePx+IE9Kg0QoJIjJxeEx7GB8GvpQTUAdmVJJtgFhHzuZ/biJ1OKTPQCSTmncm5vt4SbJeSZftXmjneyRogW/4sMOZOiYQcTEhxI2HLKHdPtJovN+DDJdnCRV4tRyelm7ZKrpQe5u4UrMXcW/bMeDj7z7/gIgpZs+lDuoKAi3haJYvNw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=57Jt/XlO7kLsZFK3JDRTa9Isu95SC4RvIHz/AWyCdZ8=; b=EAHs25iNZokxgg7vnJbbjMGh7EJGcFOfPYipWp19od7uIBdQ/jwAbi6DH1p0/0Z5lLCjY+oMw7MasDlGMSlezddXRGCSepdC8FRr5Xi9qM7Dz1vNCc+x8mGhoPJgszElPMFz4YvTDBMWvoHtvR+gAZMrA3WwgS86ivTeLTd5Y9c= Received: from BN9PR03CA0657.namprd03.prod.outlook.com (2603:10b6:408:13b::32) by BL3PR12MB6521.namprd12.prod.outlook.com (2603:10b6:208:3bd::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Tue, 10 Jun 2025 18:02:51 +0000 Received: from BL02EPF0002992C.namprd02.prod.outlook.com (2603:10b6:408:13b:cafe::30) by BN9PR03CA0657.outlook.office365.com (2603:10b6:408:13b::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.19 via Frontend Transport; Tue, 10 Jun 2025 18:02:51 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:02:50 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:02:42 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 22/37] x86/apic: Populate .read()/.write() callbacks of Secure AVIC driver Date: Tue, 10 Jun 2025 23:24:09 +0530 Message-ID: <20250610175424.209796-23-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|BL3PR12MB6521:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d044946-5b75-493e-6227-08dda84903f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SxEIh0mj6sdLr7xsY8ouZy2tASw9EjC5+fj3hHVAb4vQvz0prV1GAD0SRpzR?= =?us-ascii?Q?RfpU1Dbg9LY8MMutn/r9SWwd4dvN0dZ8OXg3pDI31sLpLmjUR+/6CjZQOZYk?= =?us-ascii?Q?tbEOR3qqZ1Nmdn5wP6636LPDH4CGtuKlcEaO4Hs5jRcifGA8xklRErrHhTZy?= =?us-ascii?Q?e8RNFZE/IWMoUqBp28TtGBgCVt9/7peAowbMgl1axWGrbe+tVrd0W5kSc1mN?= =?us-ascii?Q?3/WbMGMwht25E+DB5HqG+JoU+B6uPpCiqO89BGI2xj10Y34h764bfHIPKXMv?= =?us-ascii?Q?qjViZHClqHgsBbRP1XGo2UoJ0F7IMwRSVDuTaknsQmRRtDcJ1qeROVkRiyWx?= =?us-ascii?Q?9ydO27C0hkNwzP5AFzYU2cOX5lUatQvOTCsxfOHAzuTHQlH+Vaerde/gFyGv?= =?us-ascii?Q?qy2y4buWlrMuw0kX9bEk4eeZnqWusIzlb1PzhfRzsTO9Q+oLRKMp1dLZreSm?= =?us-ascii?Q?N3cVemVz3aYIBzH/R4b717Aoa/ivOE7Gk8/dzCcmGGzuEhrLckb+so2g/Mqi?= =?us-ascii?Q?0QZ8jwFxw4tpDM0kp4dooe73WXIUbhphXuf61PP3EInbJeQDOUTKUykXkrqV?= =?us-ascii?Q?YxweI7OSTy3gIYFJOueabDtOe3BJRuSXLJHPVEkq0gkABp0T2NvbZRSmRBpt?= =?us-ascii?Q?y8C+484xmb6TkqtnQLlGJuYwDSOAqbp0XgRXUMKPr0HrQe8a7v0Wq2NwZeTI?= =?us-ascii?Q?n4Iv9IXWtb3Vqkwv5krng5jkccLkrffSRbfg2bkfnLjGKlHkQ/7DZD3Gc3sh?= =?us-ascii?Q?ZNDTCLrwu6xrt4NzDUmQHTK0MbCcYIL789RY22/CzdvwL1UsTh1lXGaTbrwG?= =?us-ascii?Q?UnFFsEA0Ar93lyn2PRL1VSXBOtgd45c4JdZqTMiFegJWq7amdmE2XVhAakWY?= =?us-ascii?Q?mEFAi5Shd2EDQJnb+XCOUtU8wXIPdMHr+l/W97znCrI6RDMKi8HywUHE+A2V?= =?us-ascii?Q?vLekRrzFZeMxygPPKXUJwxtGDwpbc5Qb7H756mRJpFxSL7rTKjc9E66rlqNE?= =?us-ascii?Q?228zAaA50TWvrBv2k2d8P08OJiNk2mAvcgo5W9Is5+Ngv3flHotx3Kie8CJi?= =?us-ascii?Q?CWau1qJTBRDcYRyFrmKhTBrT2T1NVTP6YYa8VMvy1kmajjTDVuFTjyU7GKSg?= =?us-ascii?Q?8qRVkGWRK1D3ztJdvMwUtwe5XRoCabXmcSCGiY52EoUyBHIDz+9Lriws2Wyy?= =?us-ascii?Q?Bhk2qH6k4McRBvImmtwK5vnODfFv9emzeSmfcflMUs7sUztXlKEH2wOKT40O?= =?us-ascii?Q?5paKdyucPVATkBhTkq3Rqc5ZV0yEsdGABojXnhbpLvcrJexgEGoSuCY3/qn3?= =?us-ascii?Q?0ZyUFvzYU5OwYl76+n5GmyAHdcv3eShkWKxEKGdVNm6bQgPh8I84s+o+93/H?= =?us-ascii?Q?VO+GQKvZ5D8XSd095ZvOFwGVgTCOwKf2ZizWYAkvN4CBus686Y2IG2nUnOZG?= =?us-ascii?Q?cnz6Ous06aYWAUxD35qApgVkRTPbI4hSrGQRahWDLVOEfqjmK7Lh14GAkbT7?= =?us-ascii?Q?i9XPkiqLrmsIPjRKVH8ld36FEx7M3pUx04F6?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:02:50.8274 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1d044946-5b75-493e-6227-08dda84903f1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992C.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6521 Content-Type: text/plain; charset="utf-8" Add read() and write() APIC callback functions to read and write x2APIC registers directly from the guest APIC backing page of a vCPU. The x2APIC registers are mapped at an offset within the guest APIC backing page which is same as their x2APIC MMIO offset. Secure AVIC adds new registers such as ALLOWED_IRRs (which are at 4-byte offset within the IRR register offset range) and NMI_REQ to the APIC register space. When Secure AVIC is enabled, guest's rdmsr/wrmsr of APIC registers result in VC exception (for non-accelerated register accesses) with error code VMEXIT_AVIC_NOACCEL. The VC exception handler can read/write the x2APIC register in the guest APIC backing page to complete the rdmsr/wrmsr. Since doing this would increase the latency of accessing x2APIC registers, instead of doing rdmsr/wrmsr based reg accesses and handling reads/writes in VC exception, directly read/write APIC registers from/to the guest APIC backing page of the vCPU in read() and write() callbacks of the Secure AVIC APIC driver. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/include/asm/apicdef.h | 2 + arch/x86/kernel/apic/x2apic_savic.c | 113 +++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/apicdef.h b/arch/x86/include/asm/apicdef.h index 094106b6a538..be39a543fbe5 100644 --- a/arch/x86/include/asm/apicdef.h +++ b/arch/x86/include/asm/apicdef.h @@ -135,6 +135,8 @@ #define APIC_TDR_DIV_128 0xA #define APIC_EFEAT 0x400 #define APIC_ECTRL 0x410 +#define APIC_SEOI 0x420 +#define APIC_IER 0x480 #define APIC_EILVTn(n) (0x500 + 0x10 * n) #define APIC_EILVT_NR_AMD_K8 1 /* # of extended interrupts */ #define APIC_EILVT_NR_AMD_10H 4 diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index a2747ab9200a..186e69a5e169 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -9,6 +9,7 @@ =20 #include #include +#include =20 #include #include @@ -22,6 +23,114 @@ static int savic_acpi_madt_oem_check(char *oem_id, char= *oem_table_id) return x2apic_enabled() && cc_platform_has(CC_ATTR_SNP_SECURE_AVIC); } =20 +#define SAVIC_ALLOWED_IRR 0x204 + +static u32 savic_read(u32 reg) +{ + struct apic_page *ap =3D this_cpu_ptr(apic_page); + + /* + * When Secure AVIC is enabled, rdmsr/wrmsr of APIC registers + * result in VC exception (for non-accelerated register accesses) + * with VMEXIT_AVIC_NOACCEL error code. The VC exception handler + * can read/write the x2APIC register in the guest APIC backing page. + * Since doing this would increase the latency of accessing x2APIC + * registers, instead of doing rdmsr/wrmsr based accesses and + * handling apic register reads/writes in VC exception, the read() + * and write() callbacks directly read/write APIC register from/to + * the vCPU APIC backing page. + */ + switch (reg) { + case APIC_LVTT: + case APIC_TMICT: + case APIC_TMCCT: + case APIC_TDCR: + case APIC_ID: + case APIC_LVR: + case APIC_TASKPRI: + case APIC_ARBPRI: + case APIC_PROCPRI: + case APIC_LDR: + case APIC_SPIV: + case APIC_ESR: + case APIC_LVTTHMR: + case APIC_LVTPC: + case APIC_LVT0: + case APIC_LVT1: + case APIC_LVTERR: + case APIC_EFEAT: + case APIC_ECTRL: + case APIC_SEOI: + case APIC_IER: + case APIC_EILVTn(0) ... APIC_EILVTn(3): + return apic_get_reg(ap, reg); + case APIC_ICR: + return (u32) apic_get_reg64(ap, reg); + case APIC_ISR ... APIC_ISR + 0x70: + case APIC_TMR ... APIC_TMR + 0x70: + if (WARN_ONCE(!IS_ALIGNED(reg, 16), + "APIC reg read offset 0x%x not aligned at 16 bytes", reg)) + return 0; + return apic_get_reg(ap, reg); + /* IRR and ALLOWED_IRR offset range */ + case APIC_IRR ... APIC_IRR + 0x74: + /* + * Either aligned at 16 bytes for valid IRR reg offset or a + * valid Secure AVIC ALLOWED_IRR offset. + */ + if (WARN_ONCE(!(IS_ALIGNED(reg, 16) || + IS_ALIGNED(reg - SAVIC_ALLOWED_IRR, 16)), + "Misaligned IRR/ALLOWED_IRR APIC reg read offset 0x%x", reg)) + return 0; + return apic_get_reg(ap, reg); + default: + pr_err("Permission denied: read of Secure AVIC reg offset 0x%x\n", reg); + return 0; + } +} + +#define SAVIC_NMI_REQ 0x278 + +static void savic_write(u32 reg, u32 data) +{ + struct apic_page *ap =3D this_cpu_ptr(apic_page); + + switch (reg) { + case APIC_LVTT: + case APIC_LVT0: + case APIC_LVT1: + case APIC_TMICT: + case APIC_TDCR: + case APIC_SELF_IPI: + case APIC_TASKPRI: + case APIC_EOI: + case APIC_SPIV: + case SAVIC_NMI_REQ: + case APIC_ESR: + case APIC_LVTTHMR: + case APIC_LVTPC: + case APIC_LVTERR: + case APIC_ECTRL: + case APIC_SEOI: + case APIC_IER: + case APIC_EILVTn(0) ... APIC_EILVTn(3): + apic_set_reg(ap, reg, data); + break; + case APIC_ICR: + apic_set_reg64(ap, reg, (u64) data); + break; + /* ALLOWED_IRR offsets are writable */ + case SAVIC_ALLOWED_IRR ... SAVIC_ALLOWED_IRR + 0x70: + if (IS_ALIGNED(reg - SAVIC_ALLOWED_IRR, 16)) { + apic_set_reg(ap, reg, data); + break; + } + fallthrough; + default: + pr_err("Permission denied: write to Secure AVIC reg offset 0x%x\n", reg); + } +} + static void savic_setup(void) { void *backing_page; @@ -85,8 +194,8 @@ static struct apic apic_x2apic_savic __ro_after_init =3D= { =20 .nmi_to_offline_cpu =3D true, =20 - .read =3D native_apic_msr_read, - .write =3D native_apic_msr_write, + .read =3D savic_read, + .write =3D savic_write, .eoi =3D native_apic_msr_eoi, .icr_read =3D native_x2apic_icr_read, .icr_write =3D native_x2apic_icr_write, --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2065.outbound.protection.outlook.com [40.107.92.65]) (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 0CCC215C0; Tue, 10 Jun 2025 18:03:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578604; cv=fail; b=O3CGna3VPji5HngisPm5SWlA9ATio8ys4brvmMwajO2AXOIP0pwq9eqZYLSfuZ7AcGLBgs9JqMz8iHVNjtfHbWvy8lX2CfXlVcmgkKlVwiWUEWbFhOgE9DQJAP0tuW3HDFmp5GnB3HpeSvFVyxquBzve/L3RyKtzaNUrHuRDgfg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578604; c=relaxed/simple; bh=/BhFBCmzpunjHu9xfKM3KzgvX8Z0Etk6CXDnulgWh2s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TVse7mBthqPzPzCA368+g9ojnJSGaDw/FA55loI92x6avB+wRzlF1VYg2MSSZ+izmliez7QnyyIhFeeWUs8MQX5eocgVwcXphAc1Rk41+wqxuP5jeVYmo+NbgpSrJIK0yB7muuRtKWG4LYKFoYUp9PxJ8Snrmm1ArY1HTWVcR9w= 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=u27SxD+4; arc=fail smtp.client-ip=40.107.92.65 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="u27SxD+4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LZUBrRk0RNen07bIvLelVwEDHImxxs9tWU9GIdsnhrPV/R4hMxu3b82aIEecMAghIbQjsxC7MBpYVORL2kXSYnc/ZwkyjGDGpixSBZXUk9sUSLL8q/SDnL8cB8PjfiVHVfhmxuS5wybFSPYF3oSE2oFA/qmNvRGysxmdb21Kpxr4PB2gR+HbzSibFWOaQBAPOh9P4JtwIj7kCK+orhGAFCRvrA5J0orNCAKKcdHMO13O7hnoypNOzGnnVqZpBmLlVcg6mudradCRdj3Uz6gxOhkF00dK5vDiAmNxLxOWlVbtytA0CRxom48b9mxKoVVfzZeYrv9vKQTXwuFMv5RM5A== 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=NAS8Zat9fB6MOirWPE42JG2oLf7lRRsGgYfbvQaF2YU=; b=kcxcQ3NNMZ+C2UmZU9sGZ95bxOEtNvveUPdl+RZlaXAXUn5D9/YwO78dP5gJw+0nWV+udb4ScUa9Hk3snk/3QfYxqJVINB3b0MxgmaWjK65+tRZLVhfuHIYE4beRplQlYIJ399bCNGhe/vrPjzfMpANMafZ74jJZ/R7UC8M7yWoPMHp+QfITPmDN9bkr/RiTCC2o40qvLyxZ3hYCXuuwg900hmAzjNCwIPopCEoEchy/1ZXS61J2ZODesoHH/GU9cSIhFVqlwEtE3x/HQwOHqEZCmPOQd40maqPHpPCPUj2UUBrkqtzXrvy8Q/ugQ5MMh1+RLZlcfIEMunx/Mk0sxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=NAS8Zat9fB6MOirWPE42JG2oLf7lRRsGgYfbvQaF2YU=; b=u27SxD+4zjJjsNu/3Y+l2UAvVqPb1buNt8Wot0yyRpQTXCQOW9jfFSwAnoEm4sl48fk6DxPaCkS9G64IrTPoSMUP/ytd5RQy4NaFk9mkICkcmlHc3mqKURm36PaBlK6B1wy4j0PcG/SRZ4D1OlmPa/Yt220MXwMXp1i2Hv9xey0= Received: from BL1PR13CA0391.namprd13.prod.outlook.com (2603:10b6:208:2c2::6) by CYXPR12MB9337.namprd12.prod.outlook.com (2603:10b6:930:d8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8813.31; Tue, 10 Jun 2025 18:03:13 +0000 Received: from BL02EPF0002992A.namprd02.prod.outlook.com (2603:10b6:208:2c2:cafe::cb) by BL1PR13CA0391.outlook.office365.com (2603:10b6:208:2c2::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.18 via Frontend Transport; Tue, 10 Jun 2025 18:03:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:03:12 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:03:04 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 23/37] x86/apic: Initialize APIC ID for Secure AVIC Date: Tue, 10 Jun 2025 23:24:10 +0530 Message-ID: <20250610175424.209796-24-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|CYXPR12MB9337:EE_ X-MS-Office365-Filtering-Correlation-Id: cc7e6275-b066-421a-b312-08dda8491100 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZrM7WQelCiObwLYzTMm8yubB7vPRNSIhj5wqSAVFP2+igJ7Ek4hV7r/R8Awp?= =?us-ascii?Q?LKwH5Qys0qmFzo4KqR66hbeDhYVIVQau8hM5T0OGs5z/Ab/5q8usNZi7Yala?= =?us-ascii?Q?jPLSKzW2c+hcwtO3olL7ojepfMNw/FJs8xuJ+5m69DhmBdaHeQIf6DJlmCdw?= =?us-ascii?Q?XMF6M/2vOJ+XRpKpbHbzd95/d6YOk48VZ9gm9yXDIt4+Zvz8wyggQ4YwokyU?= =?us-ascii?Q?Izjtl5RI4Tmnje/tklESDwe/gZE6hk+XdltHYJ37L/AdrAxEV0pGLR0YpO4N?= =?us-ascii?Q?uNfUtKO6OlQBs32zla5w7Jsb5u1xKrUmW3bQyMHRfyWxLNfVooo8cJylenR4?= =?us-ascii?Q?ftRtgXb7cHx7RdVVNvcgjMWzTu6XhqRsCVUbIa7VXAfvS+HOrggVw96Etb7k?= =?us-ascii?Q?UpfNsuJ4NjVXNc4C5yGaEfRs/BaJpi3v4RY8o3UMggu0f0+43b//fFFgbtVX?= =?us-ascii?Q?Iuiud3p/v3ZikpTGWTOu4Q2X5yNCpmocmtIlFjDgHukINsaQYSP0h/XoSemg?= =?us-ascii?Q?AJWrFx1DRmbIqJSfxut8bvxH6+a8QhC5grmv+XL71iUZ1VXSD9sfz9WbbOHY?= =?us-ascii?Q?AufLFJG/D5lKfIy6UM5qLPVfm4qfsGI4/Ey9q5xXrycM93o3UkoTzT2CMmTd?= =?us-ascii?Q?doiHlPprNjnni+DfywDX0juLDkfc7QCCTmjeI888qeL/tvR/rh9p1Oy4vKBo?= =?us-ascii?Q?UANdqtU9KVILMo7KKMWh4En85i1tePlUXjzRbrx8V4C7UMCf0DMRFmXjDcev?= =?us-ascii?Q?ZBq6dN6K66W+m7F4GKoZRW8oxYvIAbBo7bbvx1q8wqDoEpxSAuFaxdUp7XV8?= =?us-ascii?Q?uP4PG0U4JNEwkVN92gOPa+jv9qlnLyLLk2KL93T2f5Uu4AtJIk1d27hjE1M4?= =?us-ascii?Q?ras/cUmKVKLSXaf3oo6xKjd5Bitgkp0VKuVlpzR+ngC7eVb1G3WRiUzGRCoZ?= =?us-ascii?Q?T3PkihEXw6m7RM2IxzH32y8kglfICAkwiA7CYpU3dxrWh6/AhZ0HxvfjEpIh?= =?us-ascii?Q?k5R37939fOGCaTpv/ZpiZRoJchLgIqeD3hNnsDVG6ddN3UlqTQtKyf+ybrVf?= =?us-ascii?Q?SxL1hsc35qLmYO+3I5GvKD38/25taBYHwLOzAUCHIX9MLlDggan78FWvYLVf?= =?us-ascii?Q?gJxEJCYeWj2y0iRyCHY6BhiXsBijv4mIVWd/2DsqON6nGOaUTBJ1kysndjKv?= =?us-ascii?Q?pcRlxKXpTWO6CoBbGKLDHwEVpoPh4hSn3LJFYz4vf+h7+D4L6EimBklWB91j?= =?us-ascii?Q?4AhQeblI5qLD5bJmqN0AN0mPrtyxBn675GRsRdjxqfJW9G5guGoazNy9yJ4e?= =?us-ascii?Q?Czfo2RaIdmNpVCcQpp68o1/ieWXMBp9w2JmRodZ8cTmxTGkULtl7Mu+a5KOT?= =?us-ascii?Q?3uBHO1HMIvM74SRmmLjlWDQZwdeGxRY48AbxyetiuC918c9fkqeEzFf6wJmD?= =?us-ascii?Q?228q2o+rv66voLQLNlHFHAiMJ/2zDCIYL77WhdzWokGxmhzEoN5OzNiEpIR8?= =?us-ascii?Q?lbFAIPFbGOjj8E87hLVqBoWha+jLYO8xvwdY?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:03:12.7367 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cc7e6275-b066-421a-b312-08dda8491100 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9337 Content-Type: text/plain; charset="utf-8" Initialize the APIC ID in the Secure AVIC APIC backing page with the APIC_ID msr value read from Hypervisor. CPU topology evaluation later during boot would catch and report any duplicate APIC ID for two CPUs. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/kernel/apic/x2apic_savic.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 186e69a5e169..618643e7242f 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -131,6 +131,18 @@ static void savic_write(u32 reg, u32 data) } } =20 +static void init_apic_page(struct apic_page *ap) +{ + u32 apic_id; + + /* + * Before Secure AVIC is enabled, APIC msr reads are intercepted. + * APIC_ID msr read returns the value from the Hypervisor. + */ + apic_id =3D native_apic_msr_read(APIC_ID); + apic_set_reg(ap, APIC_ID, apic_id); +} + static void savic_setup(void) { void *backing_page; @@ -138,6 +150,7 @@ static void savic_setup(void) unsigned long gpa; =20 backing_page =3D this_cpu_ptr(apic_page); + init_apic_page(backing_page); gpa =3D __pa(backing_page); =20 /* --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2068.outbound.protection.outlook.com [40.107.236.68]) (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 8D7942367CC; Tue, 10 Jun 2025 18:03:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578623; cv=fail; b=RPOZXAwBEDkjE+EyZW79vutkr+Y691LyM9TgoURFUWBWU+VWLKMSOzUntvtWihgxJB7hDmttA8RKtqV3NPkaXMK3Sh9pESsMv4UPIcmK9sW1OCOrtTiyrsA7/W19DRo2xm9azqj2IDCDrtFzpDzbeI6i16pSvkTJ3IyVhwIM9HA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578623; c=relaxed/simple; bh=5rXOctdqo7RuccW6hFtOlQERvrZm7LZ9/XyV5rhYDb4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mGYDiQsDAfVz+kRYoKQriC9ScOEhNweLryjX7iqk1qFa8oOnxj/MTpBKIuVrDAAt7CH8VjFdOoXjgF/ejMqVU8dTCjQdpd8bQlfpNV72kMGcilcdx2hOPLv6LWkt8RrKB6o47oX8G6FXetR/mZTA4uJqJR2OgkYsHTDgws0uSxw= 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=E3e+8SXU; arc=fail smtp.client-ip=40.107.236.68 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="E3e+8SXU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SMXB13VQJ1KGlgK7avDYWgSUXCj+DHZhHQDcuym9goCPVRranQkqvgok3BFS80M7T4Au8Di2oiySMcy/SEShDJS8wS7DqPtmzO1tkTlJMPsnTelRN9TBM8TaRz1/E+LJFXqp0Zvxtdl4A+k4Mh/6EnhSW4AF5uwtmijILsBg83nVjYfWHrnZ9+AE5WSb8PBLtfI7/QFq8lw3ZPNB5acFq0+f9u0IxT7yqMTsjWWYGSyoA9wxNp8lCT6cPH9SmQJRasRuUYTlczymVKRoqEZhJjejKRU0fmxL9SbCfutzGkLyiXjbHiG53C+/t+YH4tOj4ZHHLafPwSPZKXq4TvGVXQ== 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=ZcbF95X7ZNbzzfxqi2bMMwIogbp/xQ3tBom6GXKP/MM=; b=dJsHtGQtrqy0xBWTF0jBrlfErdm6/YM+3DLm2ApDDxObSXphKQWkCbgG3i8wp4IlSWZti60093YAaBJO5/NPJXw6Eg9AaGvPynW41m7lCeq3s2QUOGnw/9ro4y3J22yFaO8NHxa32CQjtEqaGt8RFszA2Xlhsno36xto7XAQBO2jLvI6FfTCqLU+C/NwY8mm59ITZ6iqtCmFG/yv2TFRN6OuoCY6Bsg9fd5JjjF2owA5za0xwKKNsg0dyR/R95RaxmcxT5wzgaDvs4965/Dsk6bMHzalohS/chkJtw/xJ5AHR5nD1fP9wuyRRSNsL/VVOZup5t/eP4FdkSrtqVqTSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=ZcbF95X7ZNbzzfxqi2bMMwIogbp/xQ3tBom6GXKP/MM=; b=E3e+8SXUlmXv8PifP95+8RdALRaURcEA13X6CeKTAzW5G8DC3z19WywVjA7epNMeATH8lhM6HbdM/1ekwW/u6kwhE2rOwfiwTvTZpHMrGimtdyj/rQkMlHQ9kCanoazXTaX/XYlGf8whIHDPEqbAxV+e6jdbk12kkE/Z36d3lKA= Received: from MN2PR19CA0069.namprd19.prod.outlook.com (2603:10b6:208:19b::46) by PH8PR12MB7447.namprd12.prod.outlook.com (2603:10b6:510:215::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.39; Tue, 10 Jun 2025 18:03:35 +0000 Received: from BL02EPF0002992D.namprd02.prod.outlook.com (2603:10b6:208:19b:cafe::78) by MN2PR19CA0069.outlook.office365.com (2603:10b6:208:19b::46) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.24 via Frontend Transport; Tue, 10 Jun 2025 18:03:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:03:35 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:03:26 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 24/37] x86/apic: Add update_vector() callback for apic drivers Date: Tue, 10 Jun 2025 23:24:11 +0530 Message-ID: <20250610175424.209796-25-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|PH8PR12MB7447:EE_ X-MS-Office365-Filtering-Correlation-Id: e6fe3adb-0531-4839-e676-08dda8491ea2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?X8UnWrJLufnYGHhra1WocaaMIEHGZ0PfC1lWm0QeEZbJyPQd2pw8c2MELn3U?= =?us-ascii?Q?Mzqk4ebEU3teu6LZJtSbjfIxduzlI8/zd1kl2DVsjMrkTJMf/a9CMpxvF66b?= =?us-ascii?Q?JJ0mwHYpKNJhP3I5EKMHW5YpUUeX2tYnIARdsmGsURe+1GBaaGMD+TFtVsYQ?= =?us-ascii?Q?Oly6i5UHS/aduKosIfbhaDxA/acw9PndozPce83gGe2Xr2HJL3WG/hOGZ+8Y?= =?us-ascii?Q?P/wTMyfLJ1LlsvTB7TH2s8WLv+75gxSi7UomW0Z9QiPyf5qPgv/izge4SRFr?= =?us-ascii?Q?iUPSg6jRIc4M5jdnhFVqAlXp696XbKgzxpPZ+qQeWtGQq4+KgMmeVF4/Ym4J?= =?us-ascii?Q?Iyj0jq8R9zD8gI8hbWQBC8QhA1FkUb7F6Q0ZHQb8q6UsvsJcrm4lP7IhHX/J?= =?us-ascii?Q?VsjIkZiiWFYFADbPLMcv5arN7zZiF6DmF6qIfGAI4P9Qr2t5EOYhJcMKccW4?= =?us-ascii?Q?nuzXypy50ccT4izL9bwaYeAw0vHmrPQrcBjB0KB/oWVeFKt0bInpyh/LvEq3?= =?us-ascii?Q?pZGcG44xonPSpZzX1ScBcWZJ+1Y+wIQRtBI2igmolgb1D+sjmSa7kqLFWOZj?= =?us-ascii?Q?PUE/yFXeklgYSpr0mz4Dw+V5d4FWILNkia3LYeAukqCX/HW1sSCf3ZaWnExn?= =?us-ascii?Q?jORLhO1To+mUZQCn+r1kE6AOfeyVne+T++7NXzHImxjMjcQlekB5ogfEOrGU?= =?us-ascii?Q?KnaDKTct/lD0NxyR+rrHrfwRQ0fdKEgURNnU2fQnLhpeMkJMtbUXAvIJKv7e?= =?us-ascii?Q?5tZ+SurhEsITX36wIjq6fv/8UfI8mPM4px5R5r8F8BXWbJk8hBZsaimFhEzB?= =?us-ascii?Q?0b1IsGfcYAZwndMnYXfokb9Zw28YVpL/esWm3h5CA4UpVAyB1dSXIMMCuK9p?= =?us-ascii?Q?do9iF/T4qfDj9/QYJrOwp5v7X5jUFv3AiYc8y4djHR5TJ1aDr8Q3926J9BCF?= =?us-ascii?Q?W3udiI5VsINAbdpSjQ3iMMH6VfojaxkwOuy+DhWH0vx7ftFEVvtFHs0C86cK?= =?us-ascii?Q?VVJ6YBAgIEV+Q+p8zAV3KAahcnIpc125xja7T3z/ZICYSG1drWT82ozG9TTa?= =?us-ascii?Q?ekP4tfvtIOtGcv5F8R6/aD+Jwr4JXls5dE51ZCOTk3w0IQKOgw9Od7tfGt/k?= =?us-ascii?Q?diXdlrMfviL2+Mw4UtFJCIBrsmFY2HHQbxCpxwEbU6F2EofzyIb4S4H4zEPb?= =?us-ascii?Q?nBrz4+NR8atDnNQEcWt0RKiLSzHI5qFOw0+zDuxlQr4YDVVpL66LnwJDK0tY?= =?us-ascii?Q?/wNrQAizItACgqBjyTELUnaVor8VKy96H/1uawaXLGvULoAF0mkuZhsHNwfr?= =?us-ascii?Q?fXxfg2dgmGQTgA3HDAV6ArOawwaoE5WL1iuvQeu2hCqLCtZUoVmvMJyDtgML?= =?us-ascii?Q?nwsxQbTxJfLU9jrmXfLlsgYITXPdbby7aFpifqlfoWvcRyNR0PL3hushayG1?= =?us-ascii?Q?Z7t+R+cObm7W5cAYPmmSJLam+LcBhQklUDLpLuCI7j7XNaIry5okSWzDwzqp?= =?us-ascii?Q?uCLvN3JfixrI6QbQ0HqVeanXXhHDkE/lWH8n?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:03:35.5990 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e6fe3adb-0531-4839-e676-08dda8491ea2 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7447 Content-Type: text/plain; charset="utf-8" Add an update_vector() callback to allow apic drivers to perform driver specific operations on external vector allocation/teardown on a CPU. This callback will be used in subsequent commits by Secure AVIC apic driver to configure the vectors which a guest vCPU allows the hypervisor to send to it. As system vectors have fixed vector assignments and are not dynamically allocated, add apic_update_vector() public api to facilitate update_vector() callback invocation for them. This will be used for Secure AVIC enabled guests to allow the hypervisor to inject system vectors which are emulated by the hypervisor such as APIC timer vector and HYPERVISOR_CALLBACK_VECTOR. While at it, cleanup line break in apic_update_irq_cfg(). Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/include/asm/apic.h | 9 +++++++++ arch/x86/kernel/apic/vector.c | 29 ++++++++++++++++++----------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 184cae6e786b..9c74d1faf3e0 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -318,6 +318,8 @@ struct apic { /* wakeup secondary CPU using 64-bit wakeup point */ int (*wakeup_secondary_cpu_64)(u32 apicid, unsigned long start_eip, unsig= ned int cpu); =20 + void (*update_vector)(unsigned int cpu, unsigned int vector, bool set); + char *name; }; =20 @@ -471,6 +473,12 @@ static __always_inline bool apic_id_valid(u32 apic_id) return apic_id <=3D apic->max_apic_id; } =20 +static __always_inline void apic_update_vector(unsigned int cpu, unsigned = int vector, bool set) +{ + if (apic->update_vector) + apic->update_vector(cpu, vector, set); +} + #else /* CONFIG_X86_LOCAL_APIC */ =20 static inline u32 apic_read(u32 reg) { return 0; } @@ -482,6 +490,7 @@ static inline void apic_wait_icr_idle(void) { } static inline u32 safe_apic_wait_icr_idle(void) { return 0; } static inline void apic_native_eoi(void) { WARN_ON_ONCE(1); } static inline void apic_setup_apic_calls(void) { } +static inline void apic_update_vector(unsigned int cpu, unsigned int vecto= r, bool set) { } =20 #define apic_update_callback(_callback, _fn) do { } while (0) =20 diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index a947b46a8b64..655eeb808ebc 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c @@ -134,13 +134,21 @@ static void apic_update_irq_cfg(struct irq_data *irqd= , unsigned int vector, =20 apicd->hw_irq_cfg.vector =3D vector; apicd->hw_irq_cfg.dest_apicid =3D apic->calc_dest_apicid(cpu); + + apic_update_vector(cpu, vector, true); + irq_data_update_effective_affinity(irqd, cpumask_of(cpu)); - trace_vector_config(irqd->irq, vector, cpu, - apicd->hw_irq_cfg.dest_apicid); + trace_vector_config(irqd->irq, vector, cpu, apicd->hw_irq_cfg.dest_apicid= ); } =20 -static void apic_update_vector(struct irq_data *irqd, unsigned int newvec, - unsigned int newcpu) +static void apic_free_vector(unsigned int cpu, unsigned int vector, bool m= anaged) +{ + apic_update_vector(cpu, vector, false); + irq_matrix_free(vector_matrix, cpu, vector, managed); +} + +static void apic_chipd_update_vector(struct irq_data *irqd, unsigned int n= ewvec, + unsigned int newcpu) { struct apic_chip_data *apicd =3D apic_chip_data(irqd); struct irq_desc *desc =3D irq_data_to_desc(irqd); @@ -174,8 +182,7 @@ static void apic_update_vector(struct irq_data *irqd, u= nsigned int newvec, apicd->prev_cpu =3D apicd->cpu; WARN_ON_ONCE(apicd->cpu =3D=3D newcpu); } else { - irq_matrix_free(vector_matrix, apicd->cpu, apicd->vector, - managed); + apic_free_vector(apicd->cpu, apicd->vector, managed); } =20 setnew: @@ -261,7 +268,7 @@ assign_vector_locked(struct irq_data *irqd, const struc= t cpumask *dest) trace_vector_alloc(irqd->irq, vector, resvd, vector); if (vector < 0) return vector; - apic_update_vector(irqd, vector, cpu); + apic_chipd_update_vector(irqd, vector, cpu); =20 return 0; } @@ -337,7 +344,7 @@ assign_managed_vector(struct irq_data *irqd, const stru= ct cpumask *dest) trace_vector_alloc_managed(irqd->irq, vector, vector); if (vector < 0) return vector; - apic_update_vector(irqd, vector, cpu); + apic_chipd_update_vector(irqd, vector, cpu); =20 return 0; } @@ -357,7 +364,7 @@ static void clear_irq_vector(struct irq_data *irqd) apicd->prev_cpu); =20 per_cpu(vector_irq, apicd->cpu)[vector] =3D VECTOR_SHUTDOWN; - irq_matrix_free(vector_matrix, apicd->cpu, vector, managed); + apic_free_vector(apicd->cpu, vector, managed); apicd->vector =3D 0; =20 /* Clean up move in progress */ @@ -366,7 +373,7 @@ static void clear_irq_vector(struct irq_data *irqd) return; =20 per_cpu(vector_irq, apicd->prev_cpu)[vector] =3D VECTOR_SHUTDOWN; - irq_matrix_free(vector_matrix, apicd->prev_cpu, vector, managed); + apic_free_vector(apicd->prev_cpu, vector, managed); apicd->prev_vector =3D 0; apicd->move_in_progress =3D 0; hlist_del_init(&apicd->clist); @@ -905,7 +912,7 @@ static void free_moved_vector(struct apic_chip_data *ap= icd) * affinity mask comes online. */ trace_vector_free_moved(apicd->irq, cpu, vector, managed); - irq_matrix_free(vector_matrix, cpu, vector, managed); + apic_free_vector(cpu, vector, managed); per_cpu(vector_irq, cpu)[vector] =3D VECTOR_UNUSED; hlist_del_init(&apicd->clist); apicd->prev_vector =3D 0; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2068.outbound.protection.outlook.com [40.107.223.68]) (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 4380F24502D; Tue, 10 Jun 2025 18:03:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578640; cv=fail; b=LF2v0MIJ1b97zBoDlIHSU6Q+AhYlZ1qMVBl4sQSWiPLyG7P9aw5zQXT6pmhZhP1RexYgA0S/geG3G8ZArhPIjF80zOtyMX1zK1SE6dAT7HQYdRt+5M31Ns8biACYHsXwHH3FdXR3yRu5daOn/LbEaEIDuqesfHBYUWUEpP7wWfs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578640; c=relaxed/simple; bh=fb+aveKrE6saBIPmbYl4XGc2ta5Js6z9cMiwtlxs1fY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HhxPHVSAm3k1MZYIBwuofQRRe5UKadP6DR7O0f+VfmRkjxPENiqosou3XGaYMeUREnTgXh3cPzySGZDWnyJuHM9VDLkC/nzYa6lp2jdfKqSgDVv3UBxWcMDIQtHvZgz1Pq2Ygg/FC5oj7ZAc2qzw6scqQe7uJEoRpcIOXNAJmwA= 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=nqUvMan4; arc=fail smtp.client-ip=40.107.223.68 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="nqUvMan4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yGJiJFndvRdxbT1Csa0xqJV5WjxjQwINmkivu7szDhTir6fUNb+CJ00HHlawSrfVksuZI19OtYm/yUyHU0Hbm3xEfnKToPtIifJ62RCrorxxBq0LD1eRXDkRfO5ZU/q8xpkh3Xz3XPRRQ4Zq1rKluWzoYX6ROE4wgzk3BU6m1PTYTkqcBQKEZ2NKoAbJZjsB2xvZodiuYNDbkP37fzz/zB+HeT91KuQ36eD1ERj39WK3tD0X05unlAtQ3GXJM5enLYrz8MBdZ8jbPbpqSolkZ/5oS1fjHH6sS3qVcU9cQlbCm+CYPWd/VSfhJbJX/m0ADHZ90EaKhS81stdUd9b/PQ== 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=3KV788CsukQ9Mw+BHiK7OeTrN8oEx1LVo0iMkWQA/0M=; b=bUZx1CsOfCuhqpoC1OJJPH795+olQlRZu5BwcEEKf/6//gvE6ib9zXtCsZ57JjAlVcrDIXpwU42CRK9LHGuWHHL3GaFL9IlU5/sEytmr/R1zOXC24mP4cdEcU9NPRCyKZ4bl2ArW8J8xaFDzts8utHq8/3doIh7h1ZTRADMlbTNY+lHujRjTLxdKxWur/N14LG78p+6nKcE47QrnIo+tbXyE/NWTwUDSMehcbNeQPFhjg2nQM8mazYDbal360S3FLVNu73ztFDegA8rks02bVsH6/uZltMyA77zUxxq+ZAh7/DOhWw7HssfKlaXvC6O+pfdd77uKN1CQ9pkCZ5E+kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=3KV788CsukQ9Mw+BHiK7OeTrN8oEx1LVo0iMkWQA/0M=; b=nqUvMan4psz2OQRDq/w57wNxBE7FJ5qQ5Xzit2V/ETTXOwNXbFAD1shMLvVjgwbxfjlzvvKFxUZgEWXt02paIYbovLIXTXN9x8nqpeEJGfv+843QWfe8BJ+RKz+jTIMyhhxBkaSUdpAVSXYFWk5sQAchLQpSehjR/WmRBH9vWuI= Received: from BL1PR13CA0419.namprd13.prod.outlook.com (2603:10b6:208:2c2::34) by SA3PR12MB8764.namprd12.prod.outlook.com (2603:10b6:806:317::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Tue, 10 Jun 2025 18:03:56 +0000 Received: from BL02EPF0002992A.namprd02.prod.outlook.com (2603:10b6:208:2c2:cafe::6c) by BL1PR13CA0419.outlook.office365.com (2603:10b6:208:2c2::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.16 via Frontend Transport; Tue, 10 Jun 2025 18:03:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:03:56 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:03:48 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 25/37] x86/apic: Add update_vector() callback for Secure AVIC Date: Tue, 10 Jun 2025 23:24:12 +0530 Message-ID: <20250610175424.209796-26-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|SA3PR12MB8764:EE_ X-MS-Office365-Filtering-Correlation-Id: 503c9146-f849-446b-c016-08dda8492af7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ehJIsNGT3V/+7qj15P8yBuzX8/mFR/2Yliw13LvrGoqKbQAYakt+s3oZnMWa?= =?us-ascii?Q?5RT27YXNwhP6P22yeYPoKtQmS4U3K876v5cufjPE51TYLkTECIp6BTNZfe8E?= =?us-ascii?Q?QZLDRmGjjchAgyC5TvYjPn4PzA/YXYtjTgZENcdBvxtfLnECfv0TKR+klLot?= =?us-ascii?Q?r6NAyHjBtEsCDO4cPDlgjufbi/fdk8Nd/QOPjPTDQbyjy5Dfs3sjJE8vrPcT?= =?us-ascii?Q?FH/muQMftkFzTH6wAX9asmdH363fH3kyoY4hk340bDA2qiiYs7czCzQ8bJof?= =?us-ascii?Q?O9PhY3Xj5iKC/l+3KB4WA8nZzTCW3aWSdkti5uRu8D3q/DfcEWA+XvVxiwyB?= =?us-ascii?Q?4uKTeLDZPTKEXZfIh4KDj6tYe98hTaIq/vUhKcS28cw/e6jBx6LtAmLw5g0z?= =?us-ascii?Q?Pi4yzexvjTDw+pVnBbPK0LOU1Hf9NmHCNUQrXKIjY/bTstFUWfZqJqeBWGUq?= =?us-ascii?Q?qCEsSwB9nlWUDb0fQTDXCoCb0nY2AyIO75Me4llJTzr+eSKzQ0RoX3BZxgVy?= =?us-ascii?Q?kF62rom8IKSC6poGFoxtPEaPtLln6MsgBLh077oBmlj17VdwpUEHiIFOCPqS?= =?us-ascii?Q?yYdyOtIsAnlBz8a8GuJPgtC/8ANlpXlBF7mBZ8SYMWEERs0qjNpS58JmDVWq?= =?us-ascii?Q?h38ua/JQt+bTRpxuxK4rt7o/JK0j+T7VBBwMHGhDBY7QSwLVtCAKmk4KpAUK?= =?us-ascii?Q?ayOVkY7/jrQptuiUXeIoKjVzBFW1yzaznwCyrkeIkKT4VeVYdjv/tUWUO+vb?= =?us-ascii?Q?s6dXqHX7kAqhwivJVkKic7qvdsog6LrbtMHxzXeJatwoAsGoV8aEb6l+xprW?= =?us-ascii?Q?6Qi3AJ4xhwbzsNxTotvZaaayddAy6Dxl54GeW1EpAgC7NAnbL6JkG+QsV1Qy?= =?us-ascii?Q?ExklkeenVvsYZpWLPj61iJvEXYUuuFpSgO6YXCcYm2cYD7J4L9R4EW/swcE7?= =?us-ascii?Q?vAgzu1q0661o6tEol8vDEnZuZ+NjfDC2rhnlbUVpoDVoownYLBqJ8giO08E6?= =?us-ascii?Q?9VXRD0zp/67tuVvExbCAxSMzl1oZZ7ymZRvk1U6zl6+ZOQDmRUwJdHlBCSXI?= =?us-ascii?Q?QtrGthtji4+yzW+j8R62RYf9dw/r3RivJKcUemG1WMGw9qo0HX/5KXJRYExT?= =?us-ascii?Q?HUnb0TEX0dYuz+iLlhjU+9WkNuSr+jASVKfWOSM/7h8lrir4a2dxrIuNK/kT?= =?us-ascii?Q?k4D/fILoOd/xClitEfTZCy8dmOsdZxltFz/27Oy9TBTZ+wEjF5qfdeK86aEP?= =?us-ascii?Q?NtOsXtZTH2ayVCPJwC9iza0vox25+nWqsnCYjLQifDgnygVQ/f3jCoj6GMg5?= =?us-ascii?Q?EOve8lJxsa5Sskm0KjQa+IpMPtIfsZxyr4Cy+Q4bDOlh3u7t1CqtqlH1ScUI?= =?us-ascii?Q?yOCQqiEJybBZNFRgQ9KdNp1zWyyBv29qpO764gcwg71+Pf8DLEuKWPK4RVVt?= =?us-ascii?Q?FBnu+MId+WdEBGuGhPXbBY4y4HR3eg0LRwTADlWEAKGVbhFqWK5YihBhkwAU?= =?us-ascii?Q?tJbSW1J2gLgovmXPCHijqKFjg7a9mC2sKcqW?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:03:56.2995 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 503c9146-f849-446b-c016-08dda8492af7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8764 Content-Type: text/plain; charset="utf-8" Add update_vector() callback to set/clear ALLOWED_IRR field in a vCPU's APIC backing page for vectors which are emulated by the hypervisor. The ALLOWED_IRR field indicates the interrupt vectors which the guest allows the hypervisor to inject (typically for emulated devices). Interrupt vectors used exclusively by the guest itself and the vectors which are not emulated by the hypervisor, such as IPI vectors, should not be set by the guest in the ALLOWED_IRR fields. As clearing/setting state of a vector will also be used in subsequent commits for other APIC regs (such as APIC_IRR update for sending IPI), add a common update_vector() in Secure AVIC driver. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/kernel/apic/x2apic_savic.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 618643e7242f..2e6b62041968 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -23,6 +23,24 @@ static int savic_acpi_madt_oem_check(char *oem_id, char = *oem_table_id) return x2apic_enabled() && cc_platform_has(CC_ATTR_SNP_SECURE_AVIC); } =20 +static inline void *get_reg_bitmap(unsigned int cpu, unsigned int offset) +{ + struct apic_page *ap =3D per_cpu_ptr(apic_page, cpu); + + return &ap->bytes[offset]; +} + +static inline void update_vector(unsigned int cpu, unsigned int offset, + unsigned int vector, bool set) +{ + void *bitmap =3D get_reg_bitmap(cpu, offset); + + if (set) + apic_set_vector(vector, bitmap); + else + apic_clear_vector(vector, bitmap); +} + #define SAVIC_ALLOWED_IRR 0x204 =20 static u32 savic_read(u32 reg) @@ -131,6 +149,11 @@ static void savic_write(u32 reg, u32 data) } } =20 +static void savic_update_vector(unsigned int cpu, unsigned int vector, boo= l set) +{ + update_vector(cpu, SAVIC_ALLOWED_IRR, vector, set); +} + static void init_apic_page(struct apic_page *ap) { u32 apic_id; @@ -212,6 +235,8 @@ static struct apic apic_x2apic_savic __ro_after_init = =3D { .eoi =3D native_apic_msr_eoi, .icr_read =3D native_x2apic_icr_read, .icr_write =3D native_x2apic_icr_write, + + .update_vector =3D savic_update_vector, }; =20 apic_driver(apic_x2apic_savic); --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2069.outbound.protection.outlook.com [40.107.220.69]) (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 55222236424; Tue, 10 Jun 2025 18:04:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578663; cv=fail; b=e0kyiCSm/arlLgocNRg+7Cabl6tvWmnJrxx4pCY0Il9TUZmZRoLJJpJytr9henm2/V7dQAz8SGhG2ThWM0N4ez+QScbJeUe25cKr8uBaQxFyqEhbqwiXOSSMvHJaSV8I9Z048bLvL49VxGIFRf2lceV/vDRCDivxz7ZCRUyRw2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578663; c=relaxed/simple; bh=yKMix7aywR4hX2CaF1SWzDI+KPC46+G61eQpJu4rBfY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YVKRzU+2NPa6uljDT6tHYs6pTLR+n2O/fuCdM3QG7yA0gVVoHc9LiSw/wCJkyzudPuZkZXjSmP68wma0rtyvSMPy4i5g9cnIi6lIo81tVhZn829GLHOb9BHyKMr4/BZHFL2vLARU+ta9Mt3npvJtIG/MDJCmvJZD0tzHgoXDEqk= 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=ZcTBK9CF; arc=fail smtp.client-ip=40.107.220.69 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="ZcTBK9CF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=v/sshBHOffw/DqSFLqg8DNpV/+CqaptBMYzc+nvQPn5fAL0D6RAcl9wn9CMUT+NPN5QzZjU7fiLR4DND0aQOSAklxsTbjRlCBWyeQJHrfq12gNCn/zqCpFk6X+4C4RRjX9ZGyPZ78HLQaQUIashkTbTZQSI+lvG89bD1ae0x5f7r/zlR2mXxp9WoPFs21vztElW4bXn4K9mpS1HIecPwf5R5Op0nyvje9ByMo04BnNc7uzQWTwcKiSZ4CnJ/Apl2TOBI7p9i5ZeYpEnU+CQoPgp83X0GvbKSYrsPNuKvV4IzSciAlM8ySWi14Cz/gSaqVrOKc8cDa/+oplkYf1P6mw== 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=NztJ+riTVyQZH2Az6e5ge0RNYtl4uELU1nmwpciw1Rs=; b=zWp63GO9O8SzIygDNlhmLf9O+qw1cIqKMj+tGlONEdm2gbgQmrs0z4etg+/gweAteOoT74nfBXRokLi3jvwenUON7rWwggHEMK8W3nVzhQ15q6kuhVkSXnMBZbsPbQ2C8oEVMvPHmHnhyZkTvKStNNf//0r/IL4rGRnjYrXg+k6UroIp8HSREAsx+CWBrUMVIO7/vKBXzgV8GGys5W9y+TGI5IeH/5OE+PadexOA2ZtSwUdENandXeTUCFl9Z8QX0wJ8YilIhnneR79o9dW6cUg20ygPgDCoE9plXZO3MgueDwjTKrUPk2eagIZW4Mrok2CAomxTWxRP4zfxnrM+Qw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=NztJ+riTVyQZH2Az6e5ge0RNYtl4uELU1nmwpciw1Rs=; b=ZcTBK9CFsOd4o4KBhDxzXeA3gwoRxolK2PYN9RQGZuFXDyC5Y0wPiqEKi+kpOKnWJxCXAL0jGbLBYcfBhpucUS2Qahc3mun/Z2ai1Ges7cP5UEpq0lIFeKZpCfqgGTpxbewYLDgSKL96BrQDSjJ5eeE/pG9Yo4c9+nNuleB21oM= Received: from BL1PR13CA0195.namprd13.prod.outlook.com (2603:10b6:208:2be::20) by DM4PR12MB8522.namprd12.prod.outlook.com (2603:10b6:8:18f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:04:18 +0000 Received: from BL02EPF0002992E.namprd02.prod.outlook.com (2603:10b6:208:2be:cafe::bb) by BL1PR13CA0195.outlook.office365.com (2603:10b6:208:2be::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.17 via Frontend Transport; Tue, 10 Jun 2025 18:04:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:04:18 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:04:09 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 26/37] x86/apic: Add support to send IPI for Secure AVIC Date: Tue, 10 Jun 2025 23:24:13 +0530 Message-ID: <20250610175424.209796-27-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|DM4PR12MB8522:EE_ X-MS-Office365-Filtering-Correlation-Id: f23d6305-4104-4641-ac99-08dda84937e8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|7416014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?R2UoxrDCRcpfq52zFxxXMUTdlLrASVYn9zag+IubW2EqSucCd2Wr4dZ9x9ay?= =?us-ascii?Q?aS3v89xuDW5WNvrJjNnH0FemODAivLkW/T3zHxQjMMLW+RR2TKzEd2OHjS2Q?= =?us-ascii?Q?ix4tJUiMEF8H/5KC+FP0EV1HbWkKog6FJuBsustCMZdJuAOT7DbOlkQYyXhP?= =?us-ascii?Q?OMWi6sIJyGF/j1d1kFMBejIvQf6QQ/gaijRcq0nb4gyvtdB5uvrnIEYkgQuP?= =?us-ascii?Q?FVL9ZR89Xy33euEOnC7wgX7uDN7zqBBJVsFAI52poTBmYQbKRBsYgUJ1RUZS?= =?us-ascii?Q?D8i2huqu3Widc+m5ea00/nHe3uX5ZxMHdqzuOU398LrK5kttlMfSb1d8dHKm?= =?us-ascii?Q?Fd0ayVR7+886BYexB+qA05hfdoqodneHvzqUYVfIQCqraXRFGwWH4yev8LXj?= =?us-ascii?Q?2ObzJmm+iZwEasf+0+Vm3MGFJ1N76cQAQQUzo/Wa9Cn2mSkgVYj9J89xm0Np?= =?us-ascii?Q?Cty5fXU8cimROkAYSRPjZBsMCzCg8qCd8/HGE0ZmMkWbh4Z5BsTFuSLgdvbB?= =?us-ascii?Q?xJaLXT+HmC1yUIN/lui46Cm+BMLheWd1ygCuX45gxubMyyTloxPKqXouYh0p?= =?us-ascii?Q?gVNubudNruqNlwzw0Dgr9A01Hvjk44rUmecA83Pe/Ox91HmkcBnblnmAkz2/?= =?us-ascii?Q?27OKATQ+ZjS8e6RyeyjGV1rDbTTz7XPFDHq1xBd6BEX9lpoO5DfLJBMjuQPv?= =?us-ascii?Q?8c6GaxyPEIb8xI/PiI0FLeME5HTeB0xMUxkTPYjrNMi5x0ZM9vtgysxqWjjb?= =?us-ascii?Q?gDMW84oLQOc6BU0SsBcP3s8OT6qTwlbGeAPLsVK1otBivphmnXz8B4ZCfP0Y?= =?us-ascii?Q?lGsWjUveIdRaEyB/v29tkigBhPjJ53IFNgeFesa2BV/K+rH4UrDFRkVyKu0/?= =?us-ascii?Q?k0LuSlihYSOXEZ7DNfAz/jxPDXhgAKFph1Ap5wZGKvJERkrx1nT/YBOWkL12?= =?us-ascii?Q?KI3WEFU39FLe22DX6qgbA37ZN5LccQe1zF7EdKcxOBeqBv2tliHuIonzH+fZ?= =?us-ascii?Q?yPq02Vnt8/rP+OcuZ/mP8m9hjYqYyIRPgYW82/FC72EQRb4ngiWWlbOapNKq?= =?us-ascii?Q?zm8eSxVTrHjTN1EIvP+srAh+edoqjiwN2zBjBRfavp9LHv7S7Mi2kpelVkeq?= =?us-ascii?Q?OaYJJwpdAbAyT8MBvag4HS1wvXSDexAoNastQpfeMtpBonZYBWbQbgTTFyOh?= =?us-ascii?Q?UeMbvxItdUFONoJFB/T1+8Behlhqkro4a8b+FsUfdBTBiu00O7Fym3kTPNoO?= =?us-ascii?Q?FG0RwZq1uuHBBpCQUql7K3KQ1aY5tqFAe6CvE33YYdnchGA8R6qhXL6mnQXH?= =?us-ascii?Q?9ooOVpUzqzzvIlUizDjAN5qRU9DU25P2eBuCDKt2HwIddR9asyKtFksjsfLi?= =?us-ascii?Q?pFbnYN5/i5B0LwZUlmjy9GukJG/29ANa3kyo/RaWbsgQr5H3f6qYBe/6lxkj?= =?us-ascii?Q?vF07zIUeQxx5UIIrc36SYENeUv6JALADi6yqMEBrdnABhbz2J1OcPVf0zLW5?= =?us-ascii?Q?aCn1Elr2+KqEDzsmZuqaqk6bqrqqEErS+mo2?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(7416014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:04:18.0112 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f23d6305-4104-4641-ac99-08dda84937e8 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8522 Content-Type: text/plain; charset="utf-8" With Secure AVIC only Self-IPI is accelerated. To handle all the other IPIs, add new callbacks for sending IPI. These callbacks write to the IRR of the target guest vCPU's APIC backing page and issue GHCB protocol MSR write event for the hypervisor to notify the target vCPU about the new interrupt request. For Secure AVIC GHCB APIC MSR writes, reuse GHCB msr handling code in vc_handle_msr() by exposing a sev-internal sev_es_ghcb_handle_msr(). Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/coco/sev/core.c | 28 ++++++ arch/x86/coco/sev/vc-handle.c | 11 ++- arch/x86/include/asm/sev-internal.h | 2 + arch/x86/include/asm/sev.h | 2 + arch/x86/kernel/apic/x2apic_savic.c | 139 +++++++++++++++++++++++++++- 5 files changed, 174 insertions(+), 8 deletions(-) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 32be4ab2f886..97cf9a8ebd5d 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1072,6 +1072,34 @@ int __init sev_es_efi_map_ghcbs(pgd_t *pgd) return 0; } =20 +void savic_ghcb_msr_write(u32 reg, u64 value) +{ + u64 msr =3D APIC_BASE_MSR + (reg >> 4); + struct pt_regs regs =3D { + .cx =3D msr, + .ax =3D lower_32_bits(value), + .dx =3D upper_32_bits(value) + }; + struct es_em_ctxt ctxt =3D { .regs =3D ®s }; + struct ghcb_state state; + enum es_result res; + struct ghcb *ghcb; + + guard(irqsave)(); + + ghcb =3D __sev_get_ghcb(&state); + vc_ghcb_invalidate(ghcb); + + res =3D sev_es_ghcb_handle_msr(ghcb, &ctxt, true); + if (res !=3D ES_OK) { + pr_err("Secure AVIC msr (0x%llx) write returned error (%d)\n", msr, res); + /* MSR writes should never fail. Any failure is fatal error for SNP gues= t */ + snp_abort(); + } + + __sev_put_ghcb(&state); +} + enum es_result savic_register_gpa(u64 gpa) { struct ghcb_state state; diff --git a/arch/x86/coco/sev/vc-handle.c b/arch/x86/coco/sev/vc-handle.c index 0989d98da130..dd6dcc4960e4 100644 --- a/arch/x86/coco/sev/vc-handle.c +++ b/arch/x86/coco/sev/vc-handle.c @@ -394,14 +394,10 @@ static enum es_result __vc_handle_secure_tsc_msrs(str= uct pt_regs *regs, bool wri return ES_OK; } =20 -static enum es_result vc_handle_msr(struct ghcb *ghcb, struct es_em_ctxt *= ctxt) +enum es_result sev_es_ghcb_handle_msr(struct ghcb *ghcb, struct es_em_ctxt= *ctxt, bool write) { struct pt_regs *regs =3D ctxt->regs; enum es_result ret; - bool write; - - /* Is it a WRMSR? */ - write =3D ctxt->insn.opcode.bytes[1] =3D=3D 0x30; =20 switch (regs->cx) { case MSR_SVSM_CAA: @@ -431,6 +427,11 @@ static enum es_result vc_handle_msr(struct ghcb *ghcb,= struct es_em_ctxt *ctxt) return ret; } =20 +static enum es_result vc_handle_msr(struct ghcb *ghcb, struct es_em_ctxt *= ctxt) +{ + return sev_es_ghcb_handle_msr(ghcb, ctxt, ctxt->insn.opcode.bytes[1] =3D= =3D 0x30); +} + static void __init vc_early_forward_exception(struct es_em_ctxt *ctxt) { int trapnr =3D ctxt->fi.vector; diff --git a/arch/x86/include/asm/sev-internal.h b/arch/x86/include/asm/sev= -internal.h index 3dfd306d1c9e..6876655183a6 100644 --- a/arch/x86/include/asm/sev-internal.h +++ b/arch/x86/include/asm/sev-internal.h @@ -97,6 +97,8 @@ static __always_inline void sev_es_wr_ghcb_msr(u64 val) native_wrmsr(MSR_AMD64_SEV_ES_GHCB, low, high); } =20 +enum es_result sev_es_ghcb_handle_msr(struct ghcb *ghcb, struct es_em_ctxt= *ctxt, bool write); + void snp_register_ghcb_early(unsigned long paddr); bool sev_es_negotiate_protocol(void); bool sev_es_check_cpu_features(void); diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index 12bf2988ea19..f08a025c4232 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -521,6 +521,7 @@ int snp_svsm_vtpm_send_command(u8 *buffer); void __init snp_secure_tsc_prepare(void); void __init snp_secure_tsc_init(void); enum es_result savic_register_gpa(u64 gpa); +void savic_ghcb_msr_write(u32 reg, u64 value); =20 static __always_inline void vc_ghcb_invalidate(struct ghcb *ghcb) { @@ -594,6 +595,7 @@ static inline int snp_svsm_vtpm_send_command(u8 *buffer= ) { return -ENODEV; } static inline void __init snp_secure_tsc_prepare(void) { } static inline void __init snp_secure_tsc_init(void) { } static inline enum es_result savic_register_gpa(u64 gpa) { return ES_UNSUP= PORTED; } +static inline void savic_ghcb_msr_write(u32 reg, u64 value) { } =20 #endif /* CONFIG_AMD_MEM_ENCRYPT */ =20 diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 2e6b62041968..2a95e549ff68 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -8,6 +8,7 @@ */ =20 #include +#include #include #include =20 @@ -109,6 +110,74 @@ static u32 savic_read(u32 reg) =20 #define SAVIC_NMI_REQ 0x278 =20 +static inline void self_ipi_reg_write(unsigned int vector) +{ + /* + * Secure AVIC hardware accelerates guest's MSR write to SELF_IPI + * register. It updates the IRR in the APIC backing page, evaluates + * the new IRR for interrupt injection and continues with guest + * code execution. + */ + native_apic_msr_write(APIC_SELF_IPI, vector); +} + +static void send_ipi_dest(unsigned int cpu, unsigned int vector) +{ + update_vector(cpu, APIC_IRR, vector, true); +} + +static void send_ipi_allbut(unsigned int vector) +{ + unsigned int cpu, src_cpu; + + guard(irqsave)(); + + src_cpu =3D raw_smp_processor_id(); + + for_each_cpu(cpu, cpu_online_mask) { + if (cpu =3D=3D src_cpu) + continue; + send_ipi_dest(cpu, vector); + } +} + +static inline void self_ipi(unsigned int vector) +{ + u32 icr_low =3D APIC_SELF_IPI | vector; + + native_x2apic_icr_write(icr_low, 0); +} + +static void savic_icr_write(u32 icr_low, u32 icr_high) +{ + struct apic_page *ap =3D this_cpu_ptr(apic_page); + unsigned int dsh, vector; + u64 icr_data; + + dsh =3D icr_low & APIC_DEST_ALLBUT; + vector =3D icr_low & APIC_VECTOR_MASK; + + switch (dsh) { + case APIC_DEST_SELF: + self_ipi(vector); + break; + case APIC_DEST_ALLINC: + self_ipi(vector); + fallthrough; + case APIC_DEST_ALLBUT: + send_ipi_allbut(vector); + break; + default: + send_ipi_dest(icr_high, vector); + break; + } + + icr_data =3D ((u64)icr_high) << 32 | icr_low; + if (dsh !=3D APIC_DEST_SELF) + savic_ghcb_msr_write(APIC_ICR, icr_data); + apic_set_reg64(ap, APIC_ICR, icr_data); +} + static void savic_write(u32 reg, u32 data) { struct apic_page *ap =3D this_cpu_ptr(apic_page); @@ -119,7 +188,6 @@ static void savic_write(u32 reg, u32 data) case APIC_LVT1: case APIC_TMICT: case APIC_TDCR: - case APIC_SELF_IPI: case APIC_TASKPRI: case APIC_EOI: case APIC_SPIV: @@ -135,7 +203,10 @@ static void savic_write(u32 reg, u32 data) apic_set_reg(ap, reg, data); break; case APIC_ICR: - apic_set_reg64(ap, reg, (u64) data); + savic_icr_write(data, 0); + break; + case APIC_SELF_IPI: + self_ipi_reg_write(data); break; /* ALLOWED_IRR offsets are writable */ case SAVIC_ALLOWED_IRR ... SAVIC_ALLOWED_IRR + 0x70: @@ -149,6 +220,61 @@ static void savic_write(u32 reg, u32 data) } } =20 +static void send_ipi(u32 dest, unsigned int vector, unsigned int dsh) +{ + unsigned int icr_low; + + icr_low =3D __prepare_ICR(dsh, vector, APIC_DEST_PHYSICAL); + savic_icr_write(icr_low, dest); +} + +static void savic_send_ipi(int cpu, int vector) +{ + u32 dest =3D per_cpu(x86_cpu_to_apicid, cpu); + + send_ipi(dest, vector, 0); +} + +static void send_ipi_mask(const struct cpumask *mask, unsigned int vector,= bool excl_self) +{ + unsigned int cpu, this_cpu; + + guard(irqsave)(); + + this_cpu =3D raw_smp_processor_id(); + + for_each_cpu(cpu, mask) { + if (excl_self && cpu =3D=3D this_cpu) + continue; + send_ipi(per_cpu(x86_cpu_to_apicid, cpu), vector, 0); + } +} + +static void savic_send_ipi_mask(const struct cpumask *mask, int vector) +{ + send_ipi_mask(mask, vector, false); +} + +static void savic_send_ipi_mask_allbutself(const struct cpumask *mask, int= vector) +{ + send_ipi_mask(mask, vector, true); +} + +static void savic_send_ipi_allbutself(int vector) +{ + send_ipi(0, vector, APIC_DEST_ALLBUT); +} + +static void savic_send_ipi_all(int vector) +{ + send_ipi(0, vector, APIC_DEST_ALLINC); +} + +static void savic_send_ipi_self(int vector) +{ + self_ipi_reg_write(vector); +} + static void savic_update_vector(unsigned int cpu, unsigned int vector, boo= l set) { update_vector(cpu, SAVIC_ALLOWED_IRR, vector, set); @@ -228,13 +354,20 @@ static struct apic apic_x2apic_savic __ro_after_init = =3D { =20 .calc_dest_apicid =3D apic_default_calc_apicid, =20 + .send_IPI =3D savic_send_ipi, + .send_IPI_mask =3D savic_send_ipi_mask, + .send_IPI_mask_allbutself =3D savic_send_ipi_mask_allbutself, + .send_IPI_allbutself =3D savic_send_ipi_allbutself, + .send_IPI_all =3D savic_send_ipi_all, + .send_IPI_self =3D savic_send_ipi_self, + .nmi_to_offline_cpu =3D true, =20 .read =3D savic_read, .write =3D savic_write, .eoi =3D native_apic_msr_eoi, .icr_read =3D native_x2apic_icr_read, - .icr_write =3D native_x2apic_icr_write, + .icr_write =3D savic_icr_write, =20 .update_vector =3D savic_update_vector, }; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2066.outbound.protection.outlook.com [40.107.243.66]) (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 816B62367CC; Tue, 10 Jun 2025 18:04:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578691; cv=fail; b=WB1kjZlNNnA+i85Y2CrPe0vjltoZ5h9HRneercOz6V5TWUCoeN9UMXKUGcO8QhllIyrN90uLcAm/Az8jCcYdQgX5xaGInkByYHrAEvgoLW30EepVAG4ueaUT0qKv/yac8G1HH2bHwMzsmzZskUTXrT2RpxFeX2KEUH1Q+O6xyXY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578691; c=relaxed/simple; bh=Wy1JYPfciiZW3xqqhcYj+CWHYx4Ej4lNdfjEJoKUk54=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Jl56Fu82Cx+2YWqF4CSHoe09W7CPkqrCLhlxLVNvTyraefMpb9fTH+lKoYelIJEWZXpx4r+zQlAxsAdWuGEVSJnmUyAUki+DJ6Nd/Gx1ke3O4pMUJiFm76BXiYqvqAwhwJr2rv8TMTResjNeWFeS3pUYg2RuYpYNxalEr2sPr9U= 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=sI0JYp0D; arc=fail smtp.client-ip=40.107.243.66 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="sI0JYp0D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O6TUZmX040cHeF5JA3MLV75qrITs1pdKsZ8hK70E0XAwm06/QT9roYMwLIsA8R6qimEgDS1wOTB3nOtB+bY6Oibc/rh0RxX9F6Nvvdxfwvw5XclBRkYUU/HCiWAvQ/FyCBT4WuZH1nTfPVbRfidJVYMZrLwikH6m295wmLTckc3i1Aa/VSZ4Qc5ce190OTHvJvhcAYOqeuZdmY79VlsZ9/tFoCwkfJh1B7BmAdjxZ7FtERmk0HwkNyTG2zhiQH3t3WhwBPAFdvXYm7lzKMDQnPH8NjVdX6S+KnF4fhQZqZtHXSVGFhxfah49ckoCyH1k4SPjzpe1HRDrbp9yfGN6gg== 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=3Ig9ibYosY0/1TQaAvgUkIUfHQ132ND+e04EL/xoa6w=; b=m2I46pgHqZho9yHI8I98VguWk6WeotM+MvGe5I1ff1cCUf6eT7ysFLq4xlGXKjXgHo3BMa5WPJtsrZrMWT5aHhn9cLb4INSvzSk8968Rg59dgB4AeOG5eetNkzVVxSHkbCDz4Xc/4fLWkaJ2C+QP9nfHMPWta44kdFrDz6Vst+4MDwl2b6CqUDNR6Izm1fRpOJGYmkQnlbK3bERxDjZYgk4BOOQD2FIMFsCtiJp1V61Kdo5YnBZHaepoK6NP7Jf0R031rOqTtpY2Bl0msHMiamWJppGYZDmysJKk73gTm7O3pPsnyl0PFCus1BhtrRalyYCGjwbTogrZ4/Xv58VYVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=3Ig9ibYosY0/1TQaAvgUkIUfHQ132ND+e04EL/xoa6w=; b=sI0JYp0Dl8H9BvaEKYK6HDVIG6YsOO/5tGriWRCiJnu1aNCVJe6UeVsCNFeFrQtYE1DxUkffBJYLzmuotyh+98ZCZwALxoMNikRXHKVCmO0pck82HfVt8Flj3aNoCi9vVxZtN9ExZpI/crCd+zh3rAYccuR/++uWSwRXolh62Gk= Received: from BN9P222CA0010.NAMP222.PROD.OUTLOOK.COM (2603:10b6:408:10c::15) by PH0PR12MB7861.namprd12.prod.outlook.com (2603:10b6:510:26e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:04:45 +0000 Received: from BL02EPF0002992A.namprd02.prod.outlook.com (2603:10b6:408:10c:cafe::c0) by BN9P222CA0010.outlook.office365.com (2603:10b6:408:10c::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.19 via Frontend Transport; Tue, 10 Jun 2025 18:04:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:04:44 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:04:36 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 27/37] x86/apic: Support LAPIC timer for Secure AVIC Date: Tue, 10 Jun 2025 23:24:14 +0530 Message-ID: <20250610175424.209796-28-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|PH0PR12MB7861:EE_ X-MS-Office365-Filtering-Correlation-Id: 61b68056-b492-44a0-20ab-08dda84947a7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IzYyicDWBfuputJamMikdL1a9WTQuIfvyGC3uvKmkbIQjB/WkvTDdsJzrOl0?= =?us-ascii?Q?/76Li2HjjmqTCDZfbjDIPThEMnbVIVMeR5ocTb1xF5pUHT7o3K0mvxMs7nbQ?= =?us-ascii?Q?DUtItmAgdipbIg3b6H5j0PwsQ+CHMq4r/HerND6Wb0T9S0/qHHmJl2TOTybY?= =?us-ascii?Q?HwsOab1KQatGg80/nyf39fuM3X7BqxcclMfSkdzxi4gM4KtKWNYVp1uT3dtX?= =?us-ascii?Q?DSuep49lDAq7go5H/+KCwWcO0/gO+Fi1iBZmQ4pOckNtXViNhyMDrBbyUo8U?= =?us-ascii?Q?btWU5Wz1j5xKcX0Y0twNqTs3T26oeDSXS7cs55sMXThboGwgvWekbXMkbFMr?= =?us-ascii?Q?pmFyMXAlC2zzIdWDC2sQwhPiazWL7PfITD4XnLaxO5NYzlE2E1tYOIiWU4vH?= =?us-ascii?Q?FENYzj8fcfRr5NCPYK4R8OOxEbE3/hbxczURNlK/wiDEip93B4FGfiVUyaUf?= =?us-ascii?Q?8QH+3d5u+eCGyY2v5f1OPJ23X2l1qUvtP1KV+zfeZpHhKWTEmOiS/Mv68C0x?= =?us-ascii?Q?A8fmA4HWC7of2YuG1Yv4edv8FDxoZGH/OUvg0IqbEasUAKFiW6CcFa5lsJ4G?= =?us-ascii?Q?vbYcmE0TZVYNqeC5w+bYjlUKW5W52rgE3bU0RZFlo1aP190p3Dky4e9NWN9E?= =?us-ascii?Q?Yh8YvCACNLMNNEhyexZ/tlGMCMve0lND0JPGEsdDnY6peFrKxaHZ8sCOUSo/?= =?us-ascii?Q?csSSMC6KnJ/O4UIu+IUm2kS3XSBRimPLElTUZ8PKS4OK4YkxsiVf/dU74W7f?= =?us-ascii?Q?uwYt5CDW9bJ+mlHgqsOHDCGuKxtCVbYqUIZvkAtltJuOPcXSZdiFCDhJnd+d?= =?us-ascii?Q?D+MxhgHhPZpiG9mQOoeOa+7T4O586Wsu1k8AMFXROzAuc27z/ZJKf1qu2cV9?= =?us-ascii?Q?Dqzz7ohK0RPVOaRiSyZosz43Fb9s6Nrs1VmxfKSORyWGph+isTmbSSJpTFh0?= =?us-ascii?Q?CL3VCL9MkJ1mM0JjQmM92fW22IzEWjV/3M8YSZDoi9W5bz3THT49iHcDgqCk?= =?us-ascii?Q?NCL+KlGrYSIPB5hd8XtfYYOePcnlyt0+mZEWoW9C43aiY0EB8RRKB8VRhPSr?= =?us-ascii?Q?/e28G+/90bA8MXtKPTAAZUlwI4za5D30ZZHDTEdH4EHSxA5RF/okHxl2uFeJ?= =?us-ascii?Q?6n0rH9oOkQnDNDSY/vA0g4WHUnfFnuytXNtRiLV1aqaxPymothP61rkhwJw1?= =?us-ascii?Q?/UOFYkoYb6Ecul1fmWywfPfvftjDVfBAx3Q+MxN2OsbcEuNVDOEKxkD3NJ9x?= =?us-ascii?Q?wLTh5jWC2rGpMH+5Ll09aLDjOwLgdUU3DSlVPtBRZg+wjSLqD7qWwHYxc5CF?= =?us-ascii?Q?1fZgHatIZ2kosVM3DsvdGKz8oPM8tM8FTS0gimPUfYhw7A5R5TTMQ0qywIhL?= =?us-ascii?Q?0Do6ojRfGQo/OR9aEV6Iv/rUV5ntqs2r4V5w32hO9GJO8dxmFWhGHZMyyNlF?= =?us-ascii?Q?zIcRBX7W0Bk/IaHad2Jl0G0UKpdcvLFnuQ4YNTh6O4SOZx4GSePfp5AsvXMK?= =?us-ascii?Q?KO4I4MMf2eV57LrhNghliBcNQFggGvuVZG4n?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:04:44.4246 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 61b68056-b492-44a0-20ab-08dda84947a7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7861 Content-Type: text/plain; charset="utf-8" Secure AVIC requires LAPIC timer to be emulated by the hypervisor. KVM already supports emulating LAPIC timer using hrtimers. In order to emulate LAPIC timer, APIC_LVTT, APIC_TMICT and APIC_TDCR register values need to be propagated to the hypervisor for arming the timer. APIC_TMCCT register value has to be read from the hypervisor, which is required for calibrating the APIC timer. So, read/write all APIC timer registers from/to the hypervisor. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/coco/sev/core.c | 26 ++++++++++++++++++++++++++ arch/x86/include/asm/sev.h | 2 ++ arch/x86/kernel/apic/apic.c | 2 ++ arch/x86/kernel/apic/x2apic_savic.c | 7 +++++-- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 97cf9a8ebd5d..abe7b329869a 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1072,6 +1072,32 @@ int __init sev_es_efi_map_ghcbs(pgd_t *pgd) return 0; } =20 +u64 savic_ghcb_msr_read(u32 reg) +{ + u64 msr =3D APIC_BASE_MSR + (reg >> 4); + struct pt_regs regs =3D { .cx =3D msr }; + struct es_em_ctxt ctxt =3D { .regs =3D ®s }; + struct ghcb_state state; + enum es_result res; + struct ghcb *ghcb; + + guard(irqsave)(); + + ghcb =3D __sev_get_ghcb(&state); + vc_ghcb_invalidate(ghcb); + + res =3D sev_es_ghcb_handle_msr(ghcb, &ctxt, false); + if (res !=3D ES_OK) { + pr_err("Secure AVIC msr (0x%llx) read returned error (%d)\n", msr, res); + /* MSR read failures are treated as fatal errors */ + snp_abort(); + } + + __sev_put_ghcb(&state); + + return regs.ax | regs.dx << 32; +} + void savic_ghcb_msr_write(u32 reg, u64 value) { u64 msr =3D APIC_BASE_MSR + (reg >> 4); diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index f08a025c4232..bf42cc136c49 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -521,6 +521,7 @@ int snp_svsm_vtpm_send_command(u8 *buffer); void __init snp_secure_tsc_prepare(void); void __init snp_secure_tsc_init(void); enum es_result savic_register_gpa(u64 gpa); +u64 savic_ghcb_msr_read(u32 reg); void savic_ghcb_msr_write(u32 reg, u64 value); =20 static __always_inline void vc_ghcb_invalidate(struct ghcb *ghcb) @@ -596,6 +597,7 @@ static inline void __init snp_secure_tsc_prepare(void) = { } static inline void __init snp_secure_tsc_init(void) { } static inline enum es_result savic_register_gpa(u64 gpa) { return ES_UNSUP= PORTED; } static inline void savic_ghcb_msr_write(u32 reg, u64 value) { } +static inline u64 savic_ghcb_msr_read(u32 reg) { return 0; } =20 #endif /* CONFIG_AMD_MEM_ENCRYPT */ =20 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 36f1326fea2e..69b1084da8f4 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -592,6 +592,8 @@ static void setup_APIC_timer(void) 0xF, ~0UL); } else clockevents_register_device(levt); + + apic_update_vector(smp_processor_id(), LOCAL_TIMER_VECTOR, true); } =20 /* diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 2a95e549ff68..e5bf717db1bc 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -64,6 +64,7 @@ static u32 savic_read(u32 reg) case APIC_TMICT: case APIC_TMCCT: case APIC_TDCR: + return savic_ghcb_msr_read(reg); case APIC_ID: case APIC_LVR: case APIC_TASKPRI: @@ -184,10 +185,12 @@ static void savic_write(u32 reg, u32 data) =20 switch (reg) { case APIC_LVTT: - case APIC_LVT0: - case APIC_LVT1: case APIC_TMICT: case APIC_TDCR: + savic_ghcb_msr_write(reg, data); + break; + case APIC_LVT0: + case APIC_LVT1: case APIC_TASKPRI: case APIC_EOI: case APIC_SPIV: --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2073.outbound.protection.outlook.com [40.107.236.73]) (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 E0920244697; Tue, 10 Jun 2025 18:05:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578710; cv=fail; b=uTDJRKfy+/qMw55s21kkfXFc836nnlwrERGK+lW/nrPJdVnmEq6XRMEXPCWL4lojtljP7J2FO5ZWysah97L5mEB3ac9otTGfAnBDbGy780hYTpM1WLG3TzqZIDxG8LCAU9bD9o6mGB8AX7cojRbbRwbJPg+zONSIrx58oPFz8QY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578710; c=relaxed/simple; bh=pdIpMIO4v9gmMI/tdO6eKY20ebIogeMadPf/Jytdee8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qKrbQ4XrkuU8WZ5sf/tjK8a1aYFiq9LIAE21d2iy6wBL1gZ2rbTTTVI3UzagVBjYJbUmiwKlbgd7/OF70pPRe4EWo9BS/rrVBikPBV7TIEO+qH9GzN9xPcx8wNgHViyyaI+gOBFz8WY2fwHOhEd8+wLpn9S44HsMGYenUYXuESI= 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=VDt7pOek; arc=fail smtp.client-ip=40.107.236.73 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="VDt7pOek" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TgyFcJBksafrf70v9NZfziGrWdpKiD0zHPujkfqNcT92kj6vos+MjpbD/XQmXV+rCxUt3uzsffxgNGKy86nWWxUDTP0Gf/FIq240lnyqh9A1ELTQgaUPSTqtpIC3MJCScJuBq+rwPyQWUMVZubskOz5RanOyvc6kxvUuJEANbvwp8QEaq5DG8LRg9pRq0rDpR7LOFWnWZSyw4mvCvNwEDsTNUjZ4ODhPo+YUuxVJ6AeKJ8AmzcLHVx4KOCBFqEbrJYWXotGZGonvlJqcVtZzgxt1uXMNp7cB0JB+y37FzPY8uXaez5+DR9lMNADWnLtkxKKwVYkSMUjKM+4nH/56Ew== 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=FQ9xJ+v3tWxgzcqDp78K41TEX7u/AZ70knMwXU68Y6k=; b=PF8Cz1EH1H8A5N+vVVDsjB3eBFALK4LTnpMsfLnKA6BaMzXl8fU6wajhbmfqgasj/npBKvcUPtP/wuUhNwDz8C3a6XP3oxl8uRpaSYAsErUHUzFqAfRto+1Blu0pA7XjSMvsSFEQRgIPVEpPtqe1zNiRkRoQ60bMA1gQVKL0nh1IoR65YoILvk1r20x8UMWgUikG5kWIAIbcJ7fcGi+fuME965x1qWywIo/qFyKtvrOALWC1XW/PoNdKgi7dQuwhj3moRm3HL5U826bYYecK30sUkZGGxMB41Ael+/WwbaEQfgIqDAh2U7fkDBZXN7LWnXpKpIDs2I7e8aCRfTYhgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=FQ9xJ+v3tWxgzcqDp78K41TEX7u/AZ70knMwXU68Y6k=; b=VDt7pOekjMA5EqUTsxkDXhb/GrEwXDwoTJPtJJMc4bfN5kvLydjvIHRP4ThsP0L97heW5oJHJotU0HeKU1GVb2Eyy0TP29owFOzWm8f4JpBONtT1VvPXL/0goYbiAUIYxFUCKRyXSuE0R/bkF6c4sQX1HQ4QXMupdX7QY/5r4JY= Received: from BN0PR04CA0206.namprd04.prod.outlook.com (2603:10b6:408:e9::31) by IA0PR12MB8253.namprd12.prod.outlook.com (2603:10b6:208:402::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.39; Tue, 10 Jun 2025 18:05:06 +0000 Received: from BL02EPF00029929.namprd02.prod.outlook.com (2603:10b6:408:e9:cafe::5b) by BN0PR04CA0206.outlook.office365.com (2603:10b6:408:e9::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.29 via Frontend Transport; Tue, 10 Jun 2025 18:05:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:05:06 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:04:58 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 28/37] x86/sev: Initialize VGIF for secondary VCPUs for Secure AVIC Date: Tue, 10 Jun 2025 23:24:15 +0530 Message-ID: <20250610175424.209796-29-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|IA0PR12MB8253:EE_ X-MS-Office365-Filtering-Correlation-Id: 15419faf-ff4b-4dd1-8f84-08dda849548f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?11EdpmKNKW5pP+in6vF5My44TGJfMjKRn5OJK+UPg01AritT2MnmNkB8Kx51?= =?us-ascii?Q?z2Jbf/X619V8jTCooqFzqtk5s726RiR5WRDgp1HeL6R7lzQld+T9w87VM2qi?= =?us-ascii?Q?zOMfaxsPDfuUL/CdepLw7nGNUYwQDiGVQIYAD8MYVUTaHj1P7Mn6pcvl7MaU?= =?us-ascii?Q?X/Xgbumk1u31RKmnFZydLZ0qawHRuJBPLbhG7Dt7hi1TaTLKwl4+ELjC/aro?= =?us-ascii?Q?BLtIgfd3udzmVP5Ox0rblXsJb8yus6F1yqtZLKVRV+Re3cHIS4ER7UR0pjVA?= =?us-ascii?Q?W3mDN4fa3wqVc4sBOulizH/pitKeD1A8tJp2SZiFfJmGKUGJzt/LszovyE1K?= =?us-ascii?Q?dTNi5SVIgOsL+Oi36Mew4pfSCa0yOc85pNSujYwWpc0WtgGha63nGlf5pIaV?= =?us-ascii?Q?kDk7yTvPbxz4aoBHFmBLkcAiMH9JQNJ2WesHqQ9TK4J7lBPPnu26PptGYsKO?= =?us-ascii?Q?OlJCUu+CuviWgcqH1ZleuOnqUJwwFRKOyUqfAyxAU/J9tESdXkABVTdRoWh6?= =?us-ascii?Q?VqQ0HFtI2CoFHb7G3c9sNcQ/mnMCr0LxrluiVYpBE77NWA98K50bPSaiRpgK?= =?us-ascii?Q?/RJ34Rn+6ljHT892cu6FwLxsFUW56J+d6xBgXm1H7YH780KT3quFkNfq099r?= =?us-ascii?Q?mf7zH2S9I/VSWpdWzn4F25pKHJ4CP6wnrsGafCfkXdaN5J7x/mKsg2i4qJ2C?= =?us-ascii?Q?Pvw9AetN/SNZ0nvc23vx8Q5Ku/fMHeT24H2KVx1Ndg87jXKrWcdaHfBGyIsK?= =?us-ascii?Q?Zp52NcUoHo60ocS1+6HI2FIyy6MDj/iE3QrFjDljmuTPNb5mnMwCO3EFPojP?= =?us-ascii?Q?u4r+U39NkiwXbLBjGhnHjNxrZfljwW4x9X8gIv0V05uxCVrTVWANeXX+jr51?= =?us-ascii?Q?wo2sEts13uw87IXWuCLE0D8CIXwERFjbuxU5jH+qSikrNKYq4URyLgdXZdQy?= =?us-ascii?Q?myL3rFyN2MQ7zw3DDcjdsY+VxaB2/coz+kaCWPBau1zMPiGdNmErXO1reJ2+?= =?us-ascii?Q?iIrfJ8Hdy+0MZtyHNQgwK2x+3guFUZxB+gdrHdnCflDSvESLHSnFY0kyvIfP?= =?us-ascii?Q?QJhjIpayiHF1RHRnuHsuRoujA1lDvYjV6bKOYteiDGkOgsqOdwT7+YmCFIox?= =?us-ascii?Q?VdLS1bcs4HtMH7quDbXpl2uqKZbS3ev6Qo+RL6wFDzW5BC30TL5wdfiTCCb0?= =?us-ascii?Q?hvFGWefPKsaiBEhKiRyySjoSvQzc0++AtnewL6sNSgOtvVKzzy37Au+PGm4B?= =?us-ascii?Q?t54wZUmHFGBH2aabhxPzHRYCrzCvW6dB+STQSxtYDcX/8ZI8EIdxXemjMEn3?= =?us-ascii?Q?btigBPAUbqjQGPr9Iev35O9n7Qx5kPyFV1+SbsLJZgM2ztVYFvS8XI7n2Nfa?= =?us-ascii?Q?e8aq//fUW+8j4GRwjIpft4eMAbZd3iC+2qXpyxHvfyOYIXxvI0XZbpuwg7e8?= =?us-ascii?Q?2i5XJ9U6ImXdwx6mdvTV4zqY5ykMCanCb2a+hUjHrxtNgpZRNeFyG4d+gzgS?= =?us-ascii?Q?OefG753HldcO3KqjZjPNBZyA6/jQ6/tKFT/9?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:05:06.0819 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 15419faf-ff4b-4dd1-8f84-08dda849548f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029929.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8253 Content-Type: text/plain; charset="utf-8" From: Kishon Vijay Abraham I Secure AVIC requires VGIF to be configured in VMSA. Configure for secondary vCPUs (the configuration for boot CPU is done by the hypervisor). Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/coco/sev/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index abe7b329869a..7ff4faf94ef3 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -951,6 +951,9 @@ static int wakeup_cpu_via_vmgexit(u32 apic_id, unsigned= long start_ip, unsigned vmsa->x87_ftw =3D AP_INIT_X87_FTW_DEFAULT; vmsa->x87_fcw =3D AP_INIT_X87_FCW_DEFAULT; =20 + if (cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) + vmsa->vintr_ctrl |=3D V_GIF_MASK; + /* SVME must be set. */ vmsa->efer =3D EFER_SVME; =20 --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2053.outbound.protection.outlook.com [40.107.101.53]) (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 E43652367CC; Tue, 10 Jun 2025 18:05:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.101.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578732; cv=fail; b=INSV4OVCPUPfcXmeMFftmekaOA4o2zQPHg/rtHQMzNeS1Z4vpU3dNXtGviIH8jXJ6fMdAk3eHlGrgA4SwVFwofZv+0CL8SbTp5qc/wGF8N5QglzmtQfI1C5FDhd2OexL4iehMx6RbLoluUAxLXOPx8OZlPrDAGeql9U5IYUk/RI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578732; c=relaxed/simple; bh=jpWjsXp2JN+FJhGF/36PqVz72QtriBTtGUCO/JctJ1c=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ritjJsFbuADXGuaryhpPfJVi+4EZyfhh9fVmCQzncMMFQKyp3f36Rj3mYcCnyal4tmWtBis2J6cmpjao7QgkLQPEk9+chYNyFPRtR8lkZD5NMlOKTu6rNCWEcvDbUsfK4XCGATz5XH5k+7IWYlFVBK6bnHezDBLmLpPsoFDflrs= 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=ng5LXkh9; arc=fail smtp.client-ip=40.107.101.53 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="ng5LXkh9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lBU+yKO3dtJ45tySs6SwFhj7uNrHkms4olSlHRTL2qHXURLSPGtAwUQjMXWUpg0+8bzGC3rn8mJCS3bGGo5g6WF45rssWB4bAIMR7ZC2xeG9wqwn2sl054eyw9tK3TQWbyvyBSE59DBn3gxqd1UYMmmQLJ4haRpEGT+Vn6WykPUUREIQejmcVZRT2hQ5GX050ru6pjXIu6JSMdo2P8KLi/u5gObNKU3Z3zwdNUx0ROkMroLP4qdTOSTrivCbCTZEQldWbv74CdI3vkkCFMNQ+ofRm13tiCh1CDuXIvpXlokzaAVXzJoqQ8Ke/GjcZNP1MrrozWxIrGtMQVD+tWSnuw== 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=2AapnTyEb3zvgPNtp6ibOk/mKxbeyJo5UAzXlDAEFE8=; b=daMcm8D6op5+qdVlNGMo0gtLBEQQQImFV2APR4tvG4h0iJelzj01AcvTxPP7cnCEM80+LCuZplAQka89zNLJTCIYM+24x4je6vMFrrM1SuGNiYAkefPo73OkqxW9nzESV7EDvRX623UEhWzDLc+tzYtx+58YWmcEAWymB8a0Iv+5wmM8UWcfMqIJ9Hr2H48Eo/+jQSxdI2jPB1YSANAwlkTxFY0pHlloZgT5GH1rrefhak6P9q/UfTFrWAnx6J5vCKjAMUBqOuC3vvEHfF6bnTS2rYi+wt7+3F06+w8Nw7SnYR7iLk+JVcC5VTrCEI8dxHQjTnRBj7AekO9d+/xBuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=2AapnTyEb3zvgPNtp6ibOk/mKxbeyJo5UAzXlDAEFE8=; b=ng5LXkh9nR1+/3BjTojyYBfmCAEdPP5dTCtRm6JUq50cKJdJS6AvgLLFwnjka3Ne3dZMh16mAMZHuDoJLcslERdxjEBq0fiUIxEOpZXBmtbFWlP4+fwcIkE6G2giPlejQWOev2Xln67gPz5ekqpyuLtN+kRg0djZmP0embvY2C0= Received: from BL1PR13CA0164.namprd13.prod.outlook.com (2603:10b6:208:2bd::19) by LV2PR12MB5965.namprd12.prod.outlook.com (2603:10b6:408:172::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.39; Tue, 10 Jun 2025 18:05:28 +0000 Received: from BL02EPF0002992B.namprd02.prod.outlook.com (2603:10b6:208:2bd:cafe::ca) by BL1PR13CA0164.outlook.office365.com (2603:10b6:208:2bd::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.19 via Frontend Transport; Tue, 10 Jun 2025 18:05:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:05:27 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:05:20 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 29/37] x86/apic: Add support to send NMI IPI for Secure AVIC Date: Tue, 10 Jun 2025 23:24:16 +0530 Message-ID: <20250610175424.209796-30-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|LV2PR12MB5965:EE_ X-MS-Office365-Filtering-Correlation-Id: 04eb1afb-f22a-458d-8128-08dda8496199 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LkSBv+k0czPIrHHulhddKx6CtUiSrwCsJtUcW92bVt98G1ed105+E8UMPv3q?= =?us-ascii?Q?SwKGfmOZjMHkQ3PEMeGc9Jly315JshaFmTvGi9qR9l8PAGOLmiUGnlQWoeyT?= =?us-ascii?Q?d54QKBNce9PZEajrSy0plmDrNhLDhClNCLMt1zSJQUO44d/nv8JGQ+eHwOPF?= =?us-ascii?Q?+I3jk9roCpVQt2Do0hHJo4654FBHCix4EoIaB8vnDoNUotWSFM5cGIKvVg0f?= =?us-ascii?Q?YLNhRL67P2GM+odzAsOEjmp5q3ZL6UsGmLa0PQ9RSmReb9ArjnlnrLestZ48?= =?us-ascii?Q?zbScR6iQu8FB0pmP207ggeZqy6RezwfqkjgV5jOB0S+T3U0U5OeQ9VniMS2i?= =?us-ascii?Q?8ANQhUBMgd5wpfeBBZVX8b5Ly/6KMrC5OeGptoCvpxJIBDh8YnYmhliinXPf?= =?us-ascii?Q?jUDZA4mugeQS9lHiE/5vMlW/qO46fenPeP0WRbvn6zYD5iQ1u9+ePcEgIuSL?= =?us-ascii?Q?GxCnxxyIsEAEVGhIHrky9fhWrIBJ94hRdo3s/x+7X0tKKtFq/3LZSFGyxH8J?= =?us-ascii?Q?KJo2kCFaEc5dSwPvFmW6gu34SnTWMUDr4CwOFD0CpAif5tSfpOhRVDgvwLQj?= =?us-ascii?Q?ZdG7Mf4OASsxG+SabUBdEgAMTWbX6prgyYY/kpYDZNFz5yRpxeOsYzHIHIj0?= =?us-ascii?Q?8KuJ68Z8J9KQxjAkgWhCeGSsys5zK+ACXlU80CM8N/7UuR9pexofJ969i8VW?= =?us-ascii?Q?BHGg/P9SM9dizRNFewgrHLYPPSByttIEummykjReMEiGuSF0aBpBEYt1HKec?= =?us-ascii?Q?+UFUORCo/JRRc+XetmOjHOB0ehs/sVFNT8jWxYsKpye+jA+WHI+h/z5/J7zw?= =?us-ascii?Q?+566kMMvBQXrFmdCW5qoAskoV7W1B6DImTrDJMgmmXgKqkyjixT0n6FmBqmC?= =?us-ascii?Q?5mp+ec0tduT1+nIrBdiWoKfEQ6BGDDeN6UR6HykTL0mj0tRTVlTrE5Q8e5T7?= =?us-ascii?Q?lxSHtbrJJooMRMdk44BCxkTq4A9EtuIf0f0MvNGJljs83JxYNIUCjWRxvCcb?= =?us-ascii?Q?RhcD6iWrTrnEdK1Uf/WuszMImUo5+sZCgz8bGUKyj5bMejWuRoBf9CXlLr8o?= =?us-ascii?Q?QD9iIsamfqLI7ZfVPYXzYdX9UK27uTm2Hmr+aectg8Qe+4zJxIrxxn6/q1Sp?= =?us-ascii?Q?mIan+aJiyx71GR2CnIitY/C3PTKWfbCJMioUi/3dP4d77zNJGqLjUfPOm5nK?= =?us-ascii?Q?RvMrIaUT03RiMcP6SKjthnHiRefCDMWV3Ja1FRE2YNio7LDiwiuHSLCPds6x?= =?us-ascii?Q?EljSsRSVhe4X4gVaQLCpUaIUoxnKDTmU0z1l0g+whkBXzu3Gp+otte6YYO4w?= =?us-ascii?Q?NOqvKn84+V5YEPHVxhTPpA//0poAuSoKupJ9BLqJSuMt53EhKrYRDFy0vYQI?= =?us-ascii?Q?VioiiaKJdvTkzHJ3ndvMGjc/2I4tQOT7wsv7aaDNQuqfIyVA70flrFh+Dixy?= =?us-ascii?Q?pAuVrCdlWf+L/DzOs4KWuXwyRHWjwfduse/qvbWpD5TRu63yITauAc31yJ4H?= =?us-ascii?Q?9LA76UI0OFpQd38rkGnptwIbTCdSUUFZmYqs?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:05:27.9577 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04eb1afb-f22a-458d-8128-08dda8496199 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5965 Content-Type: text/plain; charset="utf-8" Secure AVIC has introduced a new field in the APIC backing page "NmiReq" that has to be set by the guest to request a NMI IPI through APIC_ICR write. Add support to set NmiReq appropriately to send NMI IPI. Sending NMI IPI also requires Virtual NMI feature to be enabled in VINTRL_CTRL field in the VMSA. However, this would be added by a later commit after adding support for injecting NMI from the hypervisor. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/kernel/apic/x2apic_savic.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index e5bf717db1bc..66fa4b8d76ef 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -122,12 +122,19 @@ static inline void self_ipi_reg_write(unsigned int ve= ctor) native_apic_msr_write(APIC_SELF_IPI, vector); } =20 -static void send_ipi_dest(unsigned int cpu, unsigned int vector) +static void send_ipi_dest(unsigned int cpu, unsigned int vector, bool nmi) { + if (nmi) { + struct apic_page *ap =3D per_cpu_ptr(apic_page, cpu); + + apic_set_reg(ap, SAVIC_NMI_REQ, 1); + return; + } + update_vector(cpu, APIC_IRR, vector, true); } =20 -static void send_ipi_allbut(unsigned int vector) +static void send_ipi_allbut(unsigned int vector, bool nmi) { unsigned int cpu, src_cpu; =20 @@ -138,14 +145,17 @@ static void send_ipi_allbut(unsigned int vector) for_each_cpu(cpu, cpu_online_mask) { if (cpu =3D=3D src_cpu) continue; - send_ipi_dest(cpu, vector); + send_ipi_dest(cpu, vector, nmi); } } =20 -static inline void self_ipi(unsigned int vector) +static inline void self_ipi(unsigned int vector, bool nmi) { u32 icr_low =3D APIC_SELF_IPI | vector; =20 + if (nmi) + icr_low |=3D APIC_DM_NMI; + native_x2apic_icr_write(icr_low, 0); } =20 @@ -154,22 +164,24 @@ static void savic_icr_write(u32 icr_low, u32 icr_high) struct apic_page *ap =3D this_cpu_ptr(apic_page); unsigned int dsh, vector; u64 icr_data; + bool nmi; =20 dsh =3D icr_low & APIC_DEST_ALLBUT; vector =3D icr_low & APIC_VECTOR_MASK; + nmi =3D ((icr_low & APIC_DM_FIXED_MASK) =3D=3D APIC_DM_NMI); =20 switch (dsh) { case APIC_DEST_SELF: - self_ipi(vector); + self_ipi(vector, nmi); break; case APIC_DEST_ALLINC: - self_ipi(vector); + self_ipi(vector, nmi); fallthrough; case APIC_DEST_ALLBUT: - send_ipi_allbut(vector); + send_ipi_allbut(vector, nmi); break; default: - send_ipi_dest(icr_high, vector); + send_ipi_dest(icr_high, vector, nmi); break; } =20 --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2040.outbound.protection.outlook.com [40.107.93.40]) (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 5925C244186; Tue, 10 Jun 2025 18:05:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578752; cv=fail; b=SJPYmJ7EEURPdZ8I1APOvJm5yuh8LZflPBltYmtlfpXMYhlI1L/4tWgaJZrdhL0VIx3N7A8ZGzIGgqIc3ZiPqelKn/KxRyt/rFV99zEXSLFdMXEZhMiddHOs2udJ2HHAZsfxV54zV82pAsTDJXpcNB59m5WRxyNu4NYR2fFhAUk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578752; c=relaxed/simple; bh=Qpy7RKu3++kdx5GQI41T48LjYC7RNxcpyKDsFR3a6Nw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IsLey57j2Rgv39tEjk9jMTSVljo0YnCtxGWKhiQSLFhdktgJvhFdQMRiaLYt4dBg4IAe5ySH8yw1HbnMVREhftpZMzVSzvQVHYM10gGaCuhU2Q2SVb1MhoedzK1gtCP/F8d5VnihXAkJumISQXKhlbXCXoYCMkVoazSCrKZjVWY= 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=bcQSPYUp; arc=fail smtp.client-ip=40.107.93.40 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="bcQSPYUp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cyuTEwGDyAeqWyeFswPlHa4iEzMubgDL/QEWPAjPq46N4uOCikXETSqmJ7DObSE6Cm7MilY6nS9kT1cP9hDpaGwRuOQf/zk4CQ1zNyvc+YOeULS7SkvSVHbL8M4a5iKTFv88Zg0cSp8YZez4t03iEN+CuCrSk66x6w8CmkqbCR/ZOd9wJGMMFf2wKrnViu2jVIx4MBCNtMaheXcHxSE3AgdkTHdfh63Qliaw+JpAuJJ2F85TDLM1vrQ6luJ8Whe/XUikCVfZUleI0qje+tWaU+Lh0P+DSQwp2alP9RIG37TNdclRSoovrNrn+RHUrwwjvl2J4XT7fjd7sLsZ3JCQiw== 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=vENlfOPYJfmNR0KFWzxiDyyu3aO1FJp96hh9OLPSEcY=; b=HkhNjeo5ynyfKruuH/CgE0/dlPxju47JRuZrk1RuPuyyoURjit38hbtqBlRXJmaO8bpCNC75o4orZAjsTjpMNaXIwHMEJvLoFRZ3yhpl+3q8xRa28+Jy7e97xQKSc5XC9+R1QQdy5+fVjJMoFZqdWdOOZuW+Gy8QNQVrhx5nGqD0ae9mWXi/NEIN+a0cCTpooQBMoBojFkMvYXQtzscTYIG0BicsLbLPE3WJZtglIPS05Mr2ZwYM1cd4951wxOFVSGPmpWZeyKqjPRlLrUniBIR8D/k2x9/qiSpk5n54JrEVCQuy3LCbo5/oLKtcoiUsAoAWYPK13hwtQqpYOc3g6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=vENlfOPYJfmNR0KFWzxiDyyu3aO1FJp96hh9OLPSEcY=; b=bcQSPYUppEDYmtChIG+GrtTuxaECWWXI0rbvd1RP0p357IJzZ4JpeMp3e2pYV9tkvxNALobTcLcM82sn7fSYWdM1MopWImomcmTtd3mh6aHbvW3i1AfJt/hguugvfMyKBwsR8DakZxQdqmb8JQAvLRIqOcHhhfTyOxZfUTp0mBE= Received: from CH0PR13CA0040.namprd13.prod.outlook.com (2603:10b6:610:b2::15) by DS7PR12MB6240.namprd12.prod.outlook.com (2603:10b6:8:94::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:05:49 +0000 Received: from CH1PEPF0000AD7D.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::28) by CH0PR13CA0040.outlook.office365.com (2603:10b6:610:b2::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.12 via Frontend Transport; Tue, 10 Jun 2025 18:05:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD7D.mail.protection.outlook.com (10.167.244.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:05:49 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:05:41 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 30/37] x86/apic: Allow NMI to be injected from hypervisor for Secure AVIC Date: Tue, 10 Jun 2025 23:24:17 +0530 Message-ID: <20250610175424.209796-31-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7D:EE_|DS7PR12MB6240:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d407a2c-9510-425f-a2b1-08dda8496e46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ilLO1mVuTl2t2JVTpbjO25LcpAHTrEmQkuIyJ2RrUE+E5p8g5f5CyKgtefgT?= =?us-ascii?Q?XEL825iNxWbHLt+fBwmJEbzTaNPTb3L2Q7oCVKnQChdMykzH8eUc+jOhmGBP?= =?us-ascii?Q?moi4rLTdzod5Y+XFMcRjOrhQl4UzKueseN6gWeUN0rsaSoAVj/PwbukMUqEC?= =?us-ascii?Q?CPpuLenwUdZoyw00UEGlCduHBg+tqOKpHWv+3JRKFKbv78iHnbjQvnkYPhBa?= =?us-ascii?Q?PwzjC1BeYui1ZjN9tc6Bx7BUuVQt3eRVWZUJAHePoIM/PLU2Cq4rgAWn2fpK?= =?us-ascii?Q?vbTwKXZb2J95v04pbpH4vNrMzKEjazzwsyCa4xNcCgYbh0/PQm1iKazMDK7j?= =?us-ascii?Q?MArecxSYURyRRz4C7RD2JZ71xqekYX3AtUXhXA5hlLnmsOVsVfFOTYOGpHe3?= =?us-ascii?Q?8UdzEjwuaCX2T/Es+ABkQo921R5mcYrrdKWQCHzrU4zl5fSFYtuEbZUaId6/?= =?us-ascii?Q?bhRAtUM9M9xq1BjhkxC5KZFaMDq4Wfp6SVSWChEIX2yXpM/cqNU++8i9v8ij?= =?us-ascii?Q?NNPrNhkBac+0mTfA5T8gZkmDwkK7bJtVbj+h/kE0Dkwewbr2bNC9b8ublHYy?= =?us-ascii?Q?UhJkxYB3EINCWPM0nNMKn4+hw2yo/3TMxD1vIUBRc5D1XYwFuFSiDTgm5B8U?= =?us-ascii?Q?qQEq+CoVXOhD+tC7I6uGokhpplwG3f7AA8vIGXZ2EbjDJU0Of1DlOVGu/UHE?= =?us-ascii?Q?iKRChLdhaf1ZT42k417NiKHJTTsyZyy/1lJ6qDYGRcfGmsVrZvd4hDfNM1O5?= =?us-ascii?Q?BFAYB2nzd2oSxsn4zNFqWBK/8VJo/alZRNv319TYUGZPqUQDbU+0ImivYKJ2?= =?us-ascii?Q?PSTgxMhCF+f3ouGCnN1B8YIjwbM9qUufZryIDB8gn4p9p5s7PrWNMa9J5m1h?= =?us-ascii?Q?3Yddffg06JD2i5HCPJzo2TsEU5IRAcRIxXBi5R1bIq9krLd5IaHudB/yQ2pY?= =?us-ascii?Q?/T5jHZJd8fa9DGam3cQj9ao+rBKnOXpLDUI0dQ9DxSoGur9NEmlD9imbuVfm?= =?us-ascii?Q?1HIUdkLsLdHdtfxZDDfkqs1EdTBbAu52CMb8yC0fHqiBrUq3Z8vOHPfRb+IJ?= =?us-ascii?Q?b/b4MYyKUBjCwui7dZIZ0nMVRZuOZTj2tYuQTaMbbLFQMQ6jaB0iLF7D1DCL?= =?us-ascii?Q?RKi7NAvyLLFsDpt9N0vMcQYahzYA35mMB44Co+Zxa/nnHUPpQ32FT0Y0ywaA?= =?us-ascii?Q?V4/RhwGiRDwqfQHb5i49KH3kSs9whRqKgywogf6A8Jfq3U7nXjzJThLxFO2r?= =?us-ascii?Q?5/OISmi2KPDlgdZZLrtsozoXl+emrxfU6LcFAq+CA5VoKjLKxZoAG7fbs88D?= =?us-ascii?Q?xzyvb/Vchh/dtWn0YQ4TjqdCsowRGPsVLvyOtsrvQBkoamZzg9qIzJIdtuYF?= =?us-ascii?Q?pwoJ7jfPN/KqNg14ed3qrCzXZp/LGfrs0zkCQHf1vbdDFDarwoydLZWuc7vW?= =?us-ascii?Q?dvwvzlobT1RWGGPawel0diwBFtlV5iPS888JOMozyRSqF3JmeD4FwbeK/7dw?= =?us-ascii?Q?iD90L4kGV0puVswbbQI7T1GjrLQ5pNb2RpN+?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:05:49.2136 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3d407a2c-9510-425f-a2b1-08dda8496e46 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7D.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6240 Content-Type: text/plain; charset="utf-8" Secure AVIC requires "AllowedNmi" bit in the Secure AVIC Control MSR to be set for NMI to be injected from hypervisor. Set "AllowedNmi" bit in Secure AVIC Control MSR to allow NMI interrupts to be injected from hypervisor. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/include/asm/msr-index.h | 3 +++ arch/x86/kernel/apic/x2apic_savic.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-in= dex.h index f617c8365f18..7ef1173ef15e 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -701,6 +701,9 @@ #define MSR_AMD64_SNP_SECURE_AVIC BIT_ULL(MSR_AMD64_SNP_SECURE_AVIC_BIT) #define MSR_AMD64_SNP_RESV_BIT 19 #define MSR_AMD64_SNP_RESERVED_MASK GENMASK_ULL(63, MSR_AMD64_SNP_RESV_BIT) +#define MSR_AMD64_SECURE_AVIC_CONTROL 0xc0010138 +#define MSR_AMD64_SECURE_AVIC_ALLOWEDNMI_BIT 1 +#define MSR_AMD64_SECURE_AVIC_ALLOWEDNMI BIT_ULL(MSR_AMD64_SECURE_AVIC_ALL= OWEDNMI_BIT) #define MSR_AMD64_RMP_BASE 0xc0010132 #define MSR_AMD64_RMP_END 0xc0010133 #define MSR_AMD64_RMP_CFG 0xc0010136 diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 66fa4b8d76ef..583b57636f21 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -19,6 +19,11 @@ =20 static struct apic_page __percpu *apic_page __ro_after_init; =20 +static inline void savic_wr_control_msr(u64 val) +{ + native_wrmsr(MSR_AMD64_SECURE_AVIC_CONTROL, lower_32_bits(val), upper_32_= bits(val)); +} + static int savic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return x2apic_enabled() && cc_platform_has(CC_ATTR_SNP_SECURE_AVIC); @@ -330,6 +335,7 @@ static void savic_setup(void) res =3D savic_register_gpa(gpa); if (res !=3D ES_OK) snp_abort(); + savic_wr_control_msr(gpa | MSR_AMD64_SECURE_AVIC_ALLOWEDNMI); } =20 static int savic_probe(void) --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2066.outbound.protection.outlook.com [40.107.236.66]) (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 923791F1527; Tue, 10 Jun 2025 18:06:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578776; cv=fail; b=i82iAIq+qE7HyM6YNHkEBDpjdCkn1cvNPchfup8vzoUFOYIWlZ9jcudv3gqmuj6YZCsq3he042XGbK+3XRlQWYDYunofAcLfusQm29KQ2dGbe/YxMFV9Je2+Gm2hU0uHqtmcGXlnFR0SSLfReZ7k1KSPy15bmLJCqsRpTJA2OMQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578776; c=relaxed/simple; bh=2vCOVnrJgYzjHjr6QiCaWCYUG1YTrkxia9n8E7KBgf0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ne4AQc24uw9hoFGM8pxKXiCEbN/4hKnmwyLMmgBIjf+UiamIGzU29DqgC05nFAVn/I2j4wxLowyJiWInjDvEQZ3ItblclT3daHZpTDH0ETmJz+T4TixX62rOGsSb7t01R8kUBQluszf2E8ZcZsVjrWadSi4bPmu5OL9tB4jwOGY= 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=D+IvDQ69; arc=fail smtp.client-ip=40.107.236.66 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="D+IvDQ69" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n9PIMOUHEoamQe1vOGtkdH9+mTRnTpglrm8BG2zNGcwdm3zdOjpK0JbZO1EOCzJgU3cQNJmA7bY1ROCYPA47Y0koCJgETtWqfBagFt1010HGsguJoFWYedq9aKsdgeC8tScO9vRfkb+1QO/qy9410tEsWBTzcRy2pM4Hrj/zmgavP52pB+k0I9c0vECD7nSxnGeZJDfgEtjVFdRYKUpi0SNMeUiWr8lj1iSJxS/jAPm4OcB7pKBhp3Jw76YhMFY6y67e/IVTTCqiMJqvzLKuUZBdrGVcysfFD9/mnjo3JOUoq/6lyTQ91Yz5NfoFjpOXdEbX+xj+1bTgaDtbnCYf3g== 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=EmJPteNuWA7bMjljXgGlKQmzA9DE4fQ+S5NIue1jN6g=; b=MYa2Nm/wSPukeqaMoyzNzPPko93//hWzBsoG0kbBhTqIZVEgdFclu7lx8fddnRUYc9clPz70cIuu6ewvP+GCSZqeocq9FcljUE+ZOH1BRK/SfVx7pX8PSr5OFJbPKutTrcClvVKFQLIq84Bf/OVL+pj+T9REO7bhc1AeKFHZA+V6KE2oXmk5kyZlPqMRCtDpOHbh7DrMypFvm59AZZTFAIdXSG2xl2z/7NjPCW8GT1gsgp+xvLSk+ocy4+jd5na2WvprUwrP7L17Bfqt0sy6K/p+s1XA/LvfGLlN7dUmeL5eUuIgG4VYuX4MtSWkDblZfSgt1izk3FjUoL0MG0fkZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=EmJPteNuWA7bMjljXgGlKQmzA9DE4fQ+S5NIue1jN6g=; b=D+IvDQ69qSrVKdLrBTqSuBhKEbdhXSyPLNoc+RXMaxIbDkLT4tKrkqx6Gwc3L7NRaG6qqnYuI85HSjSA5pZNYcqmjBt1wPARk0VdOjkqxD9rebpgCA8N1sCg4SWlcoHmdNUkDTKOc25wCGUyYpa/5SS/sU7/WMmbOBsHs75tdC0= Received: from CH0PR03CA0357.namprd03.prod.outlook.com (2603:10b6:610:11a::6) by SA1PR12MB6970.namprd12.prod.outlook.com (2603:10b6:806:24d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.42; Tue, 10 Jun 2025 18:06:11 +0000 Received: from CH1PEPF0000AD82.namprd04.prod.outlook.com (2603:10b6:610:11a:cafe::f6) by CH0PR03CA0357.outlook.office365.com (2603:10b6:610:11a::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 18:06:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD82.mail.protection.outlook.com (10.167.244.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:06:10 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:06:02 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 31/37] x86/sev: Enable NMI support for Secure AVIC Date: Tue, 10 Jun 2025 23:24:18 +0530 Message-ID: <20250610175424.209796-32-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD82:EE_|SA1PR12MB6970:EE_ X-MS-Office365-Filtering-Correlation-Id: 386ec633-a835-43f1-99ab-08dda8497b26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GDUUlF007w3ifriqRZ7YbxYB9zPNrx4DgSPprWbuvVE7MZwXDrFmEgVjTGPT?= =?us-ascii?Q?6g4tiEShT79Vk0CwYpqYO/LQjLcqieoC5FkSSqBdDJFKChhDEKmoGzhBBUv5?= =?us-ascii?Q?PAue6IagBaL5gXnljg6zqVYjSa7oBKRAWY0M3NrCw1Ht4GtpKVs1DZrbJjl0?= =?us-ascii?Q?+iwfwnTXt5uPzdKJ/eqBULMXwaOC3X+S3Cky9RKFIj7WRDBoG5a6GLT32g41?= =?us-ascii?Q?ZRK9MjO4qjcJkC5a0TetCDRJ1TwhCos6iRciNaYTPafJsoo/4mugUn7u4oOc?= =?us-ascii?Q?pcBGqSJec+z2W5n81wuJxec3La/ApaNbGBjR4AaPHFM4fkJOvbWfhXXN56lW?= =?us-ascii?Q?qIdbDKUaq3Y3DWWk8sywaWUnqdGqXOQXmA06Wf/k/JWFhY3Do0fq4r/uQInb?= =?us-ascii?Q?I8VR8tJmf2wNtwPaw1/oy3xqHZm2AptfDVb2enld800d7/gJzuODJVwp3kI8?= =?us-ascii?Q?bMCZRaOsEJuMMGRh1OdT3FwsTncnRJGG9rZ77T3erZuTgF1mrhs0PwU48LAp?= =?us-ascii?Q?MZuxXqM4DnBk37NVuyM+vzpHLbz56UrTDlxPf8StzYsYqu/zCNWB8+uP/3Zy?= =?us-ascii?Q?vX9BrEIf8+trPVZS1nGyq2tvI1PUsjwBAVzTN5sMzmtQhgvxt774XxoN7W4t?= =?us-ascii?Q?oGakF+tcmpc3LANozn16LlrHx5SuAuykW6wBjYs9arjuV3zjClU8wBbiZd5V?= =?us-ascii?Q?JfKNmzy038rcGUa6WTgFO3F7T2wJW1aI0nIeA2Wo9+JkY0ZZuqhc5BTU8fwJ?= =?us-ascii?Q?poQvqgKjsWyqVGKtG6PkCkExBgtqO+139Pz7ue9hNwhv5y8S8rzA1eaT6kOI?= =?us-ascii?Q?Y+D4ME1hTo0Wv0Bw2kzYUb7059yfgYeNe+RGfwgZ9sQojUg+uk9oOApW7mEa?= =?us-ascii?Q?3mbFReA3+cqfZ1wf9AN6xFUvcTqneiSWqeiBwOoDy+jmrR0J/VZzJQBxXN/C?= =?us-ascii?Q?dY0Y6y6t2lPcJVRz+LoacNfcK+OPk9mAKZAQS/XIHiLKMpf5PJx9cvL6SBMt?= =?us-ascii?Q?6f3BwYv5/6OVb64XHsc5t/PEC5in6kIbPCH1kv3WmRc0EQ8rRkNW3ImtDUmP?= =?us-ascii?Q?YKiWbYkxYOgt0b2toENm6ISjUAIgH1063sEXQ5fnCkm9GAc+/KsibvLgRxUL?= =?us-ascii?Q?7+1HXzV6v+9I6Mziji2WM9ds1YhDaE7/S64bd9SBvPdrlyr4czNQ8btpYsOa?= =?us-ascii?Q?y+eslw/NhtBdZtfnfeHpxzxRdl2vffsW52dZcMS28xpKd37OGMTzlQwhGO18?= =?us-ascii?Q?ASL7/ouiI1dL2VJKojhbW6C7Ev16tLmdZeJC0g9q3EvYUFq+o7ICh9FVGNJT?= =?us-ascii?Q?VYEKa1PRX5LODv6NYKIxN7+aCdBsyZBHJU4Awvw1QbwMqWMkaD2XdJ1bPNIq?= =?us-ascii?Q?gdxMwfFyBwUSiWVUrTwHZV7RXnjX6qrvUm4lAMFzdib0LsO2FQls1DRCT/Pt?= =?us-ascii?Q?sg1LX0tzmJR5vjeeZb9o7dXYVMXRFeUyBcjTSLY4wAacvPuE31p/OyUy5zxi?= =?us-ascii?Q?S+5NwnIZaBSdyc73M0sKn89ew+xesEe9+oNd?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:06:10.8130 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 386ec633-a835-43f1-99ab-08dda8497b26 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD82.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6970 Content-Type: text/plain; charset="utf-8" From: Kishon Vijay Abraham I Now that support to send NMI IPI and support to inject NMI from the hypervisor has been added, set V_NMI_ENABLE in VINTR_CTRL field of VMSA to enable NMI for Secure AVIC guests. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/coco/sev/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 7ff4faf94ef3..50166c16428a 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -952,7 +952,7 @@ static int wakeup_cpu_via_vmgexit(u32 apic_id, unsigned= long start_ip, unsigned vmsa->x87_fcw =3D AP_INIT_X87_FCW_DEFAULT; =20 if (cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) - vmsa->vintr_ctrl |=3D V_GIF_MASK; + vmsa->vintr_ctrl |=3D (V_GIF_MASK | V_NMI_ENABLE_MASK); =20 /* SVME must be set. */ vmsa->efer =3D EFER_SVME; --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2053.outbound.protection.outlook.com [40.107.220.53]) (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 DD7AA186284; Tue, 10 Jun 2025 18:06:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578802; cv=fail; b=e04bmX/IVAX+Cg62zV0+weFTZUCOJQrWhVRR/CiLJGN01yTGfedO+d4q2UI/+aw2+XHIo8me4lp+60TKE6ZCPx0/8EaodPzdJhhsmkYsxK7VAEV5HZd24mf1zhYzBAb5Xr3fxVrS53JkUGxT6qFpPorKVpaycXwxPU6QZ+gO7Uc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578802; c=relaxed/simple; bh=idJqmeciD+PkJvdJ+lD0xSEiOQlBabv13H+p8mMyxyg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OUUa67cOZBiC3qP80H3mTi+8jwaqHgJa0mo4/zw+ClZM1GhxPx1pu6KPt6ivhPlvH93lbDjjbp5StKC4vfDwKYUwCCqu/Qu5CfI8t7ftsfiSaj2e1E4eqQuff54eADoeBZqNgA22qOj1DFPpP1Pg5+EzRmLHoPX7PMAKezQyDoc= 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=SpojULxa; arc=fail smtp.client-ip=40.107.220.53 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="SpojULxa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VO3VvckoBqOfbxKzhA8I1AHoC2KuRIdNlEMZCqTQltuVs3OZRR8Efhe8/DFgze7oP575UtEEGMKkPAXTay9NsyRD5+GGtu3IYUD3WvCluT18pIF+msOuW5+oDrqjvqwF5dPML1PM8VWynmZb4vlXlGcDtQdtHDrEIlqnTNNNwQLLmKR/gVDh6ID+wHMjhIuhxD3BDmNbkJj7W+WPaogP05IAzpnhgzt3C+rPfI30EQ8aF6sSYPs4NQ8msL13TOdtnlwv4MfeDCzQ2gNxBLz//eujy4S9/8u8M7kmWO7NsXHpVy3frsXBWGDxSySxDyXni+OswzZS12v5IENSIFFi4A== 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=fXFukSqAwByhtXEbmS10eUSXrdXsNXNrWLkroMdZhoQ=; b=dRdX+rGAqarIw+F/2mRX/bnx3CvVSm6sQ30Btg1MY8Dh5EQPYH97DYi+BgjIFZnCE3UCv7ZAnl2jO65UQDjbWEmpCe21h9FFsdevtHo4bkS2cVasgHvEZTJbvarh+EVn+CvVVECR5Tj0XS8QLf42aIgTQBvPZtRID4FkYx6vCf2DpNhIxIoBJ7ChF7YxGhK+MNydhfhsr3f03qQcMZeyLyJVgq/vUq3+goRAQTTay3h5PE+TZjmrCu3enjfP5gSgxa+G7EF+BnkwiGUujvz76njhVpWqlxjn4Qoab3Yvv61GCRB/39wYj3YGCR98hV72RZP9H2rBNwq+1OOuyjE26w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=fXFukSqAwByhtXEbmS10eUSXrdXsNXNrWLkroMdZhoQ=; b=SpojULxax+4HGVms2tOfumbtqPKKJGH1sRjInB2B69QhZM2WFOijbRizCH1ofeTa5YvAZWwGMbGYwjTK6VS01Rz+UJ9D81ETSK8ixOvvfJRgzwzcIbDKOJIX7m67TjwMGsg7AgZieQKvtRYMM1SkFI/4PvOfbwaOyC/uByXZ7k8= Received: from MW4PR04CA0309.namprd04.prod.outlook.com (2603:10b6:303:82::14) by DS0PR12MB8574.namprd12.prod.outlook.com (2603:10b6:8:166::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8813.32; Tue, 10 Jun 2025 18:06:38 +0000 Received: from SJ1PEPF00001CDF.namprd05.prod.outlook.com (2603:10b6:303:82:cafe::c2) by MW4PR04CA0309.outlook.office365.com (2603:10b6:303:82::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 18:06:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ1PEPF00001CDF.mail.protection.outlook.com (10.167.242.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:06:37 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:06:24 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 32/37] x86/apic: Read and write LVT* APIC registers from HV for SAVIC guests Date: Tue, 10 Jun 2025 23:24:19 +0530 Message-ID: <20250610175424.209796-33-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CDF:EE_|DS0PR12MB8574:EE_ X-MS-Office365-Filtering-Correlation-Id: d09326e9-a417-4944-1fe0-08dda8498b4b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A9QEp9tUHs6jnpD/FrnNE3Kn5f5tDmb0g7hEffrCQFLeWbxG+oNreSLx6R78?= =?us-ascii?Q?hJ+T25JSn31hEVnIMGGtZftfaQGpqk1v/nhhNlSoEcUGb/uUkeS/EP1nnjdD?= =?us-ascii?Q?rcFdLwxG1i8cuZYHFttX4hNJ3LoDAt1AFNALKceCzs5PtU3twWILCKQoSB4S?= =?us-ascii?Q?whEddBDx7spnc6ydGZ7B97Mqg1qpbnRlgD6Hk820oi5V4GTK8Ehod/dFmXAH?= =?us-ascii?Q?jkquiWIvw9meqHoQi6gb55hyxs2ueUieyNKkQ92p7yBVWq8UZHVvmi2hfMCM?= =?us-ascii?Q?+n68jmawO2HUMWFGKD5diQRZfv1/n457rJH9LXYVn840/SldTqGSK+SvmtGi?= =?us-ascii?Q?iY+xgYOYPdngboMgn3g7QZuHcx3SkJEBKaQ5t/Y6XRMS29ZFjG4nxjZ1qjmY?= =?us-ascii?Q?QLJHGmYfo//EVmQSXEWeouCg4xh/jjKNB15ZnCVtCOYnnwQfo0kwZFpAExPf?= =?us-ascii?Q?YuDBnvdI3FKL/ODmihlrnWYvVoyig/1ibjP01IovD9pZjOzodU6QJ7KYygIE?= =?us-ascii?Q?hCsvw4J7V2puStBgb0BZ2XrIPX3eZ3w5Wk0Qr2ag7WpJbme4vJPPwyhzS6Ot?= =?us-ascii?Q?AYiSINcjwtJUC6mMRPeoqqO9ubN9+pRYxj1l/Qhi1T/npKwSMnYTNkG0WvtN?= =?us-ascii?Q?hjWh8DcXS2Xt9EmkKsl3kr/cuXgvdkKTtuZT9Mgi/mDOvoak2HPARFZthJw5?= =?us-ascii?Q?jvslVeFQfdOtc9qHUveeynfmOn8nXvcxhR6fO8KW7kvEqWlmBRyHEPIOcG6V?= =?us-ascii?Q?nrcFWtXFmvL2zqBpMvbFSbhw3Jqt5eoQPmhqxRkEc2Qe7qeaqLC0aRYBapev?= =?us-ascii?Q?xZF4nlghAYprXU2X57QPZQ4zqr46yyw+3NsRFhU+BJkcsKTAFRTvQ4+rVUbj?= =?us-ascii?Q?C9hs88YTKbeGFSd/8KpEvKijR4/kzpQ4w/SQKP9FngVgkMwm22lH+9S5sst7?= =?us-ascii?Q?mmqUfnmGwpxGsi4koJMk9G4pXEtKDMzYLSObibEBnXg9kzSn2T/HDA03EWGh?= =?us-ascii?Q?ooE0XEpAdpRHnCyLTuTmJMt0dK5sDkr2SFdsrRog6vAFWQXT86hnKvPea/Og?= =?us-ascii?Q?LRbBhLCzwDgb9xqLlkHuYOIUmibFdJbZIpBotWblTpSknR0mdOHn799M3Lby?= =?us-ascii?Q?mwi0ZYkBvcVhxTKX36W18xh1KKCIBoZUd/HcDL0BTqlgOnvrdvd3shxcqOXD?= =?us-ascii?Q?VktDr4g1SZTbx0H1Jv4qCvD5F9p27l2uPsXKRgK2Vh2hot8XYQgauWXocuVW?= =?us-ascii?Q?Gb4BjmgPIIv3i+vg24JTiFgwjgjoMkJ7Epfz7467fGyOF3x8KjkiQYJkxgnE?= =?us-ascii?Q?1E9//EwmmtIldZM7q7ZJoKOcDiH6sdYIgMHPZpOUAhL2Y4AIAzqqDBdxggGw?= =?us-ascii?Q?Qm5r8p69kLuUBsE95UXVlsghe1YLT2SRMQwSsZjjg+nypSCbh2DSi1z6CL18?= =?us-ascii?Q?NGwDnGSMJRoztZMpeLcLTg91dixPUf4gFEdI14vDaFyAZyqNmOFmPSCu9JYb?= =?us-ascii?Q?Gswl3DEH6PX1xxloHPnwizJdMfXj/yQphs3/?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:06:37.8243 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d09326e9-a417-4944-1fe0-08dda8498b4b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CDF.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8574 Content-Type: text/plain; charset="utf-8" Hypervisor need information about the current state of LVT registers for device emulation and NMI. So, forward reads and write of these registers to the hypervisor for Secure AVIC enabled guests. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/kernel/apic/x2apic_savic.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 583b57636f21..0fecc295874e 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -69,6 +69,11 @@ static u32 savic_read(u32 reg) case APIC_TMICT: case APIC_TMCCT: case APIC_TDCR: + case APIC_LVTTHMR: + case APIC_LVTPC: + case APIC_LVT0: + case APIC_LVT1: + case APIC_LVTERR: return savic_ghcb_msr_read(reg); case APIC_ID: case APIC_LVR: @@ -78,11 +83,6 @@ static u32 savic_read(u32 reg) case APIC_LDR: case APIC_SPIV: case APIC_ESR: - case APIC_LVTTHMR: - case APIC_LVTPC: - case APIC_LVT0: - case APIC_LVT1: - case APIC_LVTERR: case APIC_EFEAT: case APIC_ECTRL: case APIC_SEOI: @@ -204,18 +204,18 @@ static void savic_write(u32 reg, u32 data) case APIC_LVTT: case APIC_TMICT: case APIC_TDCR: - savic_ghcb_msr_write(reg, data); - break; case APIC_LVT0: case APIC_LVT1: + case APIC_LVTTHMR: + case APIC_LVTPC: + case APIC_LVTERR: + savic_ghcb_msr_write(reg, data); + break; case APIC_TASKPRI: case APIC_EOI: case APIC_SPIV: case SAVIC_NMI_REQ: case APIC_ESR: - case APIC_LVTTHMR: - case APIC_LVTPC: - case APIC_LVTERR: case APIC_ECTRL: case APIC_SEOI: case APIC_IER: --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2040.outbound.protection.outlook.com [40.107.93.40]) (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 8E47A15C0; Tue, 10 Jun 2025 18:07:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578822; cv=fail; b=AfJZLrnVwL6TZGZ9NAtdR7XEJSxA9aB+htx4ABSZmpwTVJlf/LGh3aMWZoaTAP33/CiY1+iV1m4zfrH1CfuHd9WLhPyjS6OIsekNlXvdpZeLqym5E89txkYp803mndp+APXEK8QaJi2l/fcXOr1rkmy6SnJZL/hCnOT2hHnm4hM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578822; c=relaxed/simple; bh=xNWvqDY6thVAQ3uZ6ASMm3HI4ma7AY6PRjRbK8gPDZA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=j9B8pjEMxYVUAfVhWiOB7zlm5IbDEqma7X+QSXwXgTJylmYK+6/KNCYIdr6AVprAhJEOeUoczDNnG3UWRZc8ZhGCwOB4Fen6cuI12O8F8FkQhCnrYJWS/XBF9U1NB+8HOOSVWKZEYOm5W413iISZzhJXsPNis7b67M4y7360zrY= 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=pYkar1KM; arc=fail smtp.client-ip=40.107.93.40 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="pYkar1KM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GDeD8ZTrM4su+3EU+vODlz/9A4vLKstcsP4DU3u7eDVqGHlpiET4JA0P40fRgEGimr3Sx5TFYZMKDdgBmrsq6pC/dRzM8d4XED/6SmbOOV8jBNecQnglRPNYRYmzcSheNJcYGpJE9nfemmq2hKmY35hB3oboHCQ99HB6N/OiSxGanu/KfBuBm1/41QvwHzymCcklNax/x//5JUQEl9NT/Bp09yTkFRToDaCSsBtG199FjsPwBZ4WIvmBSG4NtOSEmr9tRLLWv3m4MXCVBkOJe2x0+mBFoWtf5ULoaq6xxVwSPwOIzoiivWCJ9li53CbIsQIfU2tReFWtbNFygz30uw== 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=p9VdstuT+dVr5Lcx+m5rEZ4E1FYwdvmGQKxb8wkE8H4=; b=k6D9n5/5OjbU6gl0SzJjDxMParBJZaSkB+2vLwCGaQnfvrh8GaQHZnCNJZR8swMtX8l2kGRv4wwAv04vyGnL0IEOMU3yS1QWBdpbe7ClMrZLurM348CERCGqnRHW084V9NEC6X2sy9EofwL/QJmMCcvgjVFN4qaxEcfRv1triMRKEtW9cdCh001zRY5iuuJ8EQuF3MCb+djaiLyDAlbWMLP0VtvffTMB7KmQT+IZeqe5S/nggCcnuD3PBGNH+WPD5U85Rr7/PNe/bbBub7w1tUbGKVr8PSQPIP/d/sYUdJnWmFYJtt17+q3nhu/qGn0FKa4VbG9mS8F9Kh1CARhCoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=p9VdstuT+dVr5Lcx+m5rEZ4E1FYwdvmGQKxb8wkE8H4=; b=pYkar1KMyVAoooqRwgkqHSgHR5iR2lAKdnkc8CNqR/PzuQHyaZIFTLt2JnD1gBRXB+S92WNxRRwFm8dSjVDr79ezIc2Z2LAGgKIzmyYPAp79lcBI30m6Uiyj1vQE3rK2D0YmMbZE8My0dIgKz3N0c5jEzdmYjgOYmOGjBYa9fvA= Received: from CH5P222CA0011.NAMP222.PROD.OUTLOOK.COM (2603:10b6:610:1ee::26) by PH7PR12MB6540.namprd12.prod.outlook.com (2603:10b6:510:213::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:06:54 +0000 Received: from CH1PEPF0000AD83.namprd04.prod.outlook.com (2603:10b6:610:1ee:cafe::f1) by CH5P222CA0011.outlook.office365.com (2603:10b6:610:1ee::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.19 via Frontend Transport; Tue, 10 Jun 2025 18:06:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD83.mail.protection.outlook.com (10.167.244.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:06:54 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:06:45 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 33/37] x86/apic: Handle EOI writes for Secure AVIC guests Date: Tue, 10 Jun 2025 23:24:20 +0530 Message-ID: <20250610175424.209796-34-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD83:EE_|PH7PR12MB6540:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c7dcfa9-da4e-4c40-dfcb-08dda849951e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?z2TW8ei+kDdCVBrYeIjDtrYEo7+qO7zN0C8q86ZCtIBdqMkYy1lnJX+C4VJ8?= =?us-ascii?Q?UvaJGgNIqrYSeTph4H6S0h/+MUDumwg4O+NEKGTfctquGONV3d9TZi70u6jH?= =?us-ascii?Q?/gXD/rYKzqMcUoDxUbPy2b5jiXqlmuSkxufaP7DXQzE+XpmOnsnF+lqSBntB?= =?us-ascii?Q?gZsBoLinuMyo+uK51vIg1KrmUCzpzCB2kk47VcrhI7kl8I08dcqJu/K46mQ5?= =?us-ascii?Q?YBOs2BE8htDOO/7MkNbFYEHhdKK3G/L65rrDmu6XGbfmndhKb0K+yTn9ALPU?= =?us-ascii?Q?6jcwaMfHQ9+j5g8A3dzcyeEUcopT4YxWfl3Do8VtjYyZOMMtPFQV/Zo3EfYZ?= =?us-ascii?Q?ZxgBpDZYiaQAcMkfLsBUMo7sE6Sf9UOwixw69Ot+u4ssYtVN0nlaEm2NaKgU?= =?us-ascii?Q?LC5lwUHe5D9Q6IG89bKM/6M2OWilJV1K3TKWZKCxsAlMC6KnRXGOgthkRju3?= =?us-ascii?Q?Lb4afxFUQlsHdrNnalkfmNgzUzdapVxPwUwphD9GtyuIJL06JuEBOT774XMo?= =?us-ascii?Q?UYcpkhpQMxsPlfuE7Dg7PSTUNswiW7Ee70OkdGj+kd+4+AEkn6XA+oFRugbU?= =?us-ascii?Q?uNjycdgDe2bnMdyJLXj4Y+LqDNuEQhAtqgGwazWnZa4sxLgbduEibrZGg9aU?= =?us-ascii?Q?AaOfpyhXhYioKTcNl5uItZrifvj5sNfeRKR/ZH0ixpYmpfl57nvW3la/P99n?= =?us-ascii?Q?xKTbf6WDuF6GajwH3vG3RBBdAmRzhEX+WNjqBcgXkIGWR6kZhLVHdJHeqi1O?= =?us-ascii?Q?jY+9WyV7H3RnavSk3CRUQzY8cm0/h7Qr0oOQNHFp+tqFEx/s/PjTLzyz+Cy7?= =?us-ascii?Q?HnwxmRZ/Nub66MLYmOzyq83Lvl3XXKuD4yyiKr+1oylpHJpSXCRWseOO4FzY?= =?us-ascii?Q?iEdoRKT4gTITC3ZRDRob6jm/wL//0KBCwUX9ebeiz3jfRtsmpynFjAIaf1Hl?= =?us-ascii?Q?zmeAv7oPNrbRTfpG8+oJv7MXa6EetwxO+I4yYckHDSII8HrfYvey9kk9G53B?= =?us-ascii?Q?CHw4fcrywmIByfZZXk5pu3DpnpVTFSr0P5oLfB582tjVCrWpP5/ApaNPn4GW?= =?us-ascii?Q?f67V0f7pSOCtwSkZ8m8e7rQ2cFM832r/RVkVkH94iVoZlrTkrNzoWNomQPUL?= =?us-ascii?Q?tqYwLNZBhMObxY/+axWNH0rL/CRDdbVxRLNqAnlbyajVj6SjLEeHcppyhqdd?= =?us-ascii?Q?gbr4pjDO8hfVCMH+ZAr/cUkWZ6SsxhIKcYdpMhrtpbCgxfs0MHMCN5aGzKt/?= =?us-ascii?Q?AfKzKQLfqNcIbJj6mWgey0UL9tHz2H0twd92lI42RtR/0hcBb0vPxAnxEPap?= =?us-ascii?Q?Vi5wXwvplzU+dOsyQ2o1xIcAgeTjpDDaIvh+ETEJPj6rxea9WKCYuBaC/ku9?= =?us-ascii?Q?vp7QTLQMt4BWE5uR2KQYeK7y8Iruw4tRqPdvpBI33rPNp6LCrz5G1UV9VZkn?= =?us-ascii?Q?kD/Exd12JxrpkUxtvS8qrZA4Oa8f2hzvLYQTbKfD6p/G8U6K3W7PnWJfh5FH?= =?us-ascii?Q?eKyWehH/1tGqEZ8Hf5sFUeUPSl+HEez8rjwp?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:06:54.3838 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c7dcfa9-da4e-4c40-dfcb-08dda849951e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD83.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6540 Content-Type: text/plain; charset="utf-8" Secure AVIC accelerates guest's EOI msr writes for edge-triggered interrupts. For level-triggered interrupts, EOI msr writes trigger VC exception with SVM_EXIT_AVIC_UNACCELERATED_ACCESS error code. To complete EOI handling, the VC exception handler would need to trigger a GHCB protocol MSR write event to notify the hypervisor about completion of the level-triggered interrupt. Hypervisor notification is required for cases like emulated IOAPIC, to complete and clear interrupt in the IOAPIC's interrupt state. However, VC exception handling adds extra performance overhead for APIC register writes. In addition, for Secure AVIC, some unaccelerated APIC register msr writes are trapped, whereas others are faulted. This results in additional complexity in VC exception handling for unacclerated APIC msr accesses. So, directly do a GHCB protocol based APIC EOI msr write from apic->eoi() callback for level-triggered interrupts. Use wrmsr for edge-triggered interrupts, so that hardware re-evaluates any pending interrupt which can be delivered to guest vCPU. For level- triggered interrupts, re-evaluation happens on return from VMGEXIT corresponding to the GHCB event for APIC EOI msr write. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/kernel/apic/x2apic_savic.c | 35 ++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 0fecc295874e..a527d7e4477c 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -300,6 +300,39 @@ static void savic_update_vector(unsigned int cpu, unsi= gned int vector, bool set) update_vector(cpu, SAVIC_ALLOWED_IRR, vector, set); } =20 +static void savic_eoi(void) +{ + unsigned int cpu; + void *bitmap; + int vec; + + cpu =3D raw_smp_processor_id(); + bitmap =3D get_reg_bitmap(cpu, APIC_ISR); + vec =3D apic_find_highest_vector(bitmap); + if (WARN_ONCE(vec =3D=3D -1, "EOI write while no active interrupt in APIC= _ISR")) + return; + + bitmap =3D get_reg_bitmap(cpu, APIC_TMR); + + /* Is level-triggered interrupt? */ + if (apic_test_vector(vec, bitmap)) { + update_vector(cpu, APIC_ISR, vec, false); + /* + * Propagate the EOI write to hv for level-triggered interrupts. + * Return to guest from GHCB protocol event takes care of + * re-evaluating interrupt state. + */ + savic_ghcb_msr_write(APIC_EOI, 0); + } else { + /* + * Hardware clears APIC_ISR and re-evaluates the interrupt state + * to determine if there is any pending interrupt which can be + * delivered to CPU. + */ + native_apic_msr_eoi(); + } +} + static void init_apic_page(struct apic_page *ap) { u32 apic_id; @@ -386,7 +419,7 @@ static struct apic apic_x2apic_savic __ro_after_init = =3D { =20 .read =3D savic_read, .write =3D savic_write, - .eoi =3D native_apic_msr_eoi, + .eoi =3D savic_eoi, .icr_read =3D native_x2apic_icr_read, .icr_write =3D savic_icr_write, =20 --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2065.outbound.protection.outlook.com [40.107.236.65]) (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 0CA4B236424; Tue, 10 Jun 2025 18:07:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578840; cv=fail; b=E3NP8/q0zDcW+s4MWP0QtUHMfFZ8zngz5f9R6qJvgz6XgzzvDN6aycHgnwq+R/Rt+YA+tHiTg5liy+rLtrwIqTmehI4XKlpvD/WVQg1zH5N7glEosCfnKknkT2kbv+hXR+3HG/XQu5KWYxLkZbMPe5/sjtoN8YD9TyxgEV7jRfc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578840; c=relaxed/simple; bh=mhU5Um2FLqJc+2ttzQyDHE4Jq/S+AFkz7oC94YBB3qU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dRkeGnEpR+aFR0wBSkIkdE9LIAbB48X0+Y7i+lXV86aA//iO1IKmRyueiejY0Hzoa55H2XYc/o/oWNAbdAFTz4+JKrmqK9eJh15ZXKyFvRexo6JAM/DMeYkDVT+bxysobh3SrYn/f+v1LUvELZIn6ivD6GX7WiZs1Dma1Q4zuy0= 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=nqVuFtbS; arc=fail smtp.client-ip=40.107.236.65 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="nqVuFtbS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VV5c5y97xKyHJqUa5C/9cfdYbHEGV64QR468lsSWGBdCz09+pE9WFH1HGatX7rPoob011CIVE8tv5rGFtmO61rLCrsiyVntZGfxglgWaU5QERMqO1wpKoKcnxgsMMDJd8kQKWp0BqDw0Ys1KLttly/jqRaBCr415LODz+28AbWXCKkCsWKMS4ghrnmJWG9jvB5DxKn9S+B/Rs6vC1U7x2+MinqQDcyc0LENI/Ht77VNUiNuYGU+jip/ucxelr9JpcrvSreYpkVbwrYayHkFtpRSuOUxj6TtrVB9Kb9pNaLgj0oGaF+JXxx9JU9cHRHst69yWlTKGwgidXs31JlGjmg== 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=c9fdZs53FOX6ui2E85Fu3mMwOonVibiUIIkzE/qU/rw=; b=iw8UMA+wOzMGhcRXB9w02fwphIZArXRGJdHs5C9o/ScSONhSh32XNysaLP8fWHZCjHtJkIVIkWi0T6QVBNgVcaKvekZyY4SW91pUnRpFcRZ3EptGwMJBVgSNCJ7hYzXAT/3j8rnm9NE7OiGI3EuyVlLpZYGzQFeOgVmuRLtLGdTQVtuqQQoP5Ry6x/xfQgm3h6b+ektse7BMctU6KFdRRHaYDqNXIQpb8bSEeYjDACz/2ZxYI5p5QJzNsFbMkuE1Do/n5NmL0BLAuLZdWnyQfKJDb3UeIyN1rODtCccoakJVs1c6Tbz0sI6W8d87EspX9aDfHRcxWy3/NlIaafFDgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=c9fdZs53FOX6ui2E85Fu3mMwOonVibiUIIkzE/qU/rw=; b=nqVuFtbSk+Umz/PlPd9QF53qrh2NiC7IQpkxjJbURVtTMo+FeupdH/W/hkxZLXxtJD8C9Yniw3LojGB2s/BkhjBax9eCU6PJ/Qo0NkIZbOwoDRdKnU9ioZfsZYVcIbSrzKX4aCArLLQ8hPBnX1hfc3d7dT4wrc3gZqszTKcln3g= Received: from CH0PR03CA0229.namprd03.prod.outlook.com (2603:10b6:610:e7::24) by DS4PR12MB9796.namprd12.prod.outlook.com (2603:10b6:8:2a2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Tue, 10 Jun 2025 18:07:16 +0000 Received: from CH1PEPF0000AD80.namprd04.prod.outlook.com (2603:10b6:610:e7:cafe::62) by CH0PR03CA0229.outlook.office365.com (2603:10b6:610:e7::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 18:07:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD80.mail.protection.outlook.com (10.167.244.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:07:16 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:07:07 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 34/37] x86/apic: Add kexec support for Secure AVIC Date: Tue, 10 Jun 2025 23:24:21 +0530 Message-ID: <20250610175424.209796-35-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD80:EE_|DS4PR12MB9796:EE_ X-MS-Office365-Filtering-Correlation-Id: f3124923-d515-48e6-4673-08dda849a21d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xye3WTXb4Ef6sCnR7u6VVNe4hPuVu8XExvABmGaJLx3N5Jo8qdSXwgUzSwaE?= =?us-ascii?Q?+mcsVkayGSc0Y2JHIMpSmhg5H8A7FQZ0zxgs7Gxa7pF97/x32RrvXMk67xbP?= =?us-ascii?Q?ZqioRQ/A7ZkWq0OYbLd88z9S+v/rx9RQWd1yk/uGHm6n4SodIq4occypDyOQ?= =?us-ascii?Q?CDLblHe3LZz2IM+/ZexBHQweb8pT1SyuMaXErAKb8851kmMeN17NrT1r2L0t?= =?us-ascii?Q?EUaEocCNmd4JWGAvcU0jdBjJmR3A/IrREyWZQlu1s61ZJo5ZRXFnIZi6XNBF?= =?us-ascii?Q?G4sSuXgCx28mXrHNizF8uiux22TO5UPVnRfn+MqUzbxHkj156LfNkPaNFBCo?= =?us-ascii?Q?sxGU7u6BCpTk7xgNOqMzhi/8vAKKT9N7miAOIcg3UgNU3TbjyTolEbB/Bux3?= =?us-ascii?Q?X3BOLm1Uit/a9q0PN3M0jVE1Mr+83/W096/1LDndEof7dXM9NcW+gJxuxEev?= =?us-ascii?Q?jnkTklTQ0OESbFN9NbFMDcTudJsTtAEPtKJD+uzFlfNdD9g9iVq/ZQJuzKeE?= =?us-ascii?Q?FTEzgMBxH13wiPaC8dyp7SWWQ4i3FCgR1GTuYGdvWtP8vmlh/fDW0xFQss5a?= =?us-ascii?Q?f5Ro4O0NI2Vf6zpXuWY/bGIZHQkF/Wq/ZNYKmaGqzhmXBsqnXQsDPmicYE60?= =?us-ascii?Q?QFGt5d53blEfUyYUTwQM+fxziPXcqRM/BooDwUDhhyavAn7+ge+7qazQp6PB?= =?us-ascii?Q?UQfYQ6NevIsE8Udrrx7baTACSz4eWkfHAJVxku7HTqnoLbHOAw3WKvetD/7F?= =?us-ascii?Q?fWvz84uDUL4aRJ/Ktu9pWyAlvi2KMq90eS+KP7d90Mm5FdcLnTohqtsen7IT?= =?us-ascii?Q?oJDtWuS3hseYL/OQWayZWdplrSa3lh+2LGQHiDIzYKqJ/vAN9mmuxMQB0Bd7?= =?us-ascii?Q?R6x/tzLCgHVl4p9CTFf0d4BUtADXpglwS/OGYIbN/UYmZphpobNgyF1UM2Tr?= =?us-ascii?Q?tjujoc23M7JSDCBWwjvTX5yZ2hqyhoit0Q5LO+A4oA444HuKQS0UOhMXOh+R?= =?us-ascii?Q?tjrIm98B5/xmxm3jadUtadi3uU2UkRkf2pXXvso4aVO//U0j3TLDshXpIYfw?= =?us-ascii?Q?QJ/n/XIKwbNJmWe9073XBu/A0EiEtqS+eAO1pj+GHV76igYSAglCY5ioGPUu?= =?us-ascii?Q?G2lEctDwz8lGdJD6SSZte6DIlvo24WAEH8WBNoxejrjC+uvN1sOFwmiuqgII?= =?us-ascii?Q?ORrFVFUfq4cab7VNZovSYFNzRNG21rsOLwGZQJVc/ybSo2mm4n8PP3rufFDs?= =?us-ascii?Q?4uopXm/wQWBkDGOD52G2VSOGNAUeKcMR++hO6ucoeq5FTA97zz4yswGpVd91?= =?us-ascii?Q?fZwP+CCytbWK78CROsOY7kbKqc3pRmjYiLC8XOsllIsN8MlJEmmZy4QYccfx?= =?us-ascii?Q?zkuQHXS20S34ya0jxaD9TPU6UkLxzTKJ7hKowYfo+2FzU+l6fFGBJqcl0nOj?= =?us-ascii?Q?9YO6s3o65fXOMIB9kDrgI5eK2H1AqoCbaO42V/y/8Ja81D5HRLWcF4PcAPmP?= =?us-ascii?Q?fFbRE02OZ0nGTtgK+wFGUHp3nFojc42V8Qyv?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:07:16.1829 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3124923-d515-48e6-4673-08dda849a21d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD80.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9796 Content-Type: text/plain; charset="utf-8" Add a apic->teardown() callback to disable Secure AVIC before rebooting into the new kernel. This ensures that the new kernel does not access the old APIC backing page which was allocated by the previous kernel. Such accesses can happen if there are any APIC accesses done during guest boot before Secure AVIC driver probe is done by the new kernel (as Secure AVIC would have remained enabled in the Secure AVIC control msr). Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/coco/sev/core.c | 23 +++++++++++++++++++++++ arch/x86/include/asm/apic.h | 1 + arch/x86/include/asm/sev.h | 2 ++ arch/x86/kernel/apic/apic.c | 3 +++ arch/x86/kernel/apic/x2apic_savic.c | 8 ++++++++ 5 files changed, 37 insertions(+) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 50166c16428a..3afafcc14541 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1151,6 +1151,29 @@ enum es_result savic_register_gpa(u64 gpa) return res; } =20 +enum es_result savic_unregister_gpa(u64 *gpa) +{ + struct ghcb_state state; + struct es_em_ctxt ctxt; + enum es_result res; + struct ghcb *ghcb; + + guard(irqsave)(); + + ghcb =3D __sev_get_ghcb(&state); + vc_ghcb_invalidate(ghcb); + + ghcb_set_rax(ghcb, SVM_VMGEXIT_SAVIC_SELF_GPA); + res =3D sev_es_ghcb_hv_call(ghcb, &ctxt, SVM_VMGEXIT_SAVIC, + SVM_VMGEXIT_SAVIC_UNREGISTER_GPA, 0); + if (gpa && res =3D=3D ES_OK) + *gpa =3D ghcb->save.rbx; + + __sev_put_ghcb(&state); + + return res; +} + static void snp_register_per_cpu_ghcb(void) { struct sev_es_runtime_data *data; diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 9c74d1faf3e0..e8a32a3eea86 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -306,6 +306,7 @@ struct apic { /* Probe, setup and smpboot functions */ int (*probe)(void); void (*setup)(void); + void (*teardown)(void); int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); =20 void (*init_apic_ldr)(void); diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index bf42cc136c49..ba68d9a17322 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -521,6 +521,7 @@ int snp_svsm_vtpm_send_command(u8 *buffer); void __init snp_secure_tsc_prepare(void); void __init snp_secure_tsc_init(void); enum es_result savic_register_gpa(u64 gpa); +enum es_result savic_unregister_gpa(u64 *gpa); u64 savic_ghcb_msr_read(u32 reg); void savic_ghcb_msr_write(u32 reg, u64 value); =20 @@ -596,6 +597,7 @@ static inline int snp_svsm_vtpm_send_command(u8 *buffer= ) { return -ENODEV; } static inline void __init snp_secure_tsc_prepare(void) { } static inline void __init snp_secure_tsc_init(void) { } static inline enum es_result savic_register_gpa(u64 gpa) { return ES_UNSUP= PORTED; } +static inline enum es_result savic_unregister_gpa(u64 *gpa) { return ES_UN= SUPPORTED; } static inline void savic_ghcb_msr_write(u32 reg, u64 value) { } static inline u64 savic_ghcb_msr_read(u32 reg) { return 0; } =20 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 69b1084da8f4..badd6a42bced 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1170,6 +1170,9 @@ void disable_local_APIC(void) if (!apic_accessible()) return; =20 + if (apic->teardown) + apic->teardown(); + apic_soft_disable(); =20 #ifdef CONFIG_X86_32 diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index a527d7e4477c..417ea676c37e 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -345,6 +345,13 @@ static void init_apic_page(struct apic_page *ap) apic_set_reg(ap, APIC_ID, apic_id); } =20 +static void savic_teardown(void) +{ + /* Disable Secure AVIC */ + native_wrmsr(MSR_AMD64_SECURE_AVIC_CONTROL, 0, 0); + savic_unregister_gpa(NULL); +} + static void savic_setup(void) { void *backing_page; @@ -395,6 +402,7 @@ static struct apic apic_x2apic_savic __ro_after_init = =3D { .probe =3D savic_probe, .acpi_madt_oem_check =3D savic_acpi_madt_oem_check, .setup =3D savic_setup, + .teardown =3D savic_teardown, =20 .dest_mode_logical =3D false, =20 --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2069.outbound.protection.outlook.com [40.107.236.69]) (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 D87D823C8D6; Tue, 10 Jun 2025 18:07:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578862; cv=fail; b=lq/I6Zj0WabNfoSvG8ElpMKH60A+CsahMM0kiWCLUIMjHagOi2CErPw8dWo2vqHwf4hRnZAeURch1gmRKKSQp2l3dRoJj5Ed2ePFc9hQGJS8DUHmyyJ7A8ytzviujwm2E2ANM6t7ZRY6mWIBogC42xyogGvCJ+MNUVQ0u0iTDFc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578862; c=relaxed/simple; bh=+nx5y1QAvyYjina9GFVDHUOhVFVKD6tX/1Bbqg5MVi0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=H3cI5AL9s1+x7F7TktMEHWm9uPMJyENw/qj9bqj8l3smwoZMY9P1Ck4VvIzznV/H2vA95g7iQKKBw8aiBTcIVB/YZk9MRrUCOi6yF0qGbdDRfWt3YFSBOWvIaElHJlbgFFRZ+3SViIwUTArD6tOj4c0CfxEO2YMEfIisLmyyOTE= 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=S/p8Am96; arc=fail smtp.client-ip=40.107.236.69 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="S/p8Am96" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HMAGUARCM/XufRL4ifL2nKTFCACzJKwSB3LUFHHSvTaujJx0/7l74xipAk/v9gLh39UCs1OZOVcxBOa/IWabXSPpjFezu2kMn9yWhdlYXoDgILkwXcytS6v6jujnTpzW7ZYvpwJd8QsFxKtFC+VLO0rL5YBK/ujDbgA4HSutD1thr+pIL1bth5OVnXkERT0eSsSS4VyYxW5AEOGAGXsmNBeAVoH8qeUKfg/YdzhLCUXkR+qFC9gndgwkOizhEye9UQFgcLgXUBpLW5+orGfaVFNUNhJJ2/2Pu85zSCgHLWYvJhE1+v4yoHCSTe1ZNiDj1txzHChihedgVSVdcQD7uA== 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=XWaMaHtRXxSRIgdQ+a10SDPGOnhANHDrLGB0gfxc6bQ=; b=Uo61BQhMy5XzuoG9Rnk3RWtnrQ3iOTBAqCVdEjpIwOI89AJbE375MlOZCjWsOM8U7ZWbPrOUgtZdapq6rSUbgVbpnZlwP+Rsg9/r4VjguoLQpiFnO84H3c1R7GEoEuGWg/oAhUGPQLtW701ZwpO3oRWdkYA4ZlC6G9MeZdks+WyagnOMAKSCPIy4Uc+cws40d9PQG9YUSciNBEB7CnTf3MNtctffCbMFYEMCfgueIbb57D2EuHEzmboDLFAya5BAM3SVL8zOSyzH9pgMGya2XTSpwWnNMFtvAr8BK8CwjV/PNz9KRvCFlgV9ppY9T06Umh7gIUdvIONFHqa0/wiOLA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=XWaMaHtRXxSRIgdQ+a10SDPGOnhANHDrLGB0gfxc6bQ=; b=S/p8Am96VQVBwdKsNYOp3wjpubex99UnM9ezTtQd2r++YU78/YXqukZMEI22oeQ/gYGhiG1LRFjnNjkTS6OSVb7tQGTEVw+yz/onEsoPecBX5LDhs1MFVxrNzdbwB1SFf6v9Iw3dW8ZqvZbCJr3gx8oc5uCUK+t82etCthg6C2w= Received: from CH0PR13CA0055.namprd13.prod.outlook.com (2603:10b6:610:b2::30) by DM4PR12MB5796.namprd12.prod.outlook.com (2603:10b6:8:63::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:07:37 +0000 Received: from CH1PEPF0000AD7C.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::f0) by CH0PR13CA0055.outlook.office365.com (2603:10b6:610:b2::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.16 via Frontend Transport; Tue, 10 Jun 2025 18:07:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD7C.mail.protection.outlook.com (10.167.244.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:07:37 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:07:29 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 35/37] x86/apic: Enable Secure AVIC in Control MSR Date: Tue, 10 Jun 2025 23:24:22 +0530 Message-ID: <20250610175424.209796-36-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7C:EE_|DM4PR12MB5796:EE_ X-MS-Office365-Filtering-Correlation-Id: a7ce3c6f-1293-401e-4c65-08dda849aec8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JbQxNTtn7F9uzSAtLNLHRLGme4GWZdo6fUJp5GwjLvqGlV2OjecaoSUmBD43?= =?us-ascii?Q?4UBygZxEZJ1DiQpcmMCXuZ8kUbzWSBaygmanrzCQrAF6hzCZXcf1o670PiLZ?= =?us-ascii?Q?KSlqdW5uUI8qBb/gBtkI7FzYFSLdFhJ8f7qNnyo8jPjeRtR7e5zdXoOQpsHH?= =?us-ascii?Q?Afb6vGD6t0MhopNk21G16lwzCRRTC6ca2eO6KhMrbAz+zgLbfiDN357nTwvX?= =?us-ascii?Q?jN/ow1TYTrfwW/NLHNP19LWwOXCEM2bYdaKpj5GonQikQg9SWvk51rr5oGRV?= =?us-ascii?Q?2nHYI0Wm4TZRstimLVc7QomkPbRMrDFdA/7i0/XRxCT+7/IyvRHEcZqhXjtL?= =?us-ascii?Q?/vzlW8KKOpZIj1QJtyhvceOZ3MQevhdjEQh+Y1oZqBjj8Ygxl42wx9PEUSYV?= =?us-ascii?Q?LFJCCm11bLoiPTjHA2dIJ57tflwV20kV6EaVvBc4cm+ga2OMiX7UJsuXIriq?= =?us-ascii?Q?xF0xqkWM4E8YFHSejqx1pBWs+GIlYv8Aprq7PM6f93VvK0UitPxn2yGMmZov?= =?us-ascii?Q?iPYMBLNo9EpD4K/q+VzomcdUjJgRcbh8gydRkryRmEyUy4K/pD4IDi7FJ00a?= =?us-ascii?Q?K5KL/UXxk2aDsIvTPqsFlFgszJkvdWxYEuc6fdyrkRaBq5HhRxVOXF1AyahY?= =?us-ascii?Q?L5DB09E38cp9/d35H9YmYo1BdlhMIoyUxjr1z6MoD6MDhwjjXVRFsZ+PHovM?= =?us-ascii?Q?PmUHFyeXS/kmmzdD2AaOIL+NSVzagH7DnSkBHjJDc1L8WpUYbifj/ueggKlz?= =?us-ascii?Q?+jRD/p/fuMg16O4APCjCe3fPClvVGGZYSBvgFCSxAbwpuxedri49ElpnN5Zz?= =?us-ascii?Q?NevUNQkDwYitpWrOfC7irf/R+nmC4fgDP1p6wwdOAn6RvlDXZwYHAPYSq/rS?= =?us-ascii?Q?6qwHgOVY/2xxTjAXpM9YKxqyX9Jao1F2Wmzb4qojD8fLK+EQdXkGvMS0CpUc?= =?us-ascii?Q?0rkQhCEdG9jw1PuxHV3H6UPo+azWnH0kKkCrbHs2NL0LgArW8iIOJUEcEBVs?= =?us-ascii?Q?7LCgrL9Z4j+eJzvntaeiMA0OWF4s1j77MjiUx9vFos60ZPhbGQXIhEl8hILq?= =?us-ascii?Q?tmxEHlGvU6GXFTBLnE6QfEwuLW1k6C8dopvoss8131w5jw4hM3W3+UY6oS4L?= =?us-ascii?Q?/uTtXela8wrYW1+B9of841lZseed+HOb3bmYSXn+FPYb6gUTxpIipLz+Eokw?= =?us-ascii?Q?5YrOlipkPx2/gMGSOx2UM3ELDoKhKBQ1UdwTP/KS1BJsbVw2jy2yGSd9xZfv?= =?us-ascii?Q?Rox7vRK3Ry33GOVkMWmPQhMyQptxpN2OAL8qQOaejSulvhOMNBFY4OgxlrQC?= =?us-ascii?Q?er5zKe2uaK2l8woYsDCAjXKgZ7YqBUIcpbBNS4sxnvFvbVyh90gmCxhvRoOx?= =?us-ascii?Q?vPqFJur7bCdpy01AvH9ReFYQvBYhTJ4aO4LOv0CqC0dFyBsjIDhvZ48dGcUv?= =?us-ascii?Q?33sRcJMdzUkw4MQRRlu9uzdH/1aNoMPRTYXo1/IpG65FLdvn1qkuXIeirr1Q?= =?us-ascii?Q?iJkftjm00NsA1dfX0xcgz9QFhYntvpFIeChO?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:07:37.4370 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7ce3c6f-1293-401e-4c65-08dda849aec8 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7C.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5796 Content-Type: text/plain; charset="utf-8" With all the pieces in place now, enable Secure AVIC in Secure AVIC Control MSR. Any access to x2APIC MSRs are emulated by the hypervisor before Secure AVIC is enabled in the control MSR. Post Secure AVIC enablement, all x2APIC MSR accesses (whether accelerated by AVIC hardware or trapped as VC exception) operate on vCPU's APIC backing page. Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/include/asm/msr-index.h | 2 ++ arch/x86/kernel/apic/x2apic_savic.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-in= dex.h index 7ef1173ef15e..2264bd768f51 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -702,6 +702,8 @@ #define MSR_AMD64_SNP_RESV_BIT 19 #define MSR_AMD64_SNP_RESERVED_MASK GENMASK_ULL(63, MSR_AMD64_SNP_RESV_BIT) #define MSR_AMD64_SECURE_AVIC_CONTROL 0xc0010138 +#define MSR_AMD64_SECURE_AVIC_EN_BIT 0 +#define MSR_AMD64_SECURE_AVIC_EN BIT_ULL(MSR_AMD64_SECURE_AVIC_EN_BIT) #define MSR_AMD64_SECURE_AVIC_ALLOWEDNMI_BIT 1 #define MSR_AMD64_SECURE_AVIC_ALLOWEDNMI BIT_ULL(MSR_AMD64_SECURE_AVIC_ALL= OWEDNMI_BIT) #define MSR_AMD64_RMP_BASE 0xc0010132 diff --git a/arch/x86/kernel/apic/x2apic_savic.c b/arch/x86/kernel/apic/x2a= pic_savic.c index 417ea676c37e..2849f2354bf9 100644 --- a/arch/x86/kernel/apic/x2apic_savic.c +++ b/arch/x86/kernel/apic/x2apic_savic.c @@ -375,7 +375,7 @@ static void savic_setup(void) res =3D savic_register_gpa(gpa); if (res !=3D ES_OK) snp_abort(); - savic_wr_control_msr(gpa | MSR_AMD64_SECURE_AVIC_ALLOWEDNMI); + savic_wr_control_msr(gpa | MSR_AMD64_SECURE_AVIC_EN | MSR_AMD64_SECURE_AV= IC_ALLOWEDNMI); } =20 static int savic_probe(void) --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2050.outbound.protection.outlook.com [40.107.94.50]) (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 7449615C0; Tue, 10 Jun 2025 18:08:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578881; cv=fail; b=Pe1xQXg2hLko0mjF8SnYsO/sC+zyj8UHmjxgLkd+z7CKahfGdhwmAB4OeYuBA8N2KnKrsHXAioTpQQIh1papft1D6o+EfbeFN4431E0XEQ2RbYPCyQ4VmrLihBPJIzpxJxE/rvPzg7sRyqn2/bAZYF+IDckvCXhHYdu95TlkbrY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578881; c=relaxed/simple; bh=9QoDb+q+W0e4ETbstQDEtU2rSgCMpGFLPVA1SDdz7M8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nk7poIvlCt9GHzrLhQmAJYe9Tv1rwGo5rLchikKk/7qPzQqJOAo3PLjQ67DmobRRRVIsiyV7IXJrfoja8NLmIPa9wpWaKkTssneFD/iVbtGgn+ozXhOoYwYUvXS9vGnLBI1ysSL5WTImP3nCzqsI1oj+aX/xvMdNLE8uZOmziVo= 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=hdJgm73O; arc=fail smtp.client-ip=40.107.94.50 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="hdJgm73O" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tipCBZb8lcpaAA/UJzxd5K611ImSBJsklUt3b0gmto5ve2/2Z3wPqfm5M2WQ3iygxBXUrRq7QlQa2N+xvFiZNxNZjIZR8ZkugW6bSCHimlWUHEYb0RCVpx5pV/7M8CD7MLY5lv/WTfLm0opffvan6e9eq2sg0MCy9OP/XahvTpJQ1YDn8hPLkf9wxXKPggfKw3Rn1TbbrWGJ5bg0KAvG401adAtNSVjRUmaErfvTTPrdj8nBi68HD4+5kWFgttCayX2FqBjdR5pM/HJC+9JwO5gjYuh2xxXhvdX2WcvFYooTfBevoOn4jb0Ks5wx8Lqx8RmCYhvCJZ1vwpEkem7/Zw== 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=rjdidJyOY30Fi16ktTXpY7rHkcBOBGHEpphFjfPO15k=; b=Sxu2BREePLibpQa8jt2WYlnRybawDgzN0rMclttrH4nNh86D7OpFEaY5Chv4KzLAly+aPBeSZl0FO2lrkri6GfBESl8zZBel7QKbO0G7gcmow1Zk46vDVzWU9NJu9JPgcuzADZgSGRmKWOl8rjOCtttOUEZRyrJlM4CO2rIPGWx+tIhUWEx8YVlDcxt4S5yZR6D5oeMX9pKGpk4Rt9r1qGYCQsF8UxaOex0jvRngLk1Yn6NtcQpGsitLgHABfyxYnPtY0tOb7FR7bHYZpkgMrb4l6Op5Zlw0yZnXyn6E9eHjjhnpgqY4Ro463n0Axm+kBw+OvXYx4B3uILOSGjNjug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=rjdidJyOY30Fi16ktTXpY7rHkcBOBGHEpphFjfPO15k=; b=hdJgm73O3/ydenrXxf2pI+U9YpBGjCasR4y34FtQOpyiFFE+QjXGW6aoNT+xEc+Rmu67JedZMdJpcUkHoKEzg2Q6AFkBrEBMWw0EFcLeFdHIErjvIBHpn+BG4ivMkhjVbAagrBHO+L3RvQ3vT39knShNVVqLN9YJFmFS5PfnI2o= Received: from CH5P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::29) by SA3PR12MB8803.namprd12.prod.outlook.com (2603:10b6:806:317::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Tue, 10 Jun 2025 18:07:57 +0000 Received: from CH1PEPF0000AD7F.namprd04.prod.outlook.com (2603:10b6:610:1f2:cafe::9a) by CH5P221CA0005.outlook.office365.com (2603:10b6:610:1f2::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Tue, 10 Jun 2025 18:07:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD7F.mail.protection.outlook.com (10.167.244.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:07:57 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:07:50 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 36/37] x86/sev: Prevent SECURE_AVIC_CONTROL MSR interception for Secure AVIC guests Date: Tue, 10 Jun 2025 23:24:23 +0530 Message-ID: <20250610175424.209796-37-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7F:EE_|SA3PR12MB8803:EE_ X-MS-Office365-Filtering-Correlation-Id: 768d8c03-857a-4689-7979-08dda849bad0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YDtVS0njTuUX4/hLA4xylFwxs8m8YaBOf+GTFQG7UbXrVedB2QnDMhlFcPDM?= =?us-ascii?Q?RyjNUnhF8P6q9qLJuHtxCnShK81ycbkM3tGdbzmgYGW9ZoGbs9h68oVO1MOl?= =?us-ascii?Q?vN7onjjOZKIorne8ljncEebQfVBUTHLLUldGVwY4gZ2cMY0jL7onFxLTPgkI?= =?us-ascii?Q?EWudJhgINFW3mKFrn7ptWMclouir6/VdddpQrqqv/82/g8eqpekxrAhT+6Tm?= =?us-ascii?Q?2/IiREifJyUdnrNZ/LhKBH2n8PdOh7INPsTZFk962wLNQfiMi+GkCG3yz4Xm?= =?us-ascii?Q?bVA/R24MeX3SwGzmkQ+tYRQPsbvZKAy783e9zCgN5OWOUnXB1pkTQHKmoCQ6?= =?us-ascii?Q?YeaBusCMEMh3T9T3N/Vb9dcewu4r5JH/VXuW7u/EdLhF1K+0pcyEOunbU/8R?= =?us-ascii?Q?sSGmFDUqjdUv0jpE8wuw7VgeJSLcWGCXzVlHrEzoCfM1bFxHFL3hasNT0foq?= =?us-ascii?Q?jPP16qN2+kE1kUKWEaoCFsMQfMid+xtbdIB9Mhdca7QD0Zig0hJFUirxZMKs?= =?us-ascii?Q?uAlxlNYsD/n2AU2wwMlRdQziKjmCxVcTIOZTGFDKAwJb1IT0JYHEU5GvDiMB?= =?us-ascii?Q?+jittnFKTAvhhtAdt7LG2LPsG2Sw8Gt51tknjbUokzxAVJw3Zc7LZOdNelm1?= =?us-ascii?Q?sqJC39S+IdYTCJdYcJNE0b1AsPVJGiYB9iwnp+72ZNhcAtnkw3e3scuUBeID?= =?us-ascii?Q?B3+m6bRqQfVkHjcYScz0W0mWH4momRLXg5e/9vFgo0n3RgTG8GePJ6UNGEVE?= =?us-ascii?Q?ajbyLTX4dS65DvMac+NYpR1gtTztr90/qmGbTZT/7VnO4RsvnSeDSfBvAFk0?= =?us-ascii?Q?5+CCFDyyziyGPC9kOSV6wdjTe79hjPAcvrHMGwuLzoQMgxT9C6TDNv+asyqf?= =?us-ascii?Q?xaZm/4dulAWNO3KSPlClH5rqmFrpPOlajK94GPIqmB7ebbeV0nAAr5uMqGde?= =?us-ascii?Q?Ce5crLP1rjYheupQKky3WYNfAjDCTJ5KbmYI0rarW3Wk1Qk0gOwObpRkj3Nr?= =?us-ascii?Q?is36UbvYWLq0cLGp3O4557TRy653lL6AIqhi8PKb05E9F8/vA5Tsjb9oHD1i?= =?us-ascii?Q?sik0OfrmUE+YpHyRB4XcFsH6vYBOIWA/J9E/py9faItG+b6CeNh1k+XLXViq?= =?us-ascii?Q?lCLjND0WuzcOgegVdeC77DMPhMPtMehiy8Tukmyrrvu5YpGRuCmKyn0PuQ8O?= =?us-ascii?Q?CqRH0Z1elUlw3tKgxUDTiI1JsPD7S9ev3UZnOJ30XSPao0l0/Od2DM1IG/q6?= =?us-ascii?Q?qTaKOSxQ4XOlY6qg7NNvGl/pR4LxDFkxdL9IqYFE+DeDRw4aFrWnuD/0M4Jk?= =?us-ascii?Q?i6r3CsvSFqv4JUznXcKFvHz+l48MVVYeBXw0T/+RSlRJfGQfrzl+9oaSER/N?= =?us-ascii?Q?4+ke/Mbv01S011c86zh1mMEypm3s+oEPjxkaxmcYl2IZW/RbR4s8ufMTHMdT?= =?us-ascii?Q?iGtN0rRCqH2Sz8SmYI2pRRnfXycrxz9AIakenpHQF05UYZNREZ0fueVYV43Y?= =?us-ascii?Q?cXavy1p7FQMClvX24OeZbmA3xi2BgH9uqT9a?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:07:57.6214 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 768d8c03-857a-4689-7979-08dda849bad0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8803 Content-Type: text/plain; charset="utf-8" The SECURE_AVIC_CONTROL MSR holds the GPA of the guest APIC backing page and bitfields to control enablement of Secure AVIC and NMI by guest vCPUs. This MSR is populated by the guest and the hypervisor should not intercept it. A #VC exception will be generated otherwise. If this occurs and Secure AVIC is enabled, terminate guest execution. Signed-off-by: Neeraj Upadhyay Reviewed-by: Tianyu Lan --- Changes since v6: - Added Tianyu's Reviewed-by. arch/x86/coco/sev/vc-handle.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/x86/coco/sev/vc-handle.c b/arch/x86/coco/sev/vc-handle.c index dd6dcc4960e4..ed6da4a738cb 100644 --- a/arch/x86/coco/sev/vc-handle.c +++ b/arch/x86/coco/sev/vc-handle.c @@ -407,6 +407,15 @@ enum es_result sev_es_ghcb_handle_msr(struct ghcb *ghc= b, struct es_em_ctxt *ctxt if (sev_status & MSR_AMD64_SNP_SECURE_TSC) return __vc_handle_secure_tsc_msrs(regs, write); break; + case MSR_AMD64_SECURE_AVIC_CONTROL: + /* + * AMD64_SECURE_AVIC_CONTROL should not be intercepted when + * Secure AVIC is enabled. Terminate the Secure AVIC guest + * if the interception is enabled. + */ + if (cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) + return ES_VMM_ERROR; + break; default: break; } --=20 2.34.1 From nobody Sat Oct 11 10:25:56 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2081.outbound.protection.outlook.com [40.107.94.81]) (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 4956623D290; Tue, 10 Jun 2025 18:08:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578901; cv=fail; b=mhLbvTLUIQARAoYvbrts1NXVGc+Ka7/R/3QXPVdQEDh7C4rtywp5nnJrQUHKN3Mz4jTj7WmosHXj8Z0CELL/XiX8Enu+rfh2JF7AawQ8HUUGEtKzTAqPyexlNOvpnm0NBv15h7Hkyd9SMtjc8MEuAR8r6rVXOfRk1Y96J6Kegm0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749578901; c=relaxed/simple; bh=PXBM7CWJHllJbbd6gsMbS+DrBfhF6ZLqq97Pmw9xOcQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=DmvfHjlv3xq5JzKLR7fne8AmxQnUboRp7a93zVb+o70iLw7rfI2l5F6B5ByPxvPMYbnkX0NmimC09hYTRaqMx12wf/CP0n4Yz8Ide+750XhZ9mhTNFBV3LiFSDB7fjhNgk9Sp0qcB2wnqQT97w2q6j7180Ym13/FjofQMUU01nA= 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=GPkDtby8; arc=fail smtp.client-ip=40.107.94.81 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="GPkDtby8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N0aB4zHKDnVF00uvbx4I5t4/EP2pbwPGePEvwRHD9p/yRV53qUmNF+A6pKVpsm6RfGtJPpIQ0rXMIk9odWd6nr5Cph+J8zVZFFU2cze8Iul6RjGzwSZmQBmv2DSH/iNYm+uJF6bXpegvmMV/lM5Q0wNfey+84edsVuf74e9t+OlfY81Nryz/weVIGGFBIt7EXvuXEQz4UHKzVZsK/r67FC7iB1hxN02PvSZuRWaSgnBK5RPAomAZDYRUMVI4kuv5M4TuQzaFnXQLJnPrmaBN+rNPJp9q2kKZvmq7tcwCraTSEFcgiDbeZUBtLii0cGrnwIZob3QL2gMrUJvpyqTxyA== 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=yZxPCV8CvX4H7Re+QmoyDX/IN2RAT2UtZXiIthq1+H8=; b=DYpsBM4ja6uEDi6RpVUcneuKfeIaCsO/LVzKajD62W74rkGMrdQu/u1JkpUmp9mjnm6+WFCL9qBBCCD6Pr5UvRmbZlTydsP9l7Z7uzZmipXGXJBtHWX9QqbsjGDnGuuq59SNMsetmbkf0EfttLu2b5EuNQWlMiIb5Wqef4Da3IYYCD+K0ziXNZSV/dZ693Q50Hbx2M5s5Orxj+DGx+OEFsU/OH/Ui53nwRxl4Syx1UumEqqsxL2QzjLJ2N+DovH2f+X5J/ZXam8fDxrNhgshEZ6AGzedsowTDGXZnBbIdNd+W/fCSZdCSA7tq0MMKJ5nuvK0DRVnp8DBCvgp5S/LBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) 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=yZxPCV8CvX4H7Re+QmoyDX/IN2RAT2UtZXiIthq1+H8=; b=GPkDtby8usrt13rTKYQgtoV15/NwR5KeEy2/G/w1TLJZH/NwURheFA+e8jNvJufhFO5XJDGeidar9Zd7NbjX2ObxCMjbWnefz7dr0NLrcnMwldMVJI0NfUXYY+FQhD8ellLh4fjtEEsaJYumVYDLwHoRwtr3F9XLe0LsJKysKME= Received: from CH0PR07CA0007.namprd07.prod.outlook.com (2603:10b6:610:32::12) by CY8PR12MB7537.namprd12.prod.outlook.com (2603:10b6:930:94::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 10 Jun 2025 18:08:18 +0000 Received: from CH1PEPF0000AD7E.namprd04.prod.outlook.com (2603:10b6:610:32:cafe::c2) by CH0PR07CA0007.outlook.office365.com (2603:10b6:610:32::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.24 via Frontend Transport; Tue, 10 Jun 2025 18:08:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD7E.mail.protection.outlook.com (10.167.244.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 10 Jun 2025 18:08:17 +0000 Received: from BLR-L-NUPADHYA.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 10 Jun 2025 13:08:10 -0500 From: Neeraj Upadhyay To: CC: , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v7 37/37] x86/sev: Indicate SEV-SNP guest supports Secure AVIC Date: Tue, 10 Jun 2025 23:24:24 +0530 Message-ID: <20250610175424.209796-38-Neeraj.Upadhyay@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> References: <20250610175424.209796-1-Neeraj.Upadhyay@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7E:EE_|CY8PR12MB7537:EE_ X-MS-Office365-Filtering-Correlation-Id: 45fb673c-6d1d-4b4c-d15e-08dda849c6de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/cu5FnAkbVaxvQQjcblv335VTMEhzUvxshJMJzWrvVMfm7BNeCbET7/uaKKc?= =?us-ascii?Q?++iF52FJBGxzzs8nxe0GbPMNK6GoWpNErjIqK2WdMlNZO57+N2KFVBw9uqg2?= =?us-ascii?Q?0N6ECvQ111yiHUDyjkrDqrXmBjflCpm6sSHVRXwrEUsndB4lHpxKEufyaLFB?= =?us-ascii?Q?w3KmRbkTSGvl0IO0VrQEvJ9Ky2M4CueoTTwm9H+r49ixc/ECBkvSxJ9o9QEt?= =?us-ascii?Q?UXc5nw0LU0J95Le1PQLgOunfRVXFwfUown5e1P3PW4546ZMW484GKv2idDfg?= =?us-ascii?Q?x69Y2T/g1EtUtejfDWwWmajEfhgNhoQSoPrf8BBz7L3cyQVdZRrSa7obe+aw?= =?us-ascii?Q?+WhO77A2OQEIJFoGtORWRumrb37ExGxc8L30+A1+objf0vDGJXEpbJx6NvJI?= =?us-ascii?Q?IQ8WfZUMCUvqp0IQ6+QjUElsJ+JtNnoCjgLrYMF68OIQTuSdgdrHbOKetJja?= =?us-ascii?Q?kh7yvtvU9kSqTt04c96DJD9Cj7i087ZmoQzdRxcVI/IrybSn2Ukh4HTHr6wi?= =?us-ascii?Q?78M0SEqtlt4ohRiGomSLvXAeRRCKbrHuDBQ7d4noZrVMnew6U+78fMHjUNRq?= =?us-ascii?Q?I8pE5/iMfudb/V2zBuVv7vmwG6czh0GcPieLhKonTgvHmrzSU932QgGuHxOw?= =?us-ascii?Q?SimtgI2syFHBasj65WvXJyhZSP20Txq3vHMGOnwcW07aTZb58Qf42l/Bbj0I?= =?us-ascii?Q?vNZeipsrhHaPy/T7L31jWrdtOumyH3lwnxWVzO/USXjd7nj1QzqhdP5vxNoU?= =?us-ascii?Q?RNUhHbO8Qxev2Ig72gfMrEFHLYnpVlA/lNLYLEvEjJS4LjoEdeMeaFG3qinC?= =?us-ascii?Q?rmSQDgwo87xWHGIAzq08tQJhUCjbwHIjoWH4Ip3DjwiWM5UUngK0wGfPhlhZ?= =?us-ascii?Q?QKm/sqZLyHlotrlYoVL571nCqNOrdirTe/ukvgcJkSz+atXao+YQd/pjI4iY?= =?us-ascii?Q?pkS6WQHbBwOpbWirRmWEBlzAlrYzvxBMAuKIm/Krj1hTlO6vMJdY19KcreIN?= =?us-ascii?Q?hdOj+MHnGIZc4ElAt7hYzOiiVv537cQPoaVyC5NsMUt7CqO6twm8WM8/5amd?= =?us-ascii?Q?D3PDu0Hdws1aP+GJ/gT6PQJCU2s0sHZ1HbB3x9MXfotFBdUh8JxJPXEap8gh?= =?us-ascii?Q?/SZ+T1gKECZfpQkxDBE81NoXLi8YKyapRKeFeTXwG4cXI4DE6tQBIkk8/UpD?= =?us-ascii?Q?6PX89Q7csFpb3rq6tZvKr1gjOnicm2NB2ukDKvSlJsiDgHrBfWfdCJzai5A4?= =?us-ascii?Q?W8pCYeDEgJ4/dSOionywsDpgH0TiTAQ9ceq6xLrupo2Gfntn3qyVhQWWLqfW?= =?us-ascii?Q?uHbzHsqKBziw/8+NMXSw0hRBeorfbn98/Ya7aux9JIlKoGF59jYG6JKXFXSR?= =?us-ascii?Q?FAsU/v96Uylj7l3e2qnXxELTQFhOZ7gpSaA7+Bo9aYnrH7hLB21/g7IvamZX?= =?us-ascii?Q?/isBXZSKzNxLMu/no7QynM0SuyBxg+Efx1igS8HKTPhDkk/L8UC58Tpi8C/J?= =?us-ascii?Q?rlZovOCdKaboAlo/pWWEOGIhATJvklPTJIzn?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2025 18:08:17.8441 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 45fb673c-6d1d-4b4c-d15e-08dda849c6de X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7E.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7537 Content-Type: text/plain; charset="utf-8" Now that Secure AVIC support is added in the guest, indicate SEV-SNP guest supports Secure AVIC feature if AMD_SECURE_AVIC config is enabled. Co-developed-by: Kishon Vijay Abraham I Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Neeraj Upadhyay --- Changes since v6: - No change. arch/x86/boot/compressed/sev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/boot/compressed/sev.c b/arch/x86/boot/compressed/sev.c index 74e083feb2d9..048d3e8839c3 100644 --- a/arch/x86/boot/compressed/sev.c +++ b/arch/x86/boot/compressed/sev.c @@ -238,13 +238,20 @@ bool sev_es_check_ghcb_fault(unsigned long address) MSR_AMD64_SNP_SECURE_AVIC | \ MSR_AMD64_SNP_RESERVED_MASK) =20 +#ifdef CONFIG_AMD_SECURE_AVIC +#define SNP_FEATURE_SECURE_AVIC MSR_AMD64_SNP_SECURE_AVIC +#else +#define SNP_FEATURE_SECURE_AVIC 0 +#endif + /* * SNP_FEATURES_PRESENT is the mask of SNP features that are implemented * by the guest kernel. As and when a new feature is implemented in the * guest kernel, a corresponding bit should be added to the mask. */ #define SNP_FEATURES_PRESENT (MSR_AMD64_SNP_DEBUG_SWAP | \ - MSR_AMD64_SNP_SECURE_TSC) + MSR_AMD64_SNP_SECURE_TSC | \ + SNP_FEATURE_SECURE_AVIC) =20 u64 snp_get_unsupported_features(u64 status) { --=20 2.34.1