From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FD45C433FE for ; Tue, 12 Apr 2022 12:39:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353663AbiDLMlO (ORCPT ); Tue, 12 Apr 2022 08:41:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354967AbiDLMiq (ORCPT ); Tue, 12 Apr 2022 08:38:46 -0400 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam07on2043.outbound.protection.outlook.com [40.107.95.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A7D91AF34; Tue, 12 Apr 2022 04:59:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kpT3XcJkI81l0EKuEs/dd0eDY6RXtWtyXKjXFQP3B5NhTgfxjjA8fohpYHZlhzSoOiCdTR2wbSKhD0icePcUA1KEpAsg4mLw0N+aBDLUlcFj3NvrPZ5pYbjARTURXmSWREtzlXqMEAfR2RdU5eN0S6i3bVC77q+5RGycScKF8Q48JrRbZxMZH7Ym2DPMhEWECABDjlj3Y3ljGwAu/Y91HGQsUDYbFUS5nxHNSGAyXF1wz04FFT7H4/eczeRRdQmjxuEbsc0+UCgV36Bow7teDSHdo4OGMraJcjlTeA8go1UjMY5amTsopHLt3t/fN6jiauVXGhdHnaf8jqu9k1prSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MRw+cd7Jn0ZJIgZ+XTMKW4Xa6/MroyXyjrhRM14T+0k=; b=U0k84iR8XPFeFgFHTAufkZYBmqasvKW9mwVWG9Hk3kbUxvvxupFdx0ORBYRHD9l6LFMau2fNSPCz1f2LCxZDR7Nbp6Z1ITbW+Z7RMSJ5eEHlUlvaFHMRcKWUOCgOmRwknwgUf1E/IdM8bjd9BFbOcsUoLjRfFoZ7jnfUcqKLNK5EZ78x5J0wXbEmrHrIc5ln6zp8NIwji4SCCFyYoSF11MNAcZKWPiZxD7rV7gRfHH76TwKalCbYnS/al7uw6ocHbmyMO48BrMWBpUrrFa3viXICGIWuMM0/mnt/785d7MgDjGIvCbtF+2IBJ8pd/8Sc4xnwZJAVYiC7+uU8qW6yew== 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 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=MRw+cd7Jn0ZJIgZ+XTMKW4Xa6/MroyXyjrhRM14T+0k=; b=1SlPhtV6FBgPrmNpAYH9d7Dyo1v0aNfEKBYBHD2aAiuenvJdp83+i1V3vdfdXwKay/F4HMUhmoZk16s+cYy/Qqzjy7hO0Xh+jJVgYxHLlc0UtrojO+1aWMleBasX9UequGcg9vGZaKjJmyakoQJm6EAEJLW+pF9lTOkF7ujw7ow= Received: from BN9PR03CA0681.namprd03.prod.outlook.com (2603:10b6:408:10e::26) by CH2PR12MB4296.namprd12.prod.outlook.com (2603:10b6:610:af::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:08 +0000 Received: from BN8NAM11FT032.eop-nam11.prod.protection.outlook.com (2603:10b6:408:10e:cafe::84) by BN9PR03CA0681.outlook.office365.com (2603:10b6:408:10e::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Tue, 12 Apr 2022 11:59:08 +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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT032.mail.protection.outlook.com (10.13.177.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:08 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:07 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 01/12] x86/cpufeatures: Introduce x2AVIC CPUID bit Date: Tue, 12 Apr 2022 06:58:11 -0500 Message-ID: <20220412115822.14351-2-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: c0c3f521-7c92-4eb1-658a-08da1c7bd99f X-MS-TrafficTypeDiagnostic: CH2PR12MB4296:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 79d7xUc+Sk/7BBmXYHdTgK9NEHOHjxRngWCh2MlMzDrp0sDGEyhHvQ+Aqn1oI9rI7sKaQweaBqAVcX4zXTwmmj03I9DfvCJ3rAGBeRa9k9p0GshbZY0N9Ks8bBDFOZipiZhPJW7gMg0WP677icQAskDJ9rAtVupsOY/dTL5wnMNVthi17tjMoilKfLOd1K9R+5EzW10HnVl6lkVdaFzTBhYepIhOanREKNG1eMPpaip8c+CopDmkKRpjBCqAorRKxYWh+gw1ZJNS0jJgcV6cxuMqR++L1wc4SSBUK9ue7x7NTBln5BVelcYKald36e9JhG4Ef4pWtKBIdz9PqZONWW8prdPxEwqaDZYQJADISJ0OLDDT72jEwCiDh1oDiKJopiwtg8o6DuQv5r5LCSgwWUyx4SuXNlAnBHakMsW9Hw39wXoAYSYLw+A2bJDAXPbLucY/+Y5W4ARLMmyYMu0F3maT/YXr/+qOnHylNkF3HEjY13gnqERLXpcrWIu1h3sSbFL6X/dC8seRMBwloOs7QZG9U0RVo51YyngYv+01WC4OXCF3hrDMcUd/Qqx3JHJ9liSqvL8w/IcuN8iX1gOGbZSITF93WceXXLC+Pvuii8a0b2B1Qw2CVHyCsZVHohxqV6ZPBeVfdLVT27rTCmbk1q1G6GRckRet/m8wACCwHIovitkgFhzMGioeSyDaIyCTbka/yOqlFL0i4J8wCKZ+ZQ== 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:(13230001)(4636009)(46966006)(36840700001)(40470700004)(5660300002)(8936002)(54906003)(86362001)(110136005)(81166007)(508600001)(4744005)(356005)(36756003)(6666004)(4326008)(8676002)(70206006)(70586007)(44832011)(7696005)(16526019)(47076005)(2906002)(2616005)(1076003)(316002)(336012)(426003)(26005)(82310400005)(186003)(40460700003)(36860700001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:08.3378 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c0c3f521-7c92-4eb1-658a-08da1c7bd99f 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: BN8NAM11FT032.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4296 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Introduce a new feature bit for virtualized x2APIC (x2AVIC) in CPUID_Fn8000000A_EDX [SVM Revision and Feature Identification]. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/cpufeatures.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpuf= eatures.h index 73e643ae94b6..ece314d43e08 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -343,6 +343,7 @@ #define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */ #define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */ #define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */ +#define X86_FEATURE_X2AVIC (15*32+18) /* Virtual x2apic */ #define X86_FEATURE_V_SPEC_CTRL (15*32+20) /* Virtual SPEC_CTRL */ #define X86_FEATURE_SVME_ADDR_CHK (15*32+28) /* "" SVME addr check */ =20 --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 85F2DC433EF for ; Tue, 12 Apr 2022 12:39:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346666AbiDLMlo (ORCPT ); Tue, 12 Apr 2022 08:41:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354979AbiDLMir (ORCPT ); Tue, 12 Apr 2022 08:38:47 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2079.outbound.protection.outlook.com [40.107.220.79]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D4EF1D0F6; Tue, 12 Apr 2022 04:59:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q8OjlU9JWWPPTH01BtXAr5L/SexYfRBGIH/pwfUYJtkK0V+V0V/SJwzoPNDRqMzi4I8M5o6HF2ES+IOV6uIYt9ovDecvoWAVFr5aeq5vW/5c/M0h/keL7/TjTqo8+kb6bTP9q+YHb3EcNZyawZgQIc3rOI1F295MpYH0SdSdAPbjF+2ajmEowkJiSKbESBu4u5X5EjG+AF4cVUlHpW7+ZMRXGCYRSmEaxNQkt5PsEHzC3yG+WY3QVaPYKxhjsm6eT8e6g9rpNwINLr5y2P5OcurwlP9xXjJdJq0B4sHp8g3Y5yMbVk0Cg0I6g97ors67try3oLadOJyBuwmnqcKBoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w/7Ha4GsWKbL+Jaa0IjUAXp5wwUURpW2LXYXeGMqhV0=; b=FYCkpByWd4O5WGgJJUeWeM4n13+wIIr9uWaSu9witVdoUc4qPEp7vm7YW50irXtfDeG4JvbBpysdxgku9XwNjCOBq/XbOupzY5kmzz1rArMc6EvFxSnR4URxzpp7/bm7r19VOLycSIj4ViM07FbnNchq71XriGtz76AuuJifFKVvDC7oK/HLeLtSNu8cqgW22uRMDQjyqj5UoEqhoWDYIsdJpasVbgkhCIcAIk8xahmzmGe1vSQiLbC8vpQcjHgvAcSwS2LK31StZcxygxbj6bp3uqAcTUQXQRqxJ5cTDwGOaDkInp0bv+9I5vVsSOmCqsDD++x+kWESM7JNFh9U3g== 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 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=w/7Ha4GsWKbL+Jaa0IjUAXp5wwUURpW2LXYXeGMqhV0=; b=Yh9NqJFxPNw6whFIfrhynIG7wBHhH5oGumokTcASYGnspatzN+LFb7wkXIdQXyFsZ08ArS8DRfk1ln3goFAGyIYWS/SvGATcLkv64hQLNBlsjnrFbSKFslVKe+lZTgMPteYIxr1ZrdGvpZGvvZ4tAkBCe9ARSgXP8Xk5WLf/V5k= Received: from BN9PR03CA0663.namprd03.prod.outlook.com (2603:10b6:408:10e::8) by BN7PR12MB2675.namprd12.prod.outlook.com (2603:10b6:408:2f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:09 +0000 Received: from BN8NAM11FT032.eop-nam11.prod.protection.outlook.com (2603:10b6:408:10e:cafe::71) by BN9PR03CA0663.outlook.office365.com (2603:10b6:408:10e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18 via Frontend Transport; Tue, 12 Apr 2022 11:59:09 +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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT032.mail.protection.outlook.com (10.13.177.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:08 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:07 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 02/12] KVM: x86: lapic: Rename [GET/SET]_APIC_DEST_FIELD to [GET/SET]_XAPIC_DEST_FIELD Date: Tue, 12 Apr 2022 06:58:12 -0500 Message-ID: <20220412115822.14351-3-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: 5d15a077-f4d8-4abb-23d0-08da1c7bda01 X-MS-TrafficTypeDiagnostic: BN7PR12MB2675:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +eQOE/w/6a9mH+Iwfd1UK6+IAI9bivcmOW4C2tRWPUuiVyQCQXvneDz13JdIP9IOpPut9mvPduSJJnE7TmF+gged/ODzOXxFgtJ1gAJIu5b7lF8sEh9CNMu1ivzsxqqoyD9REZbN3+NP/CKqmbho6EfX5qPYZp0YSxleQOh8mTNO8fpuObi1yCJdhpuj2UBEUKbqi9JNazvPlcBhT4icoMHxIv0wuwnHKGBls4eYmIRaipaKdwYHXPpa3kPLjogJMlYpXrWCXRedSFbH3oKtbBAjj2PfC3XhINEnUs8sMc1dc4mF1wm8vIqXZ/6PmPKXUkbgeD2nQCTk4QPjtWU4iNEDvjcnJiza//xNtTQvn0LUcfijq2Y2d2zcP6AdT3mK+0cnehacTb1ox4RMSbIaujSUUezg8nMS+/qdS2JUq6UvKcSbNyKsqLHtW/8K1fEFVhZV1gcHiqi55x+zVCrwjrkXPp1u/adrQ2O5d4Z/EY1I23EehM6SbndnQCmQ7ieeFg2jYQAqRs2ktOb90yqGxBF4b9bOe3DDtl9H1vK7n79SNlBoO1LFwTK3jle1FjYiZhHdZzGu79OdMJEcI8+Kl/BDQMIJSdsoigrsV5C1XrcpPioRcbLlHtd+L9Pn3Taj0FZg3a8kZEW7/Oe26kx9EvkINb8U9g6kfPElkbD9N5cM53cMV0guJ5lSRl1haPVAhF6XQkToc9ZbLAC9DuPqig== 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(82310400005)(508600001)(2906002)(16526019)(81166007)(36756003)(5660300002)(7696005)(336012)(86362001)(83380400001)(4326008)(8676002)(110136005)(426003)(36860700001)(40460700003)(47076005)(2616005)(8936002)(316002)(356005)(44832011)(70586007)(54906003)(70206006)(1076003)(6666004)(186003)(26005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:08.9784 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5d15a077-f4d8-4abb-23d0-08da1c7bda01 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: BN8NAM11FT032.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR12MB2675 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" To signify that the macros only support 8-bit xAPIC destination ID. Suggested-by: Maxim Levitsky Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/hyperv/hv_apic.c | 2 +- arch/x86/include/asm/apicdef.h | 4 ++-- arch/x86/kernel/apic/apic.c | 2 +- arch/x86/kernel/apic/ipi.c | 2 +- arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/svm/avic.c | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index db2d92fb44da..fb8b2c088681 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -46,7 +46,7 @@ static void hv_apic_icr_write(u32 low, u32 id) { u64 reg_val; =20 - reg_val =3D SET_APIC_DEST_FIELD(id); + reg_val =3D SET_XAPIC_DEST_FIELD(id); reg_val =3D reg_val << 32; reg_val |=3D low; =20 diff --git a/arch/x86/include/asm/apicdef.h b/arch/x86/include/asm/apicdef.h index 5716f22f81ac..863c2cad5872 100644 --- a/arch/x86/include/asm/apicdef.h +++ b/arch/x86/include/asm/apicdef.h @@ -89,8 +89,8 @@ #define APIC_DM_EXTINT 0x00700 #define APIC_VECTOR_MASK 0x000FF #define APIC_ICR2 0x310 -#define GET_APIC_DEST_FIELD(x) (((x) >> 24) & 0xFF) -#define SET_APIC_DEST_FIELD(x) ((x) << 24) +#define GET_XAPIC_DEST_FIELD(x) (((x) >> 24) & 0xFF) +#define SET_XAPIC_DEST_FIELD(x) ((x) << 24) #define APIC_LVTT 0x320 #define APIC_LVTTHMR 0x330 #define APIC_LVTPC 0x340 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index b70344bf6600..e6b754e43ed7 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -275,7 +275,7 @@ void native_apic_icr_write(u32 low, u32 id) unsigned long flags; =20 local_irq_save(flags); - apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(id)); + apic_write(APIC_ICR2, SET_XAPIC_DEST_FIELD(id)); apic_write(APIC_ICR, low); local_irq_restore(flags); } diff --git a/arch/x86/kernel/apic/ipi.c b/arch/x86/kernel/apic/ipi.c index d1fb874fbe64..2a6509e8c840 100644 --- a/arch/x86/kernel/apic/ipi.c +++ b/arch/x86/kernel/apic/ipi.c @@ -99,7 +99,7 @@ void native_send_call_func_ipi(const struct cpumask *mask) =20 static inline int __prepare_ICR2(unsigned int mask) { - return SET_APIC_DEST_FIELD(mask); + return SET_XAPIC_DEST_FIELD(mask); } =20 static inline void __xapic_wait_icr_idle(void) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 66b0eb0bda94..f68c92c99abf 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -1325,7 +1325,7 @@ void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 ic= r_low, u32 icr_high) if (apic_x2apic_mode(apic)) irq.dest_id =3D icr_high; else - irq.dest_id =3D GET_APIC_DEST_FIELD(icr_high); + irq.dest_id =3D GET_XAPIC_DEST_FIELD(icr_high); =20 trace_kvm_apic_ipi(icr_low, irq.dest_id); =20 diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index a1cf9c31273b..655a7d20f8ee 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -299,7 +299,7 @@ static void avic_kick_target_vcpus(struct kvm *kvm, str= uct kvm_lapic *source, */ kvm_for_each_vcpu(i, vcpu, kvm) { if (kvm_apic_match_dest(vcpu, source, icrl & APIC_SHORT_MASK, - GET_APIC_DEST_FIELD(icrh), + GET_XAPIC_DEST_FIELD(icrh), icrl & APIC_DEST_MASK)) { vcpu->arch.apic->irr_pending =3D true; svm_complete_interrupt_delivery(vcpu, --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0015C433EF for ; Tue, 12 Apr 2022 12:39:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352907AbiDLMlg (ORCPT ); Tue, 12 Apr 2022 08:41:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354984AbiDLMir (ORCPT ); Tue, 12 Apr 2022 08:38:47 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2057.outbound.protection.outlook.com [40.107.244.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4577E1F637; Tue, 12 Apr 2022 04:59:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rg47KPz1svRCNjzBnLlIs5SNyaMqKlthXS95/AtSUo+uEO+fBMNffLOO4e+KmooNjG/ecsSO89F0RsSWhSKAeHpnmVpP9mAO2g2ewU9rIMgHMKOesRHFrooDECUv2PIO7kSmsN5TWae7XviZW2A1zuz+/6JzxSUaAXHOqSgSd71cPcbIqg7FD93V5a0EbV2OmRzJOfLpHztZ7RQ+MgTaqJZMnWTmMeyK4OTKWUYerk6AsIntgU2HdNMTq72Z7gf8/DQ0Jd5Ft1/DSvtQrhlPJf9IumHdMB9UBv5KrwVRdDyQLKWzaV4Cj6QUv4Yw1rCcuOt/okiMxmxspopDe+80aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OgtqhG2N2EJ/NS3JDTa9ioIpolwfpjBaAq4CuyFgylA=; b=X8YJBDsQmekHkzjZpjpGKs+tyTkT5xpa6krUSbbaO90BGS79VuQhGdRoUz/rj6wzdmMeDRjqjV6TNWLUwUt6/xEb4WcfhnXVDxjtN82Yhc3orQfOgher/L5ZX6x62HPyIpqNdLoZbLIFkls2a+OzF5tJs3SNoUQOFtB12C/r++ogN1VR4nMYtNZ0NlU7FMOPOQIa5+hD3H/RtQtRyXwUsS1kJ40w+rw4/JPmWaK+3yGWlxLrxYWAAz4HdZmhiF/H3mIJhfoY8x3Vd3DxY5WSaWbE3aHUFr/Y0J1X03RMczJ4cgcTjAbY+lgL03yHPjCX2I3g8re7Ob6NNMmAWMOCNw== 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 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=OgtqhG2N2EJ/NS3JDTa9ioIpolwfpjBaAq4CuyFgylA=; b=lGRv8vosOd9KV453mVzDp2ClSxvAv7KFPucYfVegQsKV0fON2mcliJxSw1xiR5Zt7qq0vrsWeLdXU8UBEj0hPgCiZXx7DRS3ecOMOpkIvN1DUvRkR2o/7Qz6tg65hV0He7k5UAucG0PJ/48YKS/+L7duyKXcWZGIel7c7aw9D7Y= Received: from BN6PR2001CA0006.namprd20.prod.outlook.com (2603:10b6:404:b4::16) by BY5PR12MB4305.namprd12.prod.outlook.com (2603:10b6:a03:213::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:10 +0000 Received: from BN8NAM11FT054.eop-nam11.prod.protection.outlook.com (2603:10b6:404:b4:cafe::b1) by BN6PR2001CA0006.outlook.office365.com (2603:10b6:404:b4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30 via Frontend Transport; Tue, 12 Apr 2022 11:59: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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT054.mail.protection.outlook.com (10.13.177.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:09 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:08 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 03/12] KVM: SVM: Detect X2APIC virtualization (x2AVIC) support Date: Tue, 12 Apr 2022 06:58:13 -0500 Message-ID: <20220412115822.14351-4-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: a06259b2-2971-45af-616a-08da1c7bda95 X-MS-TrafficTypeDiagnostic: BY5PR12MB4305:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XLHxu+VCQuXsGbGJv0n4McfX+nMZPLQE8kwqv2zx4iylOCUMR/SlwTa0T8YHf/MGGc5Myuo57igVJH0UNfAqZqLAPv5ns+YP9HCiSTwCNhGkh7FnFf7RlIhbgXT/BEO3n4o2ZGKuupzIbRcKQq83JBnYZTEH7cIw4Bw5DovXBdaAg9K6fYjEYxP6nN7xju3ENqEZoKOCZfyfF7ksHygECaxNZBa8d3sAEzMEYiKlGCZqx2eqm3rRNoKNggCJJtswmrAF/ZRjT6YIHWDw5nAcsE6kFtIddpGMWGKX6cniPwylRDnkZFRAJsLns3d0HvfC/vz1mpWrZGKeBQkm1RfNtIgMwmwDgXKVUIOUDVFqL2hi7MnBDPuTptNOc3RSABNEXyOZxQAFoB9Nu0cFbeOWz/cyG3Lv+qv/B7IhXm6eASWx6jjdR5XRL2a0E1jYBGwJcXtUGjW5VsAgH0j3f4xQwcimxWWhJ3qx0MJURDxBn7W10IWBSS7g5t8O23Vgly4t5JYgVrFeLfFmEtYWxGpnhs0eSbvkER4mpQaShfCxB61/iUIu5LWVnH7kGTVlgsJv4Kb18fawHy0w2ZQo207l6i+p/VKWTNZxrHqu9ZHbp5HfsIEI0AgdnylJVbmfQUVuL9ikSkxED38qmMRyCfFW9Ceb2jWOSu+N/spoiNt5DlwWYP2j0JZH4Ksc0Po3A7SU5IC7Vox+ujSQLRZTdL92/awGet2qB2mPyWvb77pblD4Jj4re8bZjk8YTI0Fd+//Y 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:(13230001)(4636009)(46966006)(36840700001)(40470700004)(16526019)(26005)(508600001)(336012)(186003)(2616005)(83380400001)(426003)(82310400005)(47076005)(1076003)(36756003)(36860700001)(110136005)(54906003)(316002)(6666004)(7696005)(8676002)(5660300002)(44832011)(86362001)(8936002)(70586007)(70206006)(40460700003)(356005)(81166007)(4326008)(2906002)(36900700001)(309714004);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:09.9499 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a06259b2-2971-45af-616a-08da1c7bda95 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: BN8NAM11FT054.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4305 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add CPUID check for the x2APIC virtualization (x2AVIC) feature. If available, the SVM driver can support both AVIC and x2AVIC modes when load the kvm_amd driver with avic=3D1. The operating mode will be determined at runtime depending on the guest APIC mode. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/svm.h | 3 +++ arch/x86/kvm/svm/avic.c | 34 ++++++++++++++++++++++++++++++++++ arch/x86/kvm/svm/svm.c | 8 ++------ arch/x86/kvm/svm/svm.h | 1 + 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index f70a5108d464..2c2a104b777e 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -195,6 +195,9 @@ struct __attribute__ ((__packed__)) vmcb_control_area { #define AVIC_ENABLE_SHIFT 31 #define AVIC_ENABLE_MASK (1 << AVIC_ENABLE_SHIFT) =20 +#define X2APIC_MODE_SHIFT 30 +#define X2APIC_MODE_MASK (1 << X2APIC_MODE_SHIFT) + #define LBR_CTL_ENABLE_MASK BIT_ULL(0) #define VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK BIT_ULL(1) =20 diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 655a7d20f8ee..fefac51063d3 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -40,6 +40,12 @@ #define AVIC_GATAG_TO_VMID(x) ((x >> AVIC_VCPU_ID_BITS) & AVIC_VM_ID_MASK) #define AVIC_GATAG_TO_VCPUID(x) (x & AVIC_VCPU_ID_MASK) =20 +enum avic_modes { + AVIC_MODE_NONE =3D 0, + AVIC_MODE_X1, + AVIC_MODE_X2, +}; + /* Note: * This hash table is used to map VM_ID to a struct kvm_svm, * when handling AMD IOMMU GALOG notification to schedule in @@ -50,6 +56,7 @@ static DEFINE_HASHTABLE(svm_vm_data_hash, SVM_VM_DATA_HAS= H_BITS); static u32 next_vm_id =3D 0; static bool next_vm_id_wrapped =3D 0; static DEFINE_SPINLOCK(svm_vm_data_hash_lock); +static enum avic_modes avic_mode; =20 /* * This is a wrapper of struct amd_iommu_ir_data. @@ -1004,3 +1011,30 @@ void avic_vcpu_unblocking(struct kvm_vcpu *vcpu) =20 avic_vcpu_load(vcpu); } + +/* + * Note: + * - The module param avic enable both xAPIC and x2APIC mode. + * - Hypervisor can support both xAVIC and x2AVIC in the same guest. + * - The mode can be switched at run-time. + */ +bool avic_hardware_setup(struct kvm_x86_ops *x86_ops) +{ + if (!npt_enabled) + return false; + + if (boot_cpu_has(X86_FEATURE_AVIC)) { + avic_mode =3D AVIC_MODE_X1; + pr_info("AVIC enabled\n"); + } + + if (boot_cpu_has(X86_FEATURE_X2AVIC)) { + avic_mode =3D AVIC_MODE_X2; + pr_info("x2AVIC enabled\n"); + } + + if (avic_mode !=3D AVIC_MODE_NONE) + amd_iommu_register_ga_log_notifier(&avic_ga_log_notifier); + + return !!avic_mode; +} diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index bd4c64b362d2..5ec770a1b4e8 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -4806,13 +4806,9 @@ static __init int svm_hardware_setup(void) nrips =3D false; } =20 - enable_apicv =3D avic =3D avic && npt_enabled && boot_cpu_has(X86_FEATURE= _AVIC); + enable_apicv =3D avic =3D avic && avic_hardware_setup(&svm_x86_ops); =20 - if (enable_apicv) { - pr_info("AVIC enabled\n"); - - amd_iommu_register_ga_log_notifier(&avic_ga_log_notifier); - } else { + if (!enable_apicv) { svm_x86_ops.vcpu_blocking =3D NULL; svm_x86_ops.vcpu_unblocking =3D NULL; } diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index f77a7d2d39dd..c44326eeb3f2 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -571,6 +571,7 @@ extern struct kvm_x86_nested_ops svm_nested_ops; =20 /* avic.c */ =20 +bool avic_hardware_setup(struct kvm_x86_ops *ops); int avic_ga_log_notifier(u32 ga_tag); void avic_vm_destroy(struct kvm *kvm); int avic_vm_init(struct kvm *kvm); --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75EA7C433EF for ; Tue, 12 Apr 2022 12:39:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352753AbiDLMl1 (ORCPT ); Tue, 12 Apr 2022 08:41:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354991AbiDLMir (ORCPT ); Tue, 12 Apr 2022 08:38:47 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2060.outbound.protection.outlook.com [40.107.220.60]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 459901FA44; Tue, 12 Apr 2022 04:59:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hRgV9yquhz0p51dOeN5oX3P2b/kJuNu3OhMwC71Eq5pSq157ME/cQV/iv0VakzLfvYUKA0eaCzY8KEjf4eBya9KcxCC9Z51WPd7tHGc9U6NJVUlfYCgAJl8Du/WvKbwHPM+OMDTH7PEzyI7y9MvjoOBtPiKQZXNrRS3wMxQugcL7Cs4NWzo9Yj9EijlMV+G34Mxvfspl3jxhKCjqE9REGdZgErShq5NovRh4MRPeynvkABbn1U8pfaS3ULC6SAcxQ9feAQ/ASAwMBIOm9Wl14ZCgKbPRqJyqoQR9LF6fsrnH20JiCw6dfW20Owu27FTUArZzOTGXTR7lNkSxMRZUqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gWf+Q1aCWrU4RY9t+xXGlWz4FHX0nHFi9U3en7GG6Fc=; b=j/6FIe+MRQIR6cIzj1P2JcOpISCWIA1abadQ37QAKYo9AL0gNiwkrRU6u4wn/BgEOPkTj6nMHWnwJX37hePYIGP4igI7JOe7IdIhW1cYs/wkjCi5UxLAquPl5d/xIaIs/TY2dGOwBgObX6Ra/bIhm96pu5mCo4BERn8Tl1vcjpjSNBXq3PmsdyaBdcm2KqGO1T7zLC0+ErADbpfpMjuclNd/aGhhrlDiO/KEdcEEiX8OGHpwFPigpxDHIQxIFmJp51sFx7UGCyyT24UB8ccXzBPeoYNnOzPQG+JNFwll3kNoyjIDw5a/XqSpRl+GVYLgdMPTUKOaRrSCr9v28Lk7Ow== 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 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=gWf+Q1aCWrU4RY9t+xXGlWz4FHX0nHFi9U3en7GG6Fc=; b=g4MjwEEGh5H91is1Z1Qvx8odv710qEM9ca/J2HvEjtEJMSlcHdVGuHGGqS5DkXRtJOf2nrZMOKQbZJrmYzQ+vmPJ9e0GVkkMLIwOkS+TT9pp9ZRr7JiKrJaqnpA1r803bkRqnfo3mvNj1pJUe/goTOF8QkJhXQgWxkLA3FZQvfo= Received: from BN6PR2001CA0007.namprd20.prod.outlook.com (2603:10b6:404:b4::17) by CH0PR12MB5092.namprd12.prod.outlook.com (2603:10b6:610:bf::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:10 +0000 Received: from BN8NAM11FT054.eop-nam11.prod.protection.outlook.com (2603:10b6:404:b4:cafe::25) by BN6PR2001CA0007.outlook.office365.com (2603:10b6:404:b4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30 via Frontend Transport; Tue, 12 Apr 2022 11:59: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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT054.mail.protection.outlook.com (10.13.177.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:10 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:09 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 04/12] KVM: SVM: Update max number of vCPUs supported for x2AVIC mode Date: Tue, 12 Apr 2022 06:58:14 -0500 Message-ID: <20220412115822.14351-5-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: ee8bff20-dedf-42b0-1ff4-08da1c7bdaf7 X-MS-TrafficTypeDiagnostic: CH0PR12MB5092:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cnJCnAKhDJ9qgI4yKihIa0UTC5jbHdxUliuZvVBKNVJZxf9+SsmPx/JaIA4i+PX/ewrA+/Golizh8+uWmM0pBaOpU0ChuZv4tojgoVPAltgwJoYima/156Ev8KPkJxEgYqQ/xltjbksaTxL9Mxfyxiq//uHvxq3MD9WE4KYA5RXHuSn3r/xhmsou2+wIKwJuIpQ6UWOlXbkixYgH6gg4GVGJD9+iNCBDnGUBugzssLZAvJverXgF89IcrPvKCsD+2iKY1wPOsIC18Q2yT7gu92wDub5r1fE8PqES9RrW4Zh4rYl0lXm/r6qsaAiurmgYqBnzbgd8qajWUPXtI58cPKVyeW30AaIebiP5nIAxzkByMRX2xXjvuzxLwaK/a9Oaf3jj8m+/S94/2cRd/gnctF7VFyf9mU2xUMusZQmoeWUOJlsYm/kbMS8/OuFjIVfVVFxv76CHQsmpfEaYvrMhEl0WriVEcn6jSKqQxgPuIxT9+LkK+xpsIv6PFn8yuS383ZGS18Cdxu8+zN1gF7JH7en9+urcW/efHCo9s0SMfR0vHbXtERRe+tV1H8pUyBpPZjdR+IUnwLjE/MzWmxlGPKIEHENHcDyVYg2K+9T0J/iIVp5FZbdEZXjGQkUt84cYx4BlvfMqd9plL3PtlAZaIfLxl9uy9nqcxEEGUgxskeBjXQrDFmbP4txxntBJD6so1ePmBJeb+2EmSgqxwHtdHg== 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(86362001)(8676002)(40460700003)(8936002)(186003)(5660300002)(81166007)(356005)(44832011)(2906002)(15650500001)(83380400001)(6666004)(7696005)(4326008)(70206006)(70586007)(426003)(2616005)(1076003)(16526019)(336012)(26005)(316002)(110136005)(54906003)(47076005)(36860700001)(508600001)(82310400005)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:10.5905 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ee8bff20-dedf-42b0-1ff4-08da1c7bdaf7 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: BN8NAM11FT054.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5092 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" xAVIC and x2AVIC modes can support diffferent number of vcpus. Update existing logics to support each mode accordingly. Also, modify the maximum physical APIC ID for AVIC to 255 to reflect the actual value supported by the architecture. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/svm.h | 12 +++++++++--- arch/x86/kvm/svm/avic.c | 8 +++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 2c2a104b777e..4c26b0d47d76 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -258,10 +258,16 @@ enum avic_ipi_failure_cause { =20 =20 /* - * 0xff is broadcast, so the max index allowed for physical APIC ID - * table is 0xfe. APIC IDs above 0xff are reserved. + * For AVIC, the max index allowed for physical APIC ID + * table is 0xff (255). */ -#define AVIC_MAX_PHYSICAL_ID_COUNT 0xff +#define AVIC_MAX_PHYSICAL_ID 0XFEULL + +/* + * For x2AVIC, the max index allowed for physical APIC ID + * table is 0x1ff (511). + */ +#define X2AVIC_MAX_PHYSICAL_ID 0x1FFUL =20 #define AVIC_HPA_MASK ~((0xFFFULL << 52) | 0xFFF) #define VMCB_AVIC_APIC_BAR_MASK 0xFFFFFFFFFF000ULL diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index fefac51063d3..6c4519db3fc3 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -183,7 +183,7 @@ void avic_init_vmcb(struct vcpu_svm *svm) vmcb->control.avic_backing_page =3D bpa & AVIC_HPA_MASK; vmcb->control.avic_logical_id =3D lpa & AVIC_HPA_MASK; vmcb->control.avic_physical_id =3D ppa & AVIC_HPA_MASK; - vmcb->control.avic_physical_id |=3D AVIC_MAX_PHYSICAL_ID_COUNT; + vmcb->control.avic_physical_id |=3D AVIC_MAX_PHYSICAL_ID; vmcb->control.avic_vapic_bar =3D APIC_DEFAULT_PHYS_BASE & VMCB_AVIC_APIC_= BAR_MASK; =20 if (kvm_apicv_activated(svm->vcpu.kvm)) @@ -198,7 +198,8 @@ static u64 *avic_get_physical_id_entry(struct kvm_vcpu = *vcpu, u64 *avic_physical_id_table; struct kvm_svm *kvm_svm =3D to_kvm_svm(vcpu->kvm); =20 - if (index >=3D AVIC_MAX_PHYSICAL_ID_COUNT) + if ((avic_mode =3D=3D AVIC_MODE_X1 && index > AVIC_MAX_PHYSICAL_ID) || + (avic_mode =3D=3D AVIC_MODE_X2 && index > X2AVIC_MAX_PHYSICAL_ID)) return NULL; =20 avic_physical_id_table =3D page_address(kvm_svm->avic_physical_id_table_p= age); @@ -245,7 +246,8 @@ static int avic_init_backing_page(struct kvm_vcpu *vcpu) int id =3D vcpu->vcpu_id; struct vcpu_svm *svm =3D to_svm(vcpu); =20 - if (id >=3D AVIC_MAX_PHYSICAL_ID_COUNT) + if ((avic_mode =3D=3D AVIC_MODE_X1 && id > AVIC_MAX_PHYSICAL_ID) || + (avic_mode =3D=3D AVIC_MODE_X2 && id > X2AVIC_MAX_PHYSICAL_ID)) return -EINVAL; =20 if (!vcpu->arch.apic->regs) --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3335EC433FE for ; Tue, 12 Apr 2022 12:41:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354777AbiDLMnL (ORCPT ); Tue, 12 Apr 2022 08:43:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355012AbiDLMis (ORCPT ); Tue, 12 Apr 2022 08:38:48 -0400 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on20630.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eaa::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7DF064EDC2; Tue, 12 Apr 2022 04:59:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Whct3Kc53qbsgmsLyzBreQ50eXHK2pFZgcF0hGSL1ZMT1qo5SD66+4rfHN4eRIWnF9jrz4eROHN2wJj+niJu3QeDt5Iqm01UvL7G+sDpkLxXZDUtlWv7n3OKMahsBYUJ5r0aqN51qJvX1XZsORgC+5fyfp0CJBvPRvZgzJVR2aMGGDsVpx2XNL/EFNp3zFxev8hlC3zvUY318RlvtrTC9cO98CcZoZqlIygiNtamZN/9dFkjU3ZJy8wRyg+rPutSXn9Ja7ttZKQknj1LUkd53TR0kXFkjuzqZuxnIT3ZM1aXsx5OsbQqfEmVSupXuUuda2q3joSdwgUeoGQKR7QnvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qnoWV9wc7zlYms5ds6rbvb11cTDLum9TslUT82sGkBU=; b=M5jqKlWmD21N04eH4mqJg1+1IVRd5ldMbF4ms6pmTBwmKiIz6eNn2Cz3EYR4qH8eNHH3oHRLD+I4g4SORUMNaRmg9th3IkkHYWQ+MQQ5yPahn5d/EhClFiUxkz2Ue8H1Wd6V3OKLRj8z7GwLkYb9o4BKVIwMqM0e2QoS5pQ76Y3CU3o/HAqlGx6TPy/Gjj6CsJhWKZazeFnTXOVuNOEJ+eIL/5ZIJWm8W0zFrF1LzA25M6p1+c9ONzt/olJX5cJ+d1HeukUZHW36tdw0SWkckuauOt2p2a1DeQEK65Z2kJBCsTIcseYx0vl2ahhbhPmNSwHZG6j8Old/RuxUXspvPw== 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 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=qnoWV9wc7zlYms5ds6rbvb11cTDLum9TslUT82sGkBU=; b=K/knDvgE9sGbEblUaAbNKCGAg8+On7qroy8DEGiIuqWJ/9VVnBMsZB1BZxvqz5k/JYhAs2rZaA8c8Z5jwWF1I7KJ2KzP6byIZnWumixjVby5yaDti6u/zJgUiBZ8DvBtb+muxeZW7TEbwyATRXloUK43Qmc5FAZeo1aEIR34zxc= Received: from BN9PR03CA0739.namprd03.prod.outlook.com (2603:10b6:408:110::24) by BL1PR12MB5061.namprd12.prod.outlook.com (2603:10b6:208:310::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:11 +0000 Received: from BN8NAM11FT035.eop-nam11.prod.protection.outlook.com (2603:10b6:408:110:cafe::d2) by BN9PR03CA0739.outlook.office365.com (2603:10b6:408:110::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18 via Frontend Transport; Tue, 12 Apr 2022 11:59:11 +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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT035.mail.protection.outlook.com (10.13.177.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:11 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:10 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 05/12] KVM: SVM: Update avic_kick_target_vcpus to support 32-bit APIC ID Date: Tue, 12 Apr 2022 06:58:15 -0500 Message-ID: <20220412115822.14351-6-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: 6849b8b6-cace-4e6e-ca63-08da1c7bdb89 X-MS-TrafficTypeDiagnostic: BL1PR12MB5061:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DCwoAdlYnlBbnvxdYpnemER6mS1BplSWPlI9V1xSdJWNwrCudPCwybQ8I4SK2qIlsl/N4Qoyxa/6WNn6a9fiej1qXjexTjpalc+Oiq3YVgpvMTklp1+5yX4UZakfaiKND9/3lycalwvUzAhwDnbHaW7HwD/e3Rw52tMdokVAVc0MRNmhhj6Sgrmc742sVGRIiJJUm5znYfuFKwF0sd//sa9peaC3kgroSICJ6f0mDrmFLJ1NMKfmKOuyFYzDTtJismg6rL45ei7iSRUVth1rxyJZF94w0IKC+PKgkrHkXeedKNr63PSEVd+LTj7hQlmbiCyyYZUGPwpOvHRZoCMG6OARnV7Nql+v/3LGcuAFghzgDMWjKcyN3x12BQqLRGXVil6W9uXAOgsyECuG831ULbvVUDxqFwU3uQkyNy7GJp++k1VZ/pAz/LtioUhQEuEPo6ZgZIynyGc0o7sIHJA2fxaU9hBMWXJhCXeVIATV9pCTklbp5r/gjnXS+DGSNiztn53MDSCM09fdT4p6FmL1YhZwY1Oc3qr+qeQWYkmaoFOtp94n6k8N8Uo4ciXNs38kZp1Hw8MrSuoDDanKWs5zVX+U1RrkhWSIfyGd0g9wjF3dPrx9/EOw0bTJC/lTiTfiOqPLprCgSeLjPHGxxpNXhHB8Zs4hGTBCNJ2X6xKDY/Kjl0HkPv2wFzZKH80OkjsQ2Wqg2NIWfJOpCA5QudHW9Q== 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(86362001)(8676002)(40460700003)(8936002)(186003)(5660300002)(81166007)(356005)(44832011)(2906002)(15650500001)(83380400001)(7696005)(4326008)(70206006)(70586007)(426003)(2616005)(1076003)(16526019)(336012)(26005)(316002)(110136005)(54906003)(47076005)(36860700001)(508600001)(82310400005)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:11.5517 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6849b8b6-cace-4e6e-ca63-08da1c7bdb89 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: BN8NAM11FT035.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5061 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" In x2APIC mode, ICRH contains 32-bit destination APIC ID. So, update the avic_kick_target_vcpus() accordingly. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm/avic.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 6c4519db3fc3..609dcbe52a86 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -307,9 +307,15 @@ static void avic_kick_target_vcpus(struct kvm *kvm, st= ruct kvm_lapic *source, * since entered the guest will have processed pending IRQs at VMRUN. */ kvm_for_each_vcpu(i, vcpu, kvm) { + u32 dest; + + if (apic_x2apic_mode(vcpu->arch.apic)) + dest =3D icrh; + else + dest =3D GET_XAPIC_DEST_FIELD(icrh); + if (kvm_apic_match_dest(vcpu, source, icrl & APIC_SHORT_MASK, - GET_XAPIC_DEST_FIELD(icrh), - icrl & APIC_DEST_MASK)) { + dest, icrl & APIC_DEST_MASK)) { vcpu->arch.apic->irr_pending =3D true; svm_complete_interrupt_delivery(vcpu, icrl & APIC_MODE_MASK, --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD5CDC433EF for ; Tue, 12 Apr 2022 12:39:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352810AbiDLMly (ORCPT ); Tue, 12 Apr 2022 08:41:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44876 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355004AbiDLMir (ORCPT ); Tue, 12 Apr 2022 08:38:47 -0400 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2079.outbound.protection.outlook.com [40.107.237.79]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E04C4EDEE; Tue, 12 Apr 2022 04:59:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZlNDFsjZhy/qP95mUlhk10lrAGwl70aN/awF8b7kd1lBrSBmfJ7paDDbDkZk9sExjzea2GfJjSZ0RuLcSmErzKRAy1Z/hToibH7mpUPiK0vadJNYTUoM2evFcWGbI3Qpw/FwcDslTaP4qRwQZ6ndj0IEsx3mCtdPGeORvEqjTS2L1xcRKs4DtyHXVpza7w9d733GnivHPKBQtgKTm1hvbP8ydAyFLXW/Y7J2ha2/N/3ozJ5swsyaJXXTYu0f4ayaVrg9HkIKn2KpmOS6po7R/CpyfHc64SUUU9kRNgohAvrrbwCPVZpsaG5uDQu1fYubjZwfAAzUEBRyBwDYu6u2Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aFW+dB5Wol+0LL8f3dgVcy7JTZvy8eLRETWZ494AGAc=; b=KV8sNylx7wvgD9KIffnlFF1v3ZNmzkW6irLiN4gqsMNLa6Zn72lRPhdish0cmRD7/2CrHuMtgEfEhZGYN0FsKgsYKX0ERgAuowMzSqiDVBV6p6aL29qu1zAxutmNZjURkJWFrPuD2wb5NMIRLHwpAprYgvGtzrOMPy34olKK/Kwb6ovgoXwuBhCMrTRgTNLq4vMpWcH4yYAXgYqJSXrFXoCx8clueNMXkrFoAghyAZoCHgT3wKiWWQbiX8O8MoyXngdPC6UpFJOdaA9zcMHyaYObqoVwcuYMfhOxvu0ilJqcfHnAw67Tb3SgkskilBjgWQwAkN481aQ25C1xFnx7Vg== 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 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=aFW+dB5Wol+0LL8f3dgVcy7JTZvy8eLRETWZ494AGAc=; b=FazzhUp1G7HzJDN44/397lnHekdPp/5O9L6g7WuCq22i5WUACgHcT4kfCP3vtf6B6NBOaTmAniMWGASSqdI6Z8TiUWYAl3rSFlPMESkKijPg67DFxSvTZtNeu2zb6CZi6Q0O1nI9bKlLC73yIOEe8xlfg05ufP9j7A5Iacv83H8= Received: from BN9PR03CA0746.namprd03.prod.outlook.com (2603:10b6:408:110::31) by BY5PR12MB4854.namprd12.prod.outlook.com (2603:10b6:a03:1d1::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18; Tue, 12 Apr 2022 11:59:12 +0000 Received: from BN8NAM11FT035.eop-nam11.prod.protection.outlook.com (2603:10b6:408:110:cafe::b7) by BN9PR03CA0746.outlook.office365.com (2603:10b6:408:110::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Tue, 12 Apr 2022 11:59: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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT035.mail.protection.outlook.com (10.13.177.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:12 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:11 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 06/12] KVM: SVM: Do not support updating APIC ID when in x2APIC mode Date: Tue, 12 Apr 2022 06:58:16 -0500 Message-ID: <20220412115822.14351-7-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: 4ab6e330-1336-4ebf-1412-08da1c7bdbd6 X-MS-TrafficTypeDiagnostic: BY5PR12MB4854:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yilzhqgt5XFNFPE+/jUd8wkbpdsV6+uNNNfIPn+Pun2Uc8uD4CBymyUsCPx9rbbKVPTRimYJA+t9tVLuY88j6lAUjhvPHNWCBdPO7B4TcGD9NF+s14omcUhHowkDR8HRDzU5i7BqaHAIpMQOOKP6ZND7jt7pT3vK+cRh4DMf8Vm2wxMpuKUV4R5X94MkbS2RG/xtggklMYduTc8rrrRaor1UQFZLnvm145FYH+5iWk+wTHVAt9kVy2rPeVJIltjmHH9fMDcofjsdxt8/BtTUrNabTvfQWx74G9NoJKMfZOq4iGvOC+OJCrTF8KKrF2SW5hlMBgfrttiJ3qkTnffNDB7495mUG98nl31RqdlQOAYnnp34a7FqB/iA/c5zmROa2e6Ur3xxd8l5eT3dTrYh4QOKHhTxnXH9BB8oN7d5Qjrh3BEo4z87B1N/Hwi5CQvBvuhdOBD0pEdS2eL5Cqs4wkHNXZNz435hYjV5/UjGt9ovVV+0QAeSa8m0zfhwY5GuBz+inYxIAh4XKZ6NcoFWzs02GeSNUkwxSqHAqaq02OJEgHqol/R3S/guVtFNsdU6YmR6UoSPJ+pwK8B0FYTkzXOUdZVNF8O8lcnpPfxvMzOEvEZKHG6IrdwhbBRSFo7AcLbO7UZkQnugK5jLqpVVcjozxAYVBa0r1sOXEMKDtpmP+LTCXGNo1E/BLD5dKeES+RJxc8gEjsIs7hBElkkUdw== 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:(13230001)(4636009)(46966006)(36840700001)(40470700004)(81166007)(83380400001)(316002)(110136005)(70586007)(70206006)(54906003)(36860700001)(8676002)(4326008)(40460700003)(47076005)(7696005)(1076003)(16526019)(26005)(186003)(86362001)(2616005)(508600001)(356005)(336012)(426003)(5660300002)(36756003)(82310400005)(8936002)(44832011)(2906002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:12.0516 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4ab6e330-1336-4ebf-1412-08da1c7bdbd6 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: BN8NAM11FT035.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4854 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In X2APIC mode, the Logical Destination Register is read-only, which provides a fixed mapping between the logical and physical APIC IDs. Therefore, there is no Logical APIC ID table in X2AVIC and the processor uses the X2APIC ID in the backing page to create a vCPU=E2=80=99s logical ID. In addition, KVM does not support updating APIC ID in x2APIC mode, which means AVIC does not need to handle this case. Therefore, check x2APIC mode when handling physical and logical APIC ID update, and when invalidating logical APIC ID table. Suggested-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit Reviewed-by: Maxim Levitsky --- arch/x86/kvm/svm/avic.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 609dcbe52a86..22ee1098e2a5 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -424,8 +424,13 @@ static void avic_invalidate_logical_id_entry(struct kv= m_vcpu *vcpu) { struct vcpu_svm *svm =3D to_svm(vcpu); bool flat =3D svm->dfr_reg =3D=3D APIC_DFR_FLAT; - u32 *entry =3D avic_get_logical_id_entry(vcpu, svm->ldr_reg, flat); + u32 *entry; =20 + /* Note: x2AVIC does not use logical APIC ID table */ + if (apic_x2apic_mode(vcpu->arch.apic)) + return; + + entry =3D avic_get_logical_id_entry(vcpu, svm->ldr_reg, flat); if (entry) clear_bit(AVIC_LOGICAL_ID_ENTRY_VALID_BIT, (unsigned long *)entry); } @@ -437,6 +442,10 @@ static int avic_handle_ldr_update(struct kvm_vcpu *vcp= u) u32 ldr =3D kvm_lapic_get_reg(vcpu->arch.apic, APIC_LDR); u32 id =3D kvm_xapic_id(vcpu->arch.apic); =20 + /* AVIC does not support LDR update for x2APIC */ + if (apic_x2apic_mode(vcpu->arch.apic)) + return 0; + if (ldr =3D=3D svm->ldr_reg) return 0; =20 @@ -457,6 +466,14 @@ static int avic_handle_apic_id_update(struct kvm_vcpu = *vcpu) struct vcpu_svm *svm =3D to_svm(vcpu); u32 id =3D kvm_xapic_id(vcpu->arch.apic); =20 + /* + * KVM does not support apic ID update for x2APIC. + * Also, need to check if the APIC ID exceed 254. + */ + if (apic_x2apic_mode(vcpu->arch.apic) || + (vcpu->vcpu_id >=3D APIC_BROADCAST)) + return 0; + if (vcpu->vcpu_id =3D=3D id) return 0; =20 --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72ABEC433EF for ; Tue, 12 Apr 2022 12:40:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351913AbiDLMm1 (ORCPT ); Tue, 12 Apr 2022 08:42:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355014AbiDLMis (ORCPT ); Tue, 12 Apr 2022 08:38:48 -0400 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam07on2047.outbound.protection.outlook.com [40.107.95.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9E8D580F9; Tue, 12 Apr 2022 04:59:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V2lbkVen7i/ZXkYcnxHMBC8zHYYwJhWvmz5SWSptPPOIxAJSplU0mIU3rk6GfI+PI3YTHOjqigBnTa0Oyb4rlD2wWArW59FA/jixl4JOHIwZCqHjLdOgaABnsfZHph0JlbObuPXJRquii1LYd93xo10mIC0UkkY2BLlNL5F+44r2BQZQe/WG/3X72/L93O0IZcNONc89SPrWDgQWUcwqQKa0O/8pp0HArsT3YnAxTzF6/vnaSwwiZMY/PG4YyqvkR8vL+AslKAi4Mk3MtppxYKOsigJ5aTLb3/Ujta0Yu6sf+t3S6eoTxNHGJ9UKfyKrg7ujHyYQqwQKrg/UZwn1Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WCVn+5SCOMNXN/rOQAD2sMpI8vn/wEzuC8wYA8quyUI=; b=IY17Akfoa2/luQWrrNuI9yAEItc9qnsEHT++Unxa8Iv0eGWVtUbBn28wrUkOaM/CcLikW8anjBU9LQfhnLGmeF1IcJRDS0TDgI88k2abUIm7M0z86BPF3sORBLDzQo2LQnP8TkUJAQqqZicovJq7xx96NB8kckHIyl/wj+OtN5SZHPiJHG9EjkIKReSjBkrQ4veXvALX4Ygd9C89Kmdq69HAGIZVMWZSNxB9y72969ZU3mufss0M7h6YM95gDvfSlG0q6lR3C5BrzHYRTUM76eAh0UdioykiGT4NUbkfAykASTeGmF/OWTmla6gCZqWLjAI+POd8VYbxJzYhBeK6Hw== 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 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=WCVn+5SCOMNXN/rOQAD2sMpI8vn/wEzuC8wYA8quyUI=; b=au9r/vsCrsU1UU1I52k+Zfevim6Pcrp8+A9R0V5G3P/UyA8QgJl0rmvWlyebuKLIWeT/bpw/Llqb4sAVLwDBgNGoouxmRpdWmEgLvkXGnv6fWX76UeduTUlyKXrQAEgDT8Jm1DKB3EVgkLc7iW2pA5oFMZWyy1/47HoEdoZFjqY= Received: from BN9PR03CA0737.namprd03.prod.outlook.com (2603:10b6:408:110::22) by DM6PR12MB2761.namprd12.prod.outlook.com (2603:10b6:5:41::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:13 +0000 Received: from BN8NAM11FT035.eop-nam11.prod.protection.outlook.com (2603:10b6:408:110:cafe::f3) by BN9PR03CA0737.outlook.office365.com (2603:10b6:408:110::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18 via Frontend Transport; Tue, 12 Apr 2022 11:59: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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT035.mail.protection.outlook.com (10.13.177.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:12 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:11 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 07/12] KVM: SVM: Adding support for configuring x2APIC MSRs interception Date: Tue, 12 Apr 2022 06:58:17 -0500 Message-ID: <20220412115822.14351-8-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: 07c140c1-8315-4d6f-5ba3-08da1c7bdc41 X-MS-TrafficTypeDiagnostic: DM6PR12MB2761:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 61MRIECBGDq8a1jqUc3HcoH4M7JgzUyopWelGfWdYdaK2u0mBn1VlrqIUYOr8pR2IGBP1juxzzQnnhU9Jh4pOPni2xpLM7wIZpZbyK67Xxgzoewe/v+X8IAGu3q4BPB4NVLoY4YQA7V4b9vaUwhaE4TYwEEDplSZMCeJufR1by3ROFoeRXt8jicqcQbevzC8R8IplmwvnMBUtRmL/zJ0saK1Y6bZLXR9ACm5pzp6Vremn2X2vvn9o6BfjAoE/JLPBpUU5LLYmrzfY9BMaPZawskjnPWTr6RIuNtnZztxuHGcbP9zU1e+8L7SCiWW4r282GisW6QgVKDj6YRJg7dBSRIJYe0g7uFOwyc6TVVTlsR2PfLjOE/xvzvBzpsp6Da7qXod/vhiFb2yX6RQaTJCe+osLlq/3jcRq2q/QRdX+B5EK3ck/zevN5hJdWZ8VAR47QinWpl9M+jYwlIFB60wDVP1ns9WMiOPipb62cNX/JUjJT8rbW8AIjTBNK31p8ap1jV3Eqozru0Hsg6IoWtcU/0wNEAHa+lx0PLka0uKDhBrnpi4BBeRNas+N4YUr51tPeFlAvpVFdgYEPOcDqiNJVhuakqzKt+9vjUbi5IFWzggQBeSWYzWbz7lGlFUhH4n9jreOoG/SMT+w07KQjFswjM9+k4sQPS5YWde6hyEiWjNJt6+iU0TcdNXpc32fDAZUfMHTPJc4PjnJTeBWDApiA== 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:(13230001)(4636009)(46966006)(36840700001)(40470700004)(82310400005)(110136005)(44832011)(2906002)(4326008)(54906003)(316002)(70206006)(70586007)(36756003)(8936002)(5660300002)(508600001)(86362001)(1076003)(40460700003)(7696005)(2616005)(8676002)(356005)(81166007)(426003)(336012)(186003)(26005)(16526019)(83380400001)(47076005)(36860700001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:12.7547 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 07c140c1-8315-4d6f-5ba3-08da1c7bdc41 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: BN8NAM11FT035.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2761 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When enabling x2APIC virtualization (x2AVIC), the interception of x2APIC MSRs must be disabled to let the hardware virtualize guest MSR accesses. Current implementation keeps track of list of MSR interception state in the svm_direct_access_msrs array. Therefore, extends the array to include x2APIC MSRs. Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm/svm.c | 29 ++++++++++++++++++++++++++++- arch/x86/kvm/svm/svm.h | 5 +++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 5ec770a1b4e8..c85663b62d4e 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -76,7 +76,7 @@ static uint64_t osvw_len =3D 4, osvw_status; =20 static DEFINE_PER_CPU(u64, current_tsc_ratio); =20 -static const struct svm_direct_access_msrs { +static struct svm_direct_access_msrs { u32 index; /* Index of the MSR */ bool always; /* True if intercept is initially cleared */ } direct_access_msrs[MAX_DIRECT_ACCESS_MSRS] =3D { @@ -774,6 +774,32 @@ static void add_msr_offset(u32 offset) BUG(); } =20 +static void init_direct_access_msrs(void) +{ + int i, j; + + /* Find first MSR_INVALID */ + for (i =3D 0; i < MAX_DIRECT_ACCESS_MSRS; i++) { + if (direct_access_msrs[i].index =3D=3D MSR_INVALID) + break; + } + BUG_ON(i >=3D MAX_DIRECT_ACCESS_MSRS); + + /* + * Initialize direct_access_msrs entries to intercept X2APIC MSRs + * (range 0x800 to 0x8ff) + */ + for (j =3D 0; j < 0x100; j++) { + direct_access_msrs[i + j].index =3D APIC_BASE_MSR + j; + direct_access_msrs[i + j].always =3D false; + } + BUG_ON(i + j >=3D MAX_DIRECT_ACCESS_MSRS); + + /* Initialize last entry */ + direct_access_msrs[i + j].index =3D MSR_INVALID; + direct_access_msrs[i + j].always =3D true; +} + static void init_msrpm_offsets(void) { int i; @@ -4739,6 +4765,7 @@ static __init int svm_hardware_setup(void) memset(iopm_va, 0xff, PAGE_SIZE * (1 << order)); iopm_base =3D page_to_pfn(iopm_pages) << PAGE_SHIFT; =20 + init_direct_access_msrs(); init_msrpm_offsets(); =20 supported_xcr0 &=3D ~(XFEATURE_MASK_BNDREGS | XFEATURE_MASK_BNDCSR); diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index c44326eeb3f2..e340c86941be 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -29,8 +29,9 @@ #define IOPM_SIZE PAGE_SIZE * 3 #define MSRPM_SIZE PAGE_SIZE * 2 =20 -#define MAX_DIRECT_ACCESS_MSRS 20 -#define MSRPM_OFFSETS 16 +#define MAX_DIRECT_ACCESS_MSRS (20 + 0x100) +#define MSRPM_OFFSETS 30 + extern u32 msrpm_offsets[MSRPM_OFFSETS] __read_mostly; extern bool npt_enabled; extern bool intercept_smi; --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0116C4167B for ; Tue, 12 Apr 2022 12:41:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354616AbiDLMnD (ORCPT ); Tue, 12 Apr 2022 08:43:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355015AbiDLMis (ORCPT ); Tue, 12 Apr 2022 08:38:48 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2044.outbound.protection.outlook.com [40.107.92.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DE4F1088; Tue, 12 Apr 2022 04:59:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cQuoDZVmHxTdUShgDHhgGAtBILuXMJmlmFplzWJLD4uw6MwAzQHE7yV4YaLlVtPIpJwWhwvG4zebd8BNwC7JRvkPF+CPZJa/OoVkb+K6dFKAOV+fKFABCe8K3dw6IobenP5I8bY9uo80AzYzrTQUsbW37SI3HzT1cM9n2b+qzTNxc41PPBDH2aLXGV3Qnb/fVuxRWpbjTuYelJNe6pfZAKHAC75i0PCseX8OFV0dw9w2juboehUVuOU8YiRM7CrEAJwPjDqfKDS8g2N9SVBLO5D+uPGtDi0GdbxVw+xKaCahlAUixm2fS//L8UyIfNbfOEVL0wx2uSKrjFWqhoNwWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UORJKTj+0Ac7xRmmokcm1s6rEllH5PfNQD51lTUlZ8A=; b=YuynJMMrU1LrE5SoBj8o9RXUwvldRXCY5hx2/ZTz5CTP2Usp9t0QycAWlcJ8y3/wmZ0Ton0Uye/mDHGsLsKp2eZb/6wYBDXbQGoho/s1tZs0Erx814GnqN/vfRwolYsVB9BOZ1CUyHaKfV1vL6FaCAHuLYW+TP4D5UcI/97T4eHp7QhkJiV8m0y0C1GPZ6X5S/CTCIDDDHqZNt+WGenDCvEugkk2xAwkz/WQB689IVEulyFbNa1jeAmOH72B0z/W7WjtaTKThDiv9wDgOsLuUo691MwEY8in2Wirdaquc/tv6a5UAhAO6+cjiNu6NOj8biQq0GLvdmKyE5yC3uBq5w== 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 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=UORJKTj+0Ac7xRmmokcm1s6rEllH5PfNQD51lTUlZ8A=; b=SdE/8SfmtnEKG2XPNVahfNw9I+6J5GLCQnOif7E8c/XwJmUdv3/86SNTEDjk5dsvk+pomw6xLdrjZKjFjQ+4K2WT1+mZAU2hDX1ouDCdmimN5eLaoveXcMe3GIbyGl64deM9Tuxnf0sYNXvUnVpSXHGJPIHfaHkF/MFjdKB2PMs= Received: from BN6PR12CA0046.namprd12.prod.outlook.com (2603:10b6:405:70::32) by SN1PR12MB2576.namprd12.prod.outlook.com (2603:10b6:802:22::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:14 +0000 Received: from BN8NAM11FT010.eop-nam11.prod.protection.outlook.com (2603:10b6:405:70:cafe::fc) by BN6PR12CA0046.outlook.office365.com (2603:10b6:405:70::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18 via Frontend Transport; Tue, 12 Apr 2022 11:59:14 +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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT010.mail.protection.outlook.com (10.13.177.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:13 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:12 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 08/12] KVM: SVM: Update AVIC settings when changing APIC mode Date: Tue, 12 Apr 2022 06:58:18 -0500 Message-ID: <20220412115822.14351-9-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: c03dec3d-6ad4-4276-1b4c-08da1c7bdcdd X-MS-TrafficTypeDiagnostic: SN1PR12MB2576:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bIDgGtJJCkG4ARSDIPGDxxOKxqe3at/24IUg0URUJ1qir8FK7AtyGPPMEss2HYsVHV6lzASpl41v/pwbhNTsuBhJHLP1VINVkkxNXpQc1CGpGbdfkS86Ko/EixuBrxFYfWpB7A4AH/gdvfs4UDx7UbOLOac5uwP9gYKt02YquCgj8QFzCz5y8WIYaIeJdD+vISWpYpI78/n2JNupfzJX4NSbkGKg7lgncbIXHqirIpQAPvzvF97fugUAakPw95vc2yWqXggewLOCWQ8Z/7XZ8EpY9XIWL73q+drL4b2xH8ts03xwu8LQ5UORKtcKp1XAfuR6ijNd1YVV2mGTp9LBwT9ZHqH19TSsm3y9LnGBuXQDl5IsCADvtQiqu6wrm8WNDVOXDuz5egA6LfWdlyPjPQhfdPgGpzZfBLA/oQRoJ2oTchsDe9upZ4s77Ur3E09RFfmxQdtfyj4/KfanUC7HSpgABy2WTocff/kmM+FKUk2tuIEoPZrzb8FIcst+6vefsqXjK5EMzp0jOcMBcd3aA/EsDzMeaNmaMxkhNXhgjHe0hG9ilNE0Pv8ooHViAxsP5XcfqFLdqLcR7zSxsC6ds84s8Rt/3ezZDbOrbJddACvdza9x/oKt3miS6QTDAL+m+tFCvfezyKIFyPkL/8QnlNLv7WIvs1uWTsZQCadeGn63yYKlcEftunS47d0t3pfbzENC6iTiiIvWYqiTZ5KV5w== 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(86362001)(8676002)(40460700003)(8936002)(186003)(5660300002)(81166007)(356005)(44832011)(2906002)(15650500001)(83380400001)(7696005)(4326008)(70206006)(70586007)(426003)(2616005)(1076003)(16526019)(336012)(26005)(316002)(110136005)(54906003)(47076005)(36860700001)(508600001)(82310400005)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:13.7754 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c03dec3d-6ad4-4276-1b4c-08da1c7bdcdd 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: BN8NAM11FT010.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2576 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When APIC mode is updated (e.g. disabled, xAPIC, or x2APIC), KVM needs to call kvm_vcpu_update_apicv() to update AVIC settings accordingly. Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm/avic.c | 15 +++++++++++++++ arch/x86/kvm/svm/svm.c | 1 + 2 files changed, 16 insertions(+) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 22ee1098e2a5..01392b8364f4 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -616,6 +616,21 @@ void avic_apicv_post_state_restore(struct kvm_vcpu *vc= pu) avic_handle_ldr_update(vcpu); } =20 +void avic_set_virtual_apic_mode(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm =3D to_svm(vcpu); + + if (!lapic_in_kernel(vcpu) || (avic_mode =3D=3D AVIC_MODE_NONE)) + return; + + if (kvm_get_apic_mode(vcpu) =3D=3D LAPIC_MODE_INVALID) { + WARN_ONCE(true, "Invalid local APIC state (vcpu_id=3D%d)", vcpu->vcpu_id= ); + return; + } + + kvm_vcpu_update_apicv(&svm->vcpu); +} + static int avic_set_pi_irte_mode(struct kvm_vcpu *vcpu, bool activate) { int ret =3D 0; diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index c85663b62d4e..b7dbd8bb2c0a 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -4606,6 +4606,7 @@ static struct kvm_x86_ops svm_x86_ops __initdata =3D { .enable_nmi_window =3D svm_enable_nmi_window, .enable_irq_window =3D svm_enable_irq_window, .update_cr8_intercept =3D svm_update_cr8_intercept, + .set_virtual_apic_mode =3D avic_set_virtual_apic_mode, .refresh_apicv_exec_ctrl =3D avic_refresh_apicv_exec_ctrl, .check_apicv_inhibit_reasons =3D avic_check_apicv_inhibit_reasons, .apicv_post_state_restore =3D avic_apicv_post_state_restore, --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFDE1C43219 for ; Tue, 12 Apr 2022 12:41:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354507AbiDLMm7 (ORCPT ); Tue, 12 Apr 2022 08:42:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355017AbiDLMis (ORCPT ); Tue, 12 Apr 2022 08:38:48 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2067.outbound.protection.outlook.com [40.107.94.67]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1A6DB43; Tue, 12 Apr 2022 04:59:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DplONTGbhIn8nrU5Sitv39GId4MvdwhidU5XuQiTUvox7my6zaXgB43HO+SxAJPnGcxyPvzKA8jFl3++b/4kwX9a622nFJ7JqEmc4Y17S5oVgBxqp7w1rJrWfjmL3QMOaiuMn9eXzvrRRbwkqwvC4UR+nZ3pnFqN64UzR6fihSYAyPkKu6c5zpmqmMhVZyTu2Q2J1OrJruNadrySYQV7+SFhyr4p3NalLV6g/T9h2cV0CCfwuJJl9ugb0G58gMKTPWUGy2ZOYZVaO7EGHMhT6/SMAyFuGcjlTJJUPWDYN4SMAA9gI08dHix4ySvbxxJLFHbr9UxS0A8ayA60DeomVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xQlp0Gc9AIp7mFKoFd57ZCwOVnraHeiHeMVR20wxTlY=; b=SXqevYEkIaPWql2INGvGOv6ZakXNDr+RsPoHmY5J0pt9XcFhGQzagnu2N8nMKr+c/neSqKl8+mCMBGxwdBMVcbrAB95QqsCRUwRq8p27kxFGrPYm2QPEftG4lpxStTy5M1EmB1YeELiuGSm5ojzFSZIDMhYepa8iiaa3jNAqeGGiq7WryK6JYWtLEaCEWlBuWPcYw6MeKlgl2P3zxZ+j5TpzCgypNM5v8prQ8eY87u4H64Rk5pIEiG2XR1jkYELbaXnnJNWuDfH96wlwov9Wg4Bdrmszhn56ZZqD7xEMjkwmLlJW9eiMJkizy3LDh5hxC1XVc1up034Ux90rwTd9DQ== 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 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=xQlp0Gc9AIp7mFKoFd57ZCwOVnraHeiHeMVR20wxTlY=; b=dPZOUorLk7BKE91R6PL4hFJtCRtH5lfp2B/Fd6B4ST4FaPgijaLRmSN/n/kOU7LgBlDdAdba59L8NY5ANnEWoiYcaDCsfDPAiRPN9m5pL6z5LbOJXcttLKVaadWz3AuWgZ0rLjS62/uJQ7wyxud9noMoXXbonIFLxTMCwnf52dg= Received: from BN6PR12CA0042.namprd12.prod.outlook.com (2603:10b6:405:70::28) by DM4PR12MB6012.namprd12.prod.outlook.com (2603:10b6:8:6c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:15 +0000 Received: from BN8NAM11FT010.eop-nam11.prod.protection.outlook.com (2603:10b6:405:70:cafe::a8) by BN6PR12CA0042.outlook.office365.com (2603:10b6:405:70::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18 via Frontend Transport; Tue, 12 Apr 2022 11:59:14 +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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT010.mail.protection.outlook.com (10.13.177.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:14 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:13 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit , kernel test robot Subject: [PATCH v2 09/12] KVM: SVM: Introduce helper functions to (de)activate AVIC and x2AVIC Date: Tue, 12 Apr 2022 06:58:19 -0500 Message-ID: <20220412115822.14351-10-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: 4a89a7fa-3f31-4eee-4f1e-08da1c7bdd54 X-MS-TrafficTypeDiagnostic: DM4PR12MB6012:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oKiv27qgFTs+9wRmHsBIbr2ITyCtFZYE859jlGprO71i7bwaOXrRwJ1uzjqtro+IabeHMFYfp4DDxl0dB+dc0LC+c0zvOc3gSbdjkDiAOrPyvccjvxp3t9ILoj0NE74zSrC/mng17QBt5rJ8oWYagydOLAxGDXtuMNCNKdk46jTCGEKuGuKDqWIXKVu41sGFSlUE722zKsdMByMxIKFVx9boRcUx1tMsg3eDs5evJ8UWsn+K+dxOmqC+WVRmy4QfJC3aGrizPNbcCP7IZwm9SFoIq/NNlRaAHED6KOHvceNDJJ2rJXvyVOr3HcVM3PkqtR0UFKavZNx9jlcoGgtPRR5izz+TB9ockXKBeWXuGtzRhRyZabubSTKHoZmrkXLVAkhjcQCAjMPuKZaq1IdOCzy+1DtA2gk0mcAs6neT1Y/u0N88Z9G7guYlqfVhEd5N0g9X19l86opbneXlqI4dLvVSkyAXdLrEtDRvJvPjPdKjAgOTbct0G9rcvYuwzvylUHbvxs6dDYJ+STVmPsQIFLmqfSsBrMBT1FGerfQUL0lqYGcmJ6Bh1MC3Dq2XkX/Iq+wHaXug5ELaRvZm6nqzaCeHXI0YjVd6e3gxuB3VGtYdkZm42ECo9n4kFZY/102UDMndCPpE3BUU+V7C00S48nUYtCnbcU3X0VDbiCpPfcORv5NJfmHDSzrhspAEPnKzWQdSX0ATOUSbsMAL6+uzuQ== 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(70586007)(7696005)(70206006)(356005)(316002)(8676002)(8936002)(47076005)(336012)(426003)(16526019)(26005)(86362001)(4326008)(36860700001)(44832011)(5660300002)(83380400001)(186003)(1076003)(36756003)(2906002)(2616005)(40460700003)(110136005)(508600001)(82310400005)(54906003)(81166007)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:14.5566 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a89a7fa-3f31-4eee-4f1e-08da1c7bdd54 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: BN8NAM11FT010.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6012 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Refactor the current logic for (de)activate AVIC into helper functions, and also add logic for (de)activate x2AVIC. The helper function are used when initializing AVIC and switching from AVIC to x2AVIC mode (handled by svm_refresh_spicv_exec_ctrl()). When an AVIC-enabled guest switches from APIC to x2APIC mode during runtime, the SVM driver needs to perform the following steps: 1. Set the x2APIC mode bit for AVIC in VMCB along with the maximum APIC ID support for each mode accodingly. 2. Disable x2APIC MSRs interception in order to allow the hardware to virtualize x2APIC MSRs accesses. Reported-by: kernel test robot Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/svm.h | 1 + arch/x86/kvm/svm/avic.c | 48 ++++++++++++++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 4c26b0d47d76..13d315b4eaba 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -256,6 +256,7 @@ enum avic_ipi_failure_cause { AVIC_IPI_FAILURE_INVALID_BACKING_PAGE, }; =20 +#define AVIC_PHYSICAL_MAX_INDEX_MASK GENMASK_ULL(9, 0) =20 /* * For AVIC, the max index allowed for physical APIC ID diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 01392b8364f4..462a1801916d 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -66,6 +66,45 @@ struct amd_svm_iommu_ir { void *data; /* Storing pointer to struct amd_ir_data */ }; =20 +static inline void avic_set_x2apic_msr_interception(struct vcpu_svm *svm, = bool disable) +{ + int i; + + for (i =3D 0x800; i <=3D 0x8ff; i++) + set_msr_interception(&svm->vcpu, svm->msrpm, i, + !disable, !disable); +} + +static void avic_activate_vmcb(struct vcpu_svm *svm) +{ + struct vmcb *vmcb =3D svm->vmcb01.ptr; + + vmcb->control.int_ctl &=3D ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); + vmcb->control.avic_physical_id &=3D ~AVIC_PHYSICAL_MAX_INDEX_MASK; + + vmcb->control.int_ctl |=3D AVIC_ENABLE_MASK; + if (apic_x2apic_mode(svm->vcpu.arch.apic)) { + vmcb->control.int_ctl |=3D X2APIC_MODE_MASK; + vmcb->control.avic_physical_id |=3D X2AVIC_MAX_PHYSICAL_ID; + /* Disabling MSR intercept for x2APIC registers */ + avic_set_x2apic_msr_interception(svm, false); + } else { + vmcb->control.avic_physical_id |=3D AVIC_MAX_PHYSICAL_ID; + /* Enabling MSR intercept for x2APIC registers */ + avic_set_x2apic_msr_interception(svm, true); + } +} + +static void avic_deactivate_vmcb(struct vcpu_svm *svm) +{ + struct vmcb *vmcb =3D svm->vmcb01.ptr; + + vmcb->control.int_ctl &=3D ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); + vmcb->control.avic_physical_id &=3D ~AVIC_PHYSICAL_MAX_INDEX_MASK; + + /* Enabling MSR intercept for x2APIC registers */ + avic_set_x2apic_msr_interception(svm, true); +} =20 /* Note: * This function is called from IOMMU driver to notify @@ -183,13 +222,12 @@ void avic_init_vmcb(struct vcpu_svm *svm) vmcb->control.avic_backing_page =3D bpa & AVIC_HPA_MASK; vmcb->control.avic_logical_id =3D lpa & AVIC_HPA_MASK; vmcb->control.avic_physical_id =3D ppa & AVIC_HPA_MASK; - vmcb->control.avic_physical_id |=3D AVIC_MAX_PHYSICAL_ID; vmcb->control.avic_vapic_bar =3D APIC_DEFAULT_PHYS_BASE & VMCB_AVIC_APIC_= BAR_MASK; =20 if (kvm_apicv_activated(svm->vcpu.kvm)) - vmcb->control.int_ctl |=3D AVIC_ENABLE_MASK; + avic_activate_vmcb(svm); else - vmcb->control.int_ctl &=3D ~AVIC_ENABLE_MASK; + avic_deactivate_vmcb(svm); } =20 static u64 *avic_get_physical_id_entry(struct kvm_vcpu *vcpu, @@ -1009,9 +1047,9 @@ void avic_refresh_apicv_exec_ctrl(struct kvm_vcpu *vc= pu) * accordingly before re-activating. */ avic_apicv_post_state_restore(vcpu); - vmcb->control.int_ctl |=3D AVIC_ENABLE_MASK; + avic_activate_vmcb(svm); } else { - vmcb->control.int_ctl &=3D ~AVIC_ENABLE_MASK; + avic_deactivate_vmcb(svm); } vmcb_mark_dirty(vmcb, VMCB_AVIC); =20 --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E276C433F5 for ; Tue, 12 Apr 2022 12:39:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241132AbiDLMmF (ORCPT ); Tue, 12 Apr 2022 08:42:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355041AbiDLMit (ORCPT ); Tue, 12 Apr 2022 08:38:49 -0400 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2055.outbound.protection.outlook.com [40.107.93.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D1A826CB; Tue, 12 Apr 2022 04:59:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D6EtZ9UMrU0m93L9jtIvYJaKFts5FinpdQeY8HLTWthAFKoUMM4kGManJSt2RBxxfvNC1XFr/xdaO7GnAFgHeqnooDQV9U8DTYzkp8Ai6sydN9wQNKFEbLNByTdf0CazdW9ALNZHUmz4dm4OqoslisBRYVLlOqGdvLO+rhSfJQVbOiPFbpeSa0S7Mz/YVWK63O5L6pmWkDdjvydfO9jke9JkqXrcf2GVZG26oPvbpoVlDcj0nwO+IGkJPprNB3NhkGWo4xSf+yzDlDohp8eOeMhazFBLCFa7vlISBLc9yK2DyhmfvByo/DZmx8IuEqHt0bZNZJGmogxB6AFCKcKlHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z6ezI+sdBFI1JUW9N4WnWLck5zvep2A6efwj7NrkX3I=; b=l0V37w0vdo9qzmBwr7l9ng03wtBsgiwFF2n3kivsVoAoUo8Yn3fAU6pqaw/T8sEKl1HpqwnsNlYepdUlJ5qs7mG6fQhgwP6DbaNGuFwLHsGe49eLIAAx2kLB0zjU0ClAEy48h/e6s/eujcdGY5gUucTm2CACAdA0k8ze8c9RYpKoPwOU8p17Vn4MUI4yFBDgzytrKazhFkgLD6RfkG3PH6KNbmhku19Qo96mpU2NE9NQnw53H+bf/OL4GCIUiIKCKZmZcde7XnSo2+xLUSzN15dGXVsm9x5OucS2aeooY5g0Q8vphU9If/jC4Yn9CFxxdxQFwrUpC1ID8YonOIRRbQ== 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 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=Z6ezI+sdBFI1JUW9N4WnWLck5zvep2A6efwj7NrkX3I=; b=THDfqhhwaXNQWcq/V8itEmnm/VDhvqE3UO2qWKQ4ePMkO5PXJidmyLQ2wtImr9Q2p0IwlR000luO5xevuA3qLnlKGuTtN8kOfiY3NmmpUI2pQzdi1Zwv+lUNI1vfcXjOFzdcyyXSLNg0QFOU6h9uynj0XqiuIyHnSZVaM7fCNUQ= Received: from BN6PR12CA0038.namprd12.prod.outlook.com (2603:10b6:405:70::24) by BN8PR12MB3588.namprd12.prod.outlook.com (2603:10b6:408:41::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:16 +0000 Received: from BN8NAM11FT010.eop-nam11.prod.protection.outlook.com (2603:10b6:405:70:cafe::a3) by BN6PR12CA0038.outlook.office365.com (2603:10b6:405:70::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18 via Frontend Transport; Tue, 12 Apr 2022 11:59:15 +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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT010.mail.protection.outlook.com (10.13.177.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:15 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:14 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 10/12] KVM: SVM: Do not throw warning when calling avic_vcpu_load on a running vcpu Date: Tue, 12 Apr 2022 06:58:20 -0500 Message-ID: <20220412115822.14351-11-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: cb72fc55-f2bc-4e8f-e35a-08da1c7bddec X-MS-TrafficTypeDiagnostic: BN8PR12MB3588:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ziW4IlVoQrWWJa4bVuhdvgSI9L5HV9r8HFAlBn0BcPV3FpkPQXDutYSW9LbhgxybL+6lSPil5TRnsBg+ySsoyMD8PENUPekTOSRvQuS3LreQBfZXY2ExZcjbQoaAomrbv/4pALfSFLubI/8Q6cdVxICZjkN14e0Sv8yDDRD2KZLHYcFHBY/AGNFmoFMBgoDYvt3AKjIEi3P26f+uZuo7QffUqtG4AI3SKow20S1bEDCHcb5fgDca6oQHUr7dm7qihQ09uzjwYPpOy88QlgsB1oS8Wh95zIOxwwa0vNCDoVtilj/BWeItfes0Kc3+eXhgQ/MxCcKmePy8gdn72jUFj8IXagzfXYAimi7EbFCCtPRzdK3yacfMNKQDL3l9Yfr3BVrDiLRW5U2lDcnUmt6cXQPal704C3cVeLTLF61LAgZWWdjsaDieqB+bcl1fPVKgJ+JgsXFC7ruOHvJEbBLrJgGa4IIHO2LFxzXUm89zLs8rtroS/wl3Ep3r2q2uI7QxzHGOtO2YwbiwyDU8i7FEG3S8+t2wFOiPxkNDjABkoWk/9NLWzJYF4yn1P0axr7fxa8TGMdY4dJcYehoGa8SP0TH61IIU0JbW4TZ1mUyZv9yGdQUn7B6aVbKPs7+29/G5tWsDDHy2Vxu/tCTfYNtVaB9BzRMcimyhgRLjNfhBNFvbwZJR/bxL8OGypez7h8AdN6F9ldZ3WCAriPwtwsiklA== 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(6666004)(86362001)(8936002)(508600001)(54906003)(5660300002)(356005)(47076005)(70586007)(336012)(36756003)(8676002)(4326008)(70206006)(83380400001)(36860700001)(316002)(426003)(2616005)(40460700003)(82310400005)(110136005)(2906002)(44832011)(186003)(16526019)(26005)(7696005)(81166007)(1076003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:15.5566 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cb72fc55-f2bc-4e8f-e35a-08da1c7bddec 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: BN8NAM11FT010.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR12MB3588 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Originalliy, this WARN_ON is designed to detect when calling avic_vcpu_load() on an already running vcpu in AVIC mode (i.e. the AVIC is_running bit is set). However, for x2AVIC, the vCPU can switch from xAPIC to x2APIC mode while in running state, in which the avic_vcpu_load() will be called from svm_refresh_apicv_exec_ctrl(). Therefore, remove this warning since it is no longer appropriate. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm/avic.c | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 462a1801916d..085a82e95cb0 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -980,7 +980,6 @@ void __avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu) return; =20 entry =3D READ_ONCE(*(svm->avic_physical_id_cache)); - WARN_ON(entry & AVIC_PHYSICAL_ID_ENTRY_IS_RUNNING_MASK); =20 entry &=3D ~AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK; entry |=3D (h_physical_id & AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK); --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88DA6C433EF for ; Tue, 12 Apr 2022 12:39:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353345AbiDLMmK (ORCPT ); Tue, 12 Apr 2022 08:42:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39752 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355043AbiDLMit (ORCPT ); Tue, 12 Apr 2022 08:38:49 -0400 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2055.outbound.protection.outlook.com [40.107.93.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DA8555A3; Tue, 12 Apr 2022 04:59:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KgIk/7EvegiHA+sC3POhNhoNCrnGc4EtEBQTjCKJpnpTtbZgehKLXE2Vi+VbX98gblrRUXjMFHySGb2iHn4wbDRTjUJwNieZHyj0qclei9SVFxOO5Yo65Bof+Myl+gmaMYYObGhJZc3lv9G083Gyp7ZtKzjNGFkhFK5t/v7YgSf23LDESeYq/j6X4+sKX1nhNq45sl5lj66Y/CM7RsOHALAF65FuAOHfuqfu7paCP59LzXkbGelW1ZUF2gyNf3Ij2fcyXaS+0OkEK+kYuqxKikGcRxgLdeHk4GdzAXB/JdoQhZVkYKqXfvSmyKd6jB2bKgrX93A1nsJ2A4751j23Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TIlgdLoosU8m/iuMDsCxEW/8h8Pt7kcI3elCSTPiBS8=; b=VnItmyKOg6+OAMJREUuRC5GMzvHkss5KwPnA+6cOQyvCpJE7rlbvjB/ttmuHxkOelXGgH8iu8AMNiE+aINJFU0YRgO0J0xFZESXY0D6Tc5DgnWi0oksX0ycHGBtmTmT7R82MD5j5N2cjHicS17n2Kf1lwaALgfkapLiv9cPZGqmbOcG/bSNeP3Fvy5JNK0NwQthPFs/4p521XDCW5Y5iuE/hjF8Bk9gxsEXCMSpxhz48kMxxLL0mtF02fHNdSCHwu0D090NO3oLOF6sif4UWeqbuXZqSXxbQ02Ee6gwHAl4oiLkIGgMj+OHcOzHqFa26hzjEnkTHnOD53zsm5WY09Q== 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 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=TIlgdLoosU8m/iuMDsCxEW/8h8Pt7kcI3elCSTPiBS8=; b=lnXz5kxmgxDae9wKgKWewtLfPGtJpYgo3xU1XYnHdhLVsiSTX5niHu/3NV+UrKxKO9dIfAS7FTc5CPCz4WFWPje4Rh534q7DUN6EW2V8sLutUufCUyu0o30CkCMfwRzrRwApUton6iAlCeA/NN+o3b0sVNDjAEQtnuXQ6Z4tnkM= Received: from BN6PR12CA0047.namprd12.prod.outlook.com (2603:10b6:405:70::33) by MN2PR12MB2989.namprd12.prod.outlook.com (2603:10b6:208:c4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:16 +0000 Received: from BN8NAM11FT010.eop-nam11.prod.protection.outlook.com (2603:10b6:405:70:cafe::35) by BN6PR12CA0047.outlook.office365.com (2603:10b6:405:70::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Tue, 12 Apr 2022 11:59: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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT010.mail.protection.outlook.com (10.13.177.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:16 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:15 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 11/12] KVM: SVM: Do not inhibit APICv when x2APIC is present Date: Tue, 12 Apr 2022 06:58:21 -0500 Message-ID: <20220412115822.14351-12-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: 0b190d82-c098-467f-ddb1-08da1c7bde49 X-MS-TrafficTypeDiagnostic: MN2PR12MB2989:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I8dvHfd6LMnko6sXL0cal1q2P/FRubAqHRV4+FajvcC1a4mAR3MFZ998wxPjHlQAoh/j3zCF1reRTpO+2+EjSsMmjvHtHVyFBuHLEerOje3OD48U92uJI/CdPodJQctcwmSoM58K1sDIPm2L6FqoJw4sC4uv03v+e29IAnCs5HihpMiFOsWxJT8f2veTfInCoEojIx6TI/3Wu3Hm+NzIstBgoMs/SxI+LOSua/pnK+77mffveaqhsnkFnCpvZJlsgWywSe3U8DeJJuVNUGS5QKJefujpo9keDpP6Nt+xJF/+UvTSGjZaVWExyzbLoSHJFJFP9ozLacMuSjWsYbdqG+RW0nNE+o5vrcqrv6+qoPECDKnVziCgUHPcPRuAM75cmXRVPQMz2bQhzut6xmJCJ0gqGrbswdab9qPgNV+Yz9jcW6O/x4PjyhZB3moltDeO59zMxcEeupN2+WJX4np5YJazf4X6LB9HDeFn3P+mU64Hw0b6gOPjkgy0vddq/vD2rlTAbOYcgtiyp5vlKP+me0cDdqHEMiw71X/guIaxKmJzCGDwl7KpsHKetT9IinXRMmAzgcxW63b1DdqtpG4FdxzcJfA5LByThIJuDY+EYtRT3aqPEiCucZ7gi8oGlJLTq01zcU2eOWC0jafVioMYChC0LnTeccufgfDYzly/3RvfUkDLCXgCXdYCXRgql63L/fCQEB50Q082d02FZm1n6Q== 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:(13230001)(4636009)(46966006)(40470700004)(36840700001)(2906002)(356005)(508600001)(186003)(81166007)(5660300002)(8936002)(40460700003)(47076005)(44832011)(1076003)(16526019)(26005)(336012)(426003)(2616005)(83380400001)(7696005)(86362001)(6666004)(36860700001)(54906003)(110136005)(4326008)(8676002)(36756003)(70586007)(82310400005)(70206006)(316002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:16.1659 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0b190d82-c098-467f-ddb1-08da1c7bde49 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: BN8NAM11FT010.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB2989 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Currently, AVIC is inhibited when booting a VM w/ x2APIC support. This is because AVIC cannot virtualize x2APIC mode in the VM. With x2AVIC support, the APICV_INHIBIT_REASON_X2APIC is no longer enforced. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm/avic.c | 19 +++++++++++++++++++ arch/x86/kvm/svm/svm.c | 17 ++--------------- arch/x86/kvm/svm/svm.h | 1 + 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 085a82e95cb0..abcf761c0c53 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -21,6 +21,7 @@ =20 #include =20 +#include "cpuid.h" #include "trace.h" #include "lapic.h" #include "x86.h" @@ -159,6 +160,24 @@ void avic_vm_destroy(struct kvm *kvm) spin_unlock_irqrestore(&svm_vm_data_hash_lock, flags); } =20 +void avic_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu, int nested) +{ + /* + * If the X2APIC feature is exposed to the guest, + * disable AVIC unless X2AVIC mode is enabled. + */ + if (avic_mode =3D=3D AVIC_MODE_X1 && + guest_cpuid_has(vcpu, X86_FEATURE_X2APIC)) + kvm_set_apicv_inhibit(vcpu->kvm, APICV_INHIBIT_REASON_X2APIC); + + /* + * Currently, AVIC does not work with nested virtualization. + * So, we disable AVIC when cpuid for SVM is set in the L1 guest. + */ + if (nested && guest_cpuid_has(vcpu, X86_FEATURE_SVM)) + kvm_set_apicv_inhibit(vcpu->kvm, APICV_INHIBIT_REASON_NESTED); +} + int avic_vm_init(struct kvm *kvm) { unsigned long flags; diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index b7dbd8bb2c0a..931998d1d8c4 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3961,7 +3961,6 @@ static void svm_vcpu_after_set_cpuid(struct kvm_vcpu = *vcpu) { struct vcpu_svm *svm =3D to_svm(vcpu); struct kvm_cpuid_entry2 *best; - struct kvm *kvm =3D vcpu->kvm; =20 vcpu->arch.xsaves_enabled =3D guest_cpuid_has(vcpu, X86_FEATURE_XSAVE) && boot_cpu_has(X86_FEATURE_XSAVE) && @@ -3982,21 +3981,9 @@ static void svm_vcpu_after_set_cpuid(struct kvm_vcpu= *vcpu) vcpu->arch.reserved_gpa_bits &=3D ~(1UL << (best->ebx & 0x3f)); } =20 - if (kvm_vcpu_apicv_active(vcpu)) { - /* - * AVIC does not work with an x2APIC mode guest. If the X2APIC feature - * is exposed to the guest, disable AVIC. - */ - if (guest_cpuid_has(vcpu, X86_FEATURE_X2APIC)) - kvm_set_apicv_inhibit(kvm, APICV_INHIBIT_REASON_X2APIC); + if (kvm_vcpu_apicv_active(vcpu)) + avic_vcpu_after_set_cpuid(vcpu, nested); =20 - /* - * Currently, AVIC does not work with nested virtualization. - * So, we disable AVIC when cpuid for SVM is set in the L1 guest. - */ - if (nested && guest_cpuid_has(vcpu, X86_FEATURE_SVM)) - kvm_set_apicv_inhibit(kvm, APICV_INHIBIT_REASON_NESTED); - } init_vmcb_after_set_cpuid(vcpu); } =20 diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index e340c86941be..0312eec7c7f5 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -583,6 +583,7 @@ int avic_init_vcpu(struct vcpu_svm *svm); void __avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu); void __avic_vcpu_put(struct kvm_vcpu *vcpu); void avic_apicv_post_state_restore(struct kvm_vcpu *vcpu); +void avic_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu, int nested); void avic_set_virtual_apic_mode(struct kvm_vcpu *vcpu); void avic_refresh_apicv_exec_ctrl(struct kvm_vcpu *vcpu); bool avic_check_apicv_inhibit_reasons(enum kvm_apicv_inhibit reason); --=20 2.25.1 From nobody Mon May 11 08:31:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A607C4332F for ; Tue, 12 Apr 2022 12:40:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353585AbiDLMmR (ORCPT ); Tue, 12 Apr 2022 08:42:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355071AbiDLMiv (ORCPT ); Tue, 12 Apr 2022 08:38:51 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2062f.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eab::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87CD8237E8; Tue, 12 Apr 2022 04:59:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SRWkG8N74NCtDpGhEyPLS0Lf8j+ZtdaMoHzkk/CLXRdw8NkUBlK4XkDrAxJOAv81t1EZdge8Gpa/zOY9MfMYpT1k6VynBelqKuf34OSFcSzG5W0zKeRB5wmB3b51oSq/E1TACh/PyNoCHwtdj2b0brNRT1M4lR8eoX+xG1yKa6PG9jVOmMY3b4HJu+nYf8dZYE8zJdTZdYYakSrBQJymDrWgUmEAGCGkO3+ycv3mrKlusVgH8NgWssQc6g9wNziIzpcyLgK8+i13rx4iww6fk+dQYjSxTr0DWpV4FzYdd+Vb8ASTgO0H7rMdXU0LTUwi2OIsUGXWEtdk9yvjPah0FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4tROjBZ4OwaR6qvlQLq0OBQb8kaW/tfpzmLWrYNrG18=; b=Sf5f1KWQlPcXUgwW6pp7ya9xlVeIYfcOtDkBVQJNd7EpAw/HB/H2YQmkyI39Y1YqO2oE+Fl2OkUUg8LSJKkOnX4z6mkKR0eVsUZLLDhhdY2v+U4oVPOfOIZ8KdprttcnY6fN61rx3MOpTRF9bqMmX3QvoBG8yWVcYTQOxXNbrL+cJO5sxFqze6gBKE0Scxf3H1SoOiL4z3mRk4StAWYKeDtzFcoaoNkDEEl5lKPwwzvlU+xNi6R24EGfeM7IrXghIOR+/wMB+eT1bA46BB16Td+AqC1Yck1aAGu0KJRsgE4ZGW6YP2hc3Sf1+zq2PjiySvtTdqKDO6AKW+BZ4Lf5HQ== 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 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=4tROjBZ4OwaR6qvlQLq0OBQb8kaW/tfpzmLWrYNrG18=; b=meAK9JGMJQSUSyK/QNhAsLYDAy2TOz/+RZcdrSYMeCMmiHgdBD0f+s7dDZvr/4JCwltaD4rET9V0nef0EaWv1YWZHP7CpfZB/n1Hodbh61sVrmjc2gVgdSkqa9puqX0aoIhu93UhPpnG7+rMwJLIYmBl8F1Wynfea+ucAqAl9A8= Received: from BN6PR12CA0047.namprd12.prod.outlook.com (2603:10b6:405:70::33) by MN2PR12MB4437.namprd12.prod.outlook.com (2603:10b6:208:26f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30; Tue, 12 Apr 2022 11:59:17 +0000 Received: from BN8NAM11FT010.eop-nam11.prod.protection.outlook.com (2603:10b6:405:70:cafe::35) by BN6PR12CA0047.outlook.office365.com (2603:10b6:405:70::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Tue, 12 Apr 2022 11:59: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; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT010.mail.protection.outlook.com (10.13.177.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:16 +0000 Received: from sp5-759chost.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.2375.24; Tue, 12 Apr 2022 06:59:15 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 12/12] kvm/x86: Remove APICV activate mode inconsistency check Date: Tue, 12 Apr 2022 06:58:22 -0500 Message-ID: <20220412115822.14351-13-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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-Office365-Filtering-Correlation-Id: f05941a1-65ab-4aeb-c39a-08da1c7bdeb2 X-MS-TrafficTypeDiagnostic: MN2PR12MB4437:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LN5SFd3X8gO4jjZJEkgz/+juc+VtOiVAgq+P6K0LgT9+9nFnJ2wub5lLyqR7GSAgIeNk6YxwZQtKhVMwb9RPqsq4sLUd7XpYOUtE2N+xrlkGednDPkNqqqln9baTq18Dhcx7ES0uidGeuewHggGKZIa2Usokd+JGUOqqRVjrFbAiZW1Jm3ZGo3V4WYfGGy+G44zHpYiUNzGrADYyblZqhzEODiuX131ymiYGYl1YDluRml3pT9dzQDc61xWj/MbfoEIcjzK0AxadvTfUsGns+fLQytfuY1RGx21t58qF6A5UEaL7xjn1ml5uPvlzyOBt5WcEtr8nCBGe9YH2FEnH9zOAz+GeNdN8ZaObDpXKK/+8HaawJIPjFxSe2InMLBRWKM375FIhG3dFTGUlueOQZSkcdJ8+K7c1XemaLLIQ/4fiG5uqI/IMzUqNbKAcRGY0ML6l8KgwP5avvVLVTG2pLL/83VKhHWTr+qsyFCwAmGv88SfKip6LriXnWxqN2WGJAFq5+Afux0OsuLW6BI00Vx/LiMssASWOqIxloFi7yT/nLFuDfQaFe6tCTk+8r3g5AP0ltMdEV2XiZa214GvuX1atMbxNrqL9/nrpjgFNZ9RpKfDwso2o/M7oO8rTL6kphD7NF2JbDOHGTlL5M/ZykFnXeCsirDo8w69NjsfkKtuQTgWxuBYVPcLvrsG8wJmGA5qcKFMCQINwG3xwKH8y8A== 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:(13230001)(4636009)(36840700001)(46966006)(40470700004)(356005)(81166007)(110136005)(82310400005)(40460700003)(83380400001)(426003)(4326008)(8676002)(6666004)(7696005)(16526019)(26005)(70206006)(508600001)(36756003)(316002)(86362001)(5660300002)(186003)(2906002)(54906003)(2616005)(1076003)(8936002)(70586007)(47076005)(36860700001)(336012)(44832011)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:16.8377 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f05941a1-65ab-4aeb-c39a-08da1c7bdeb2 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: BN8NAM11FT010.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4437 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When launching a VM with x2APIC and specify more than 255 vCPUs, the guest kernel can disable x2APIC (e.g. specify nox2apic kernel option). The VM fallbacks to xAPIC mode, and disable the vCPU ID 255. In this case, APICV should be disabled for the vCPU ID 255. Therefore, the APICV mode consisency check is no longer valid. Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/x86.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 0c0ca599a353..d0fac57e9996 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -9765,6 +9765,11 @@ void kvm_vcpu_update_apicv(struct kvm_vcpu *vcpu) down_read(&vcpu->kvm->arch.apicv_update_lock); =20 activate =3D kvm_apicv_activated(vcpu->kvm); + + /* Do not activate AVIC when APIC is disabled */ + if (kvm_get_apic_mode(vcpu) =3D=3D LAPIC_MODE_DISABLED) + activate =3D false; + if (vcpu->arch.apicv_active =3D=3D activate) goto out; =20 @@ -10159,14 +10164,6 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) guest_timing_enter_irqoff(); =20 for (;;) { - /* - * Assert that vCPU vs. VM APICv state is consistent. An APICv - * update must kick and wait for all vCPUs before toggling the - * per-VM state, and responsing vCPUs must wait for the update - * to complete before servicing KVM_REQ_APICV_UPDATE. - */ - WARN_ON_ONCE(kvm_apicv_activated(vcpu->kvm) !=3D kvm_vcpu_apicv_active(v= cpu)); - exit_fastpath =3D static_call(kvm_x86_vcpu_run)(vcpu); if (likely(exit_fastpath !=3D EXIT_FASTPATH_REENTER_GUEST)) break; --=20 2.25.1