From patchwork Tue Apr 5 23:08:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802483 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 830A6C4167B for ; Wed, 6 Apr 2022 05:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1449406AbiDFF3Q (ORCPT ); Wed, 6 Apr 2022 01:29:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34078 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1449945AbiDFBQe (ORCPT ); Tue, 5 Apr 2022 21:16:34 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2058.outbound.protection.outlook.com [40.107.92.58]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 55C0A4FC4C; Tue, 5 Apr 2022 16:09:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vfk08PPk4smgxb8VS9RROcyxK4RT9wpALei/nHLNOUKBO4xAl0beal78v/WU1qDRnuLdUwrQOY0/5Sic0rOU+0OyGybNhzOMdkF9QJKIgS1a5Xj8vkxS/Xw6218SmoV1sdfYWpULTYk5kJ/7pwnyuig9Xz5H/Gmh88bcKmz/eAmo+JPDgfZHm6tZHj6OKDQvt8AfAMkUym7Sf0/oArI5wR5S36e81ZSgqSEqmeczsXdHCSeN7IDIGDlJrhBXe0YCpLA4d5PE/EwkF4zYRs9r/GxJGFRDjoHUq3ign8y50L0ffp8EqU/uUFWbozxqZf85B1H0FX7UI8RMdNYl//q4nw== 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=7xKjoUHOl3YbE4t3lQhS1EJzqOoO8xsAbGBQoN7TSBE=; b=cyP3r3kBxSy5Bgp+syXdX5qg3aKHMk+xEU1web2twkTTv+9Pu2B1Lhk4ck8vJxklK4ABLoaEpxT5VX6h7XoLrVfoQNDZnPRQDt+C+BkyzJpr+sJqXWOjqtZjYiHASQVYuPTolu7GDNbDuzw5IOSoEhm1ZcAP6aZuWqDAtwzhCEfI3XJIUPJAtamtpQiJzWY3/S1VxHeTqOy1kOIwJVyy/Ur6DEJFXw/IICzeWOmP/Mrv/99WEAlrywzMzDdYVGm430CCFK4LD/uAwt5LTLIJQh5B8NZ+EfEjRiaiyV8HG8/nkaQcXMoDmWxLtLxNlkobsD9wOQRlrmA7rVPlmRVubg== 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=7xKjoUHOl3YbE4t3lQhS1EJzqOoO8xsAbGBQoN7TSBE=; b=tOV4laaZQjdKhtBjLnec5AtKMLuKuv66VmonjwW1c4q8wvQvdB+yIiK3XTotWPNSXc9sk7bLLE+bSX/KxrXDUSmeoBxs7wmlMizEYgsGpjraNz76tBB3+D0a7apcryGaaAPT+HwEhfow41uB6ozR9cLmW/bNKTG/ki58TfRn+20= Received: from MW4PR04CA0085.namprd04.prod.outlook.com (2603:10b6:303:6b::30) by MW5PR12MB5652.namprd12.prod.outlook.com (2603:10b6:303:1a0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:25 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::49) by MW4PR04CA0085.outlook.office365.com (2603:10b6:303:6b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:19 +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, 5 Apr 2022 18:09:17 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 01/12] x86/cpufeatures: Introduce x2AVIC CPUID bit Date: Tue, 5 Apr 2022 18:08:44 -0500 Message-ID: <20220405230855.15376-2-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: c1eb105a-22ff-4ee6-86d6-08da175950d0 X-MS-TrafficTypeDiagnostic: MW5PR12MB5652: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: 1YZuTbycRwanIqlLcmHybJwq0IEOg+iMgjCfN91k1LkVCyorLxW7re47js9PcGjTi1+BRPL8yajwZhJfMIIbaM3bgRw0rRaJMqagfpuZKQFjrTnHCLzW/ytMyiG3nobM7uEv/7AnjECSyx/eiljmy6eRQNrMgJC7B5n7EcDLXp610vn2ZC6KGJU2BNVEeOfi7d9V40vY/Bg3kxPbh1/LJzhyuuq7jUOie8xUz2J6677McALgGglNfaDJx8bu5iMyQwkUb+neprUJ/aqj9k/AEcavzMTlDBg3tPiGMK7eQWnbFkVfLJxlHzb+P99xKNMdObBVoa2vTyQi4SmCNLJnZOpb2VdVHYIZMQthXij1wam4njPFqP/1rI9psYPk3HeLfXIgT9DGlRUp1Wocq8F3VaxywAEMCqfHe24bgl0BXby3H6xI0b56h5TH/+IZQQQHoImu61JeYcH3LZE94/oK/EO4q98p769dVwICJLXw5YEZfVD0Yi0xApKWfYmTxXq4vX6z7Puaa8nDUJeRnKTrcGVvmHVTZOXpGUZiCCvNDe3cUrz6iafmDrloCEpjuLkgQmNArtZrGps/rLSZNfOZLMA0y1VWtjAuKAOcmPgHTpJB2FqUAnlSvpUJ2r86q7aNWUdJ1MKFazUcMBtG1L7JU99vEbLiIRQoHP0TT6mNRS3cdlWEsYzY6zkPult+9XGqsVFsfrn2j3cWFaZ3xL4kAQ== 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)(36860700001)(336012)(356005)(40460700003)(81166007)(8676002)(7696005)(82310400005)(4326008)(6666004)(47076005)(44832011)(508600001)(86362001)(4744005)(2906002)(426003)(16526019)(8936002)(5660300002)(26005)(7416002)(110136005)(2616005)(54906003)(70586007)(1076003)(316002)(186003)(36756003)(70206006)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:19.9374 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c1eb105a-22ff-4ee6-86d6-08da175950d0 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5652 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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/cpufeatures.h index 65d147974f8d..659856ee81b7 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -345,6 +345,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 */ From patchwork Tue Apr 5 23:08:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802480 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 28133C433EF for ; Wed, 6 Apr 2022 05:30:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1381992AbiDFF0h (ORCPT ); Wed, 6 Apr 2022 01:26:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1454381AbiDFBRE (ORCPT ); Tue, 5 Apr 2022 21:17:04 -0400 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2053.outbound.protection.outlook.com [40.107.93.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2B352532DE; Tue, 5 Apr 2022 16:09:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F50uqU9DKc9YGqID271L5+1fNmDaPE0OuvgjQNUdg1MK+wTi5BaNds1IEIp/kqZ2i6hlI465hWpKwJ9wOAmxiL3+S27/KyJaK8+wvjuRMfE8G7YrkU4JusxEKqRnv6vXnn0+GsHyWmF2S6dBjtI3/Hu+riG0zNw+tWGXoTXdsjBYuR6/bHSxl3cHS9aKkZBJplkvq/osv0dbJ/Hp2zlxXy5fjpjmqG4K+xL/8kMvKgSR0XVkjTXT231JAhxOqCdjsHYSFMh/f1uw3bTQxywoxnsh6EX50ee+RwMN3L6vwH8y0fwZq8ylJo/Vcemlb6UB57wqu1vopbOv6OaSanPhrQ== 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=vnSXMMxNha/AoZNb8nuaK71b8vyuJmMNqps3irgxFwA=; b=DYtoN3KD88IB4JEXHbmmA7NLLL/prpHhS6YHljlLA8abFb8lInOaULYvDZy02Nz4tnVAvF5l6e15rR5kvlq3aiZz83AocMTJHbt9zLP9kZvGH33GCtbsXbpD1pYNtLQZlz4tiHdaILjsBDtk3H13CR/wvjgR2yOY4onpSBOPzYPd9vdgpC5XuTNZbj5zttTW745X6qvDMgEC+lGDBK9W6W+MRaoI0U9P5ovP7wlGZWZz43sU8VUKezo8TsP9z5P3cnoN2t6b5G+HLQp/IHhQOzl8Y0dq5tg0ylUOs4yU9vXSE+KGh2X3iFp/mHYgkg7DRKPlD9HI/mcP/4v0LOciWg== 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=vnSXMMxNha/AoZNb8nuaK71b8vyuJmMNqps3irgxFwA=; b=q5SQL6VER1C+jVmS9nJhW79aOkz3rzSbpd9YEhSMO7eC3SGizM9DD7eqpau+1Q/P9PaBJG55AhIguj5V61FRXPD9ZCuLiRI4JU1kgkMOytkR+Q0/DZRhRp4QzEJIcwyeiv44V0sWsxFNbbgeapnHPnJcEd9JEwAQ7yt6jDGEtjQ= Received: from MW4PR03CA0080.namprd03.prod.outlook.com (2603:10b6:303:b6::25) by CY4PR1201MB2549.namprd12.prod.outlook.com (2603:10b6:903:da::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:35 +0000 Received: from CO1NAM11FT066.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b6:cafe::2e) by MW4PR03CA0080.outlook.office365.com (2603:10b6:303:b6::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT066.mail.protection.outlook.com (10.13.175.18) 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, 5 Apr 2022 23:09:35 +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, 5 Apr 2022 18:09:18 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 02/12] KVM: x86: lapic: Rename [GET/SET]_APIC_DEST_FIELD to [GET/SET]_XAPIC_DEST_FIELD Date: Tue, 5 Apr 2022 18:08:45 -0500 Message-ID: <20220405230855.15376-3-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 468260a5-f925-4217-85ef-08da175959d0 X-MS-TrafficTypeDiagnostic: CY4PR1201MB2549: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: K/4rO/58GqaPYhQ9dHNSV57MO2j1hyNJewTGOBAV0UP20A+/fUMaEtWFIdA/wbts1Adpfs1QDE0Ztn2BovzrmO/wGxrCzUt5/6K1w6jynElDkqVedIdilHhM0UuPbVfTV711cmErVZNVj9pVvqZoi+W55EXx59MXR/KUdOc9sgU9rAWpXyLD8qz986QzXhYA6GEXNC2owlfJ6uNHl0QTnvVuXe/8ui8X77XxOkawMzyKQRCRsXTPgSBievv8BV0EgN/M2gVVS0P9TvVFqtU7a1Z/ICUsWog4b1YFVywaDWwsJrZPCcM0YHGVVyEJ/YRGhPWrEHSNDJ0rQ0cgPaPT8xXpQsABvKuI0JfUhg3Ahd0VRrTzNmFqNLe6jfpvC9MHHUO7wk5WO8r6/s7hY9ddD1uXKJ3LAeqW2Np4aFOla0yBircsRyKTSwhpF1JD5YA4eCoeCDUw7xGJPZfFd8tRDvAqoUyKTIMNNNmln9eL4TE1vcSMVMidn2U2tIKxxI/hPxG3H9TM1DP9rg+r61BxIWbPAh7T8QYG5lN52ifWAmMay9e//LjSFKJJv6D/GH5Mc8+S20JLh8QARMMmAJnHNXAEN8BrlmlWsuz72LcU8+x0RaTT8+oRhgsmIDxIej/lOf1TdZDy0g0NWSTPESzkbxydW4IbSth8c8esHkCOU3ZSAieCAPwoX7w8jhqrncPn0bTuc4YSHEIlIttycpZsZg== 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)(6666004)(2616005)(7696005)(81166007)(110136005)(54906003)(70206006)(47076005)(186003)(86362001)(26005)(336012)(82310400005)(83380400001)(8676002)(40460700003)(16526019)(70586007)(316002)(36756003)(2906002)(426003)(1076003)(4326008)(356005)(508600001)(44832011)(36860700001)(8936002)(7416002)(5660300002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:35.0056 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 468260a5-f925-4217-85ef-08da175959d0 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: CO1NAM11FT066.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1201MB2549 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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; - reg_val = SET_APIC_DEST_FIELD(id); + reg_val = SET_XAPIC_DEST_FIELD(id); reg_val = reg_val << 32; reg_val |= low; 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; 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) static inline int __prepare_ICR2(unsigned int mask) { - return SET_APIC_DEST_FIELD(mask); + return SET_XAPIC_DEST_FIELD(mask); } static inline void __xapic_wait_icr_idle(void) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 9322e6340a74..03d1b6325eb8 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -1286,7 +1286,7 @@ void kvm_apic_send_ipi(struct kvm_lapic *apic, u32 icr_low, u32 icr_high) if (apic_x2apic_mode(apic)) irq.dest_id = icr_high; else - irq.dest_id = GET_APIC_DEST_FIELD(icr_high); + irq.dest_id = GET_XAPIC_DEST_FIELD(icr_high); trace_kvm_apic_ipi(icr_low, irq.dest_id); diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 66ca952fc2be..70a8b67ae800 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, struct 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 = true; svm_complete_interrupt_delivery(vcpu, From patchwork Tue Apr 5 23:08:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802479 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 B5420C433F5 for ; Wed, 6 Apr 2022 05:30:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379591AbiDFF0Q (ORCPT ); Wed, 6 Apr 2022 01:26:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1450695AbiDFBQr (ORCPT ); Tue, 5 Apr 2022 21:16:47 -0400 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam07on2063.outbound.protection.outlook.com [40.107.95.63]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5BE0C4FC65; Tue, 5 Apr 2022 16:09:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jEKsXYSLfDxiNZk0NFB9sOq7+n0mpgJgn5JGUNn0udBEodV7yf5xXqwXapSCnwSYO48GIi+DBHIeNFonv/+r+qulAQc2owqt1he6W9O/lmvW8OKqG6cHqbw5dccxMnazegQXXATlpU4HtIcG9oeJz23gUdMQ1k6snfkax7/Ox73CFvhwWizZqHQ2CXf5P2DKardz1zjeZD7cZHyiMW0RykHLXeQSZg8f+77Ncle6IKJei8uYCWs60Md+46jC3+DD2vfICwhaSFPj0TgN2HSqAzKun1rYmSjZy6ARhBfjHgG1SQ53WbilfYxZBKhohwjx/o1W9KZ0VtXvzycCGgvibw== 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=q0h1Sd5Uytsq4DgLBMUXW3SofQZck62aB+61gnxfgRY=; b=ff+QFVREOHdGuvA2agTUZPIPMHS4He2UKNc5mNvtB0K8Y4m+rM758DkYoYpgD9gG6tG+rEW2P6OgIVeTMufp1dZvJNz3Nloc+oOZaJH2yulEO/MevfftOh3mpVPC07JLEZnarIlBowWUIDqrU+PUdRt5nIUk7sHxTfuWdlHCZ+PSNa0ymM+50i+Isapsp8FdLa2RyIpg/rGVCHrkoRNu/WRkdmUl+PB35owhN+CEC+QOPl9aIUCzaaJLKvN7+IDT/cONUR3kbhDoj6sVWfQY4MmdxMKlL5LfO74H0EEsyESoj7/xUr4bHVFPd4ozOGs2t3IvbBNuCinK9JwiGZgBSA== 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=q0h1Sd5Uytsq4DgLBMUXW3SofQZck62aB+61gnxfgRY=; b=ym7oFHOpNvRKusSjL+R+KAKLNNjsgjwCuHjQE42sybVceGiG8dgso2s45f0HOu64/aSb8ZUQa447r0f/LeeV35RdStSzHXViLrgzLniQzIHniG4y6cvlNPmfFSFWoy6RzSW+4NYNaZEbO6qVE2YfhTxmD+H0CQvarAA8wFKdvGY= Received: from MW4PR04CA0079.namprd04.prod.outlook.com (2603:10b6:303:6b::24) by MN2PR12MB4159.namprd12.prod.outlook.com (2603:10b6:208:1da::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:26 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::3f) by MW4PR04CA0079.outlook.office365.com (2603:10b6:303:6b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:26 +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 CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:26 +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, 5 Apr 2022 18:09:19 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 03/12] KVM: SVM: Detect X2APIC virtualization (x2AVIC) support Date: Tue, 5 Apr 2022 18:08:46 -0500 Message-ID: <20220405230855.15376-4-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 9be89e64-fffb-4fc7-4824-08da175954b0 X-MS-TrafficTypeDiagnostic: MN2PR12MB4159: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: PT808s8j5E4cOk6btVHeW6NQ3ydjM1S0hgYByV1jvGxx21SL2LJAL7rqZCx1h9SCNiguW3no9RFAeYZ0waO5n43vD8/M+lsSpY7GbePcQ7nUNPtj4vzhhblrTwW6HbH4q9RUWWTuHvsrxjYpxF6hpxSpu6Jl1mZpzCXv9KOM8XAgl21sMvNJLIaxQf14+wBybO8E420W9oS1Jb3JvZmAJ6E25PzJMtHixy+WBJNhPFi5Iln/QGPTEbY71ySGS8hIugdVmWNu8aK8zw+GkOlysdHnvYPcQrfJlBnjvXh3ZsA1X9U3lblDTtgcyLJ33jrG/wBaUl7aDdyDmMEU+zRI4H3x23fwE7z/dKBiUjTx02Jpen6iLKcbsgEqTmS503af4RfipXpgsoLXzylqzX5x1+/ZKBz+r1Yj8WuzE2uRFBnDbmYqfSzcP9QdpvOXdS6zHys0cJ4t1P/UZ3Y6pMrWygqvhEIgVb/zaa3+9rJ9zg33yTvpPY1YMiJk0s+xaubFyiS65yTBW0asAKgL9A3N0r4D9oEvaSw1SEfhlGkG23ZLiu2VkOIoSUieUUr0YPPgtNCDP+a+Gudi0aOl/APA6P7n30qEFjNM+pVC6B/+Xil3wsKXmZOYUTk9ogwhmzYHHwpfvN/tIrIPoklvNZMqDtrKbV8b8e1oiHftGs3NUriR3FHwE5sNIFjxqKZ6Ah9HcXEwgvj2rkRoX+cilbqQhpf0opi28dUXH+8CqRjmUGPB8vManKpchUa1rgLErQhb 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)(40470700004)(36840700001)(46966006)(16526019)(186003)(426003)(83380400001)(81166007)(47076005)(356005)(82310400005)(86362001)(36860700001)(40460700003)(26005)(336012)(2906002)(6666004)(54906003)(2616005)(508600001)(4326008)(70206006)(8676002)(70586007)(110136005)(316002)(7696005)(44832011)(7416002)(5660300002)(36756003)(8936002)(1076003)(36900700001)(309714004);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:26.4213 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9be89e64-fffb-4fc7-4824-08da175954b0 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4159 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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=1. 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 7eb2df5417fb..7a7a2297165b 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) +#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) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 70a8b67ae800..3dd345ec3345 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) +enum avic_modes { + AVIC_MODE_NONE = 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_HASH_BITS); static u32 next_vm_id = 0; static bool next_vm_id_wrapped = 0; static DEFINE_SPINLOCK(svm_vm_data_hash_lock); +static enum avic_modes avic_mode; /* * This is a wrapper of struct amd_iommu_ir_data. @@ -1018,3 +1025,30 @@ void avic_vcpu_unblocking(struct kvm_vcpu *vcpu) put_cpu(); } + +/* + * 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 = AVIC_MODE_X1; + pr_info("AVIC enabled\n"); + } + + if (boot_cpu_has(X86_FEATURE_X2AVIC)) { + avic_mode = AVIC_MODE_X2; + pr_info("x2AVIC enabled\n"); + } + + if (avic_mode != 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 fd3a00c892c7..bbdc16c4b6d7 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -4832,13 +4832,9 @@ static __init int svm_hardware_setup(void) nrips = false; } - enable_apicv = avic = avic && npt_enabled && boot_cpu_has(X86_FEATURE_AVIC); + enable_apicv = avic = avic && avic_hardware_setup(&svm_x86_ops); - 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 = NULL; svm_x86_ops.vcpu_unblocking = NULL; } diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index fa98d6844728..b53c83a44ec2 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -558,6 +558,7 @@ extern struct kvm_x86_nested_ops svm_nested_ops; /* avic.c */ +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); From patchwork Tue Apr 5 23:08:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802485 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 91831C41535 for ; Wed, 6 Apr 2022 05:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1450757AbiDFF31 (ORCPT ); Wed, 6 Apr 2022 01:29:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1450767AbiDFBQr (ORCPT ); Tue, 5 Apr 2022 21:16:47 -0400 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2073.outbound.protection.outlook.com [40.107.236.73]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C92B750062; Tue, 5 Apr 2022 16:09:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NGI1Txo3A/gFvqnU3Khj2adZ5ECDzG6g00mXeKvid6mkAU8OQYVzHcnH9QKlfUj5UNWH/fzN+I1vnHYOIUI/xgq4tC/YIE2T9mtUC33ag5++/TXxsHSUupNXTsxx+byx2UU5nwNVoseucfAfErGzcYHSde5/swCV8jDPbdab7hPE802GvXzvNnt+S3x3Uh46XsFGnGhCX/vAmJ87dZbILJQI/8i0hRiAn5nNg2DjPc1KziGsyrnZs7aM0oy8aE5WkD7qrXCwIpAqyC+QvMGERfgV9b5ceFfNjeQ3Bgbc1EM/IjHn8Joe6+m+ClgN2M8qGCzLBTSAjQ7f7u/W0yt+WA== 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=0F1Ez1dBd0tyUiK4FCbN5ebk6TTaC0Q8zRB9oIPjIrU=; b=UDtXV1yfZcANkwGyTnFyMvAhjuhm/rnohqVHQAfbDEpVlgSFl2U3BljyNF2dfT81YXL9mmBXgwY7gPYkl6hct2Yg1LpnJCkF0NtocPqxml7iYHi33zP0Ba4yavUxoOqr9Kc4ckdAogcs/A/osYqzdAh9SBh4Y4fstUxlE6f4njmnLGxmCDIiJkjESOy2RCJzbQxsSuzVhNeMasORi4lRA/U3Q8LlCWDxdRHDFwmGd63s+Lvembm+rYaon92lU67gtBkIpktdjF4fFj4IVjErGCU4FIoNxtWonzxWPYyC0MjABjTMj5Ae3E1nSjGxe/KvXNsASlRvKDO0N9ICn9XVQA== 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=0F1Ez1dBd0tyUiK4FCbN5ebk6TTaC0Q8zRB9oIPjIrU=; b=XhsUsqRqaHDsoOXKZo14nJqrrEgUPW1FDveoFwNU84BJ8BbkpMKeYSg+Id5CKsjES69YAMjZyxSQIyABUBf2fUNfWOhyWjNeo/tEpA7wYt/4T6CKO/yQTDF3g5SAdcSvADZm31USgmrUJeHfLLLQ/vMXH7fMzQJJoCx9xfNgvrU= Received: from MW4PR04CA0062.namprd04.prod.outlook.com (2603:10b6:303:6b::7) by BL1PR12MB5110.namprd12.prod.outlook.com (2603:10b6:208:312::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:27 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::37) by MW4PR04CA0062.outlook.office365.com (2603:10b6:303:6b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:27 +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 CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:27 +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, 5 Apr 2022 18:09:20 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 04/12] KVM: SVM: Update max number of vCPUs supported for x2AVIC mode Date: Tue, 5 Apr 2022 18:08:47 -0500 Message-ID: <20220405230855.15376-5-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: e501b66b-6a37-470d-1769-08da17595544 X-MS-TrafficTypeDiagnostic: BL1PR12MB5110: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: /+ducNj4hH42c+9iegwg4qOvoQNRdc9yXwlviN4nlA87eJ4WcVYD7Zfxt9VESlCJdfwN4YLpJLblaXOhYguVm2N84Fxtlny1cCQ7+jnn/egh3WlcG0vqX6XfW/3JtWknKGutJW7gckaTPpkQ0o6WD2ebB1E50nzzImxtRJfFB+MjNhMq6awJbJ03gNUSwHvDR68CF5QH0d5ernpLdlaWZwMi760ywVV8GDK3v7Z2RVFtK24naNPxW47rID+Lg1aPytKkdQCR5qTOOpUn9AV4t+TfGWNdXKsC9b9/iE/H4QHXrPvx2b5+d4tuOqjK+hOtoJ6taLaujQIomqpalxjpEllg454Cdf7F9MEy8WqqngXykzhBR1YkXqGBlEkOM+UJRWb5/gQLKtWKwQjdmAovoGNhscNc9yT5IOD3Z+it8aqz7M+xOwqqo09XTwB5IPYL9pk/JUReJ1bYmukJIn+/vQeQkjL4RVTfTmIGYJG79bFORiHn0izIt5NL16kaUqs9whQR+eTUh+GqAKyIBGfbmC1Pe/M0foUkhcY38L6nAbVlA2e3KqqDDKmV0Ca3YdL7MDbiOfSR5k3xKw015b13xDFhYlHe8XXe8eyLb5eggzwXu4/vhfzs/vbExobLOzi706QKrmqjsSgU2mUNlxLnfGEKUSlga3qw1xkHxD7CCf6el299qa7WYdH3Jcf/yfv5CM5FQ+P16B7amjpOQojJFg== 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)(54906003)(2616005)(1076003)(2906002)(186003)(336012)(316002)(82310400005)(110136005)(47076005)(15650500001)(36860700001)(426003)(81166007)(356005)(26005)(5660300002)(40460700003)(16526019)(8676002)(36756003)(7696005)(7416002)(6666004)(508600001)(70586007)(70206006)(8936002)(86362001)(44832011)(83380400001)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:27.4056 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e501b66b-6a37-470d-1769-08da17595544 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5110 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 7a7a2297165b..1ccf301648a0 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -250,10 +250,16 @@ enum avic_ipi_failure_cause { /* - * 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 #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 3dd345ec3345..571de2d4232d 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 = bpa & AVIC_HPA_MASK; vmcb->control.avic_logical_id = lpa & AVIC_HPA_MASK; vmcb->control.avic_physical_id = ppa & AVIC_HPA_MASK; - vmcb->control.avic_physical_id |= AVIC_MAX_PHYSICAL_ID_COUNT; + vmcb->control.avic_physical_id |= AVIC_MAX_PHYSICAL_ID; vmcb->control.avic_vapic_bar = APIC_DEFAULT_PHYS_BASE & VMCB_AVIC_APIC_BAR_MASK; 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 = to_kvm_svm(vcpu->kvm); - if (index >= AVIC_MAX_PHYSICAL_ID_COUNT) + if ((avic_mode == AVIC_MODE_X1 && index > AVIC_MAX_PHYSICAL_ID) || + (avic_mode == AVIC_MODE_X2 && index > X2AVIC_MAX_PHYSICAL_ID)) return NULL; avic_physical_id_table = page_address(kvm_svm->avic_physical_id_table_page); @@ -245,7 +246,8 @@ static int avic_init_backing_page(struct kvm_vcpu *vcpu) int id = vcpu->vcpu_id; struct vcpu_svm *svm = to_svm(vcpu); - if (id >= AVIC_MAX_PHYSICAL_ID_COUNT) + if ((avic_mode == AVIC_MODE_X1 && id > AVIC_MAX_PHYSICAL_ID) || + (avic_mode == AVIC_MODE_X2 && id > X2AVIC_MAX_PHYSICAL_ID)) return -EINVAL; if (!vcpu->arch.apic->regs) From patchwork Tue Apr 5 23:08:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802484 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 A0923C4167E for ; Wed, 6 Apr 2022 05:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1456935AbiDFF3y (ORCPT ); Wed, 6 Apr 2022 01:29:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1451494AbiDFBQy (ORCPT ); Tue, 5 Apr 2022 21:16:54 -0400 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2045.outbound.protection.outlook.com [40.107.100.45]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDEF950459; Tue, 5 Apr 2022 16:09:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ng7ayQd7Zn00kBeVv+T3cmBi3bbWOdm6Oo7e6PAj+BIm6EIQhhexp9FlD1xAbuyoPs7oLjdnzd++0OUoVZ8RMGnjShrIT+7z6jusSFLSBmeLaeHhVH3muijs5THq1ugz8xVHZxOY4BoQBMGU7Mo52jWgeTfsTridhmkO4F0V9Kw4BPnZyQp5zJtjTug+MxwpPnOrqEPD0B72KDZ98MzREFhzD78wsqA+2G1CULLe53VUtMe+6Mu1jB9bzLbam2NFYqLGxMmHdlJc6qK96zEPexLKvmxnRbxl34AOrJ51UQ2DO1OBGAOVdVSIg6IXYuDeyr5ejaPI1BRzFAPREt43eg== 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=NJnZ8HgiqgKVG6R5eAGjsRJ9zlWR8cbIUXNBy8fM6FY=; b=Qa3aDNvJwTn3ElShMetgmKtZ5kKK2MO90qdL6WT2HUBeMZZOvVl6kS2cqGlQ6WSzuuzRKSVgfg0t/BKjTHgxwCAdf0gugRhayTimcG8eAt1ech4iS9IT/Uj3BwKLVZZNr5fznrou9obWLeQJlk0e8vKYTtGoZyqUciqRLvCLoyUqXcPlq+gQAaNEC+3YPMzPAR0A3YD+EsaaNJaQ5zfF1vtu7loYTL7Fbg6bSNwqS3TQxV87OMsmDZD4rbNxaGZQ/sKv4ktcF103tuWy4SXunZpu9g3A3KJSHS8Ml0989GAXoh5To7Ux6Iv9pvnmqF9EZJ7sbIQEnZsx/93pHDTB9A== 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=NJnZ8HgiqgKVG6R5eAGjsRJ9zlWR8cbIUXNBy8fM6FY=; b=QV+aK8jqr4ejWJAUx1owGIzKZPkdR/JRSUW5KOZcUK5hkNipEVMiE2H6UZ8BovLx6Ayfej52MlyD7TuHsvIQwgaT6pbFWpMWGrrRInAaS6HCtkcJsyXax5vhpltKyQwRjaGb7h3022uP+9XzuPG+OigpPOUFrScf5emOiUy49to= Received: from MW4PR04CA0074.namprd04.prod.outlook.com (2603:10b6:303:6b::19) by BYAPR12MB2773.namprd12.prod.outlook.com (2603:10b6:a03:72::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:28 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::1) by MW4PR04CA0074.outlook.office365.com (2603:10b6:303:6b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:28 +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, 5 Apr 2022 18:09:21 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 05/12] KVM: SVM: Update avic_kick_target_vcpus to support 32-bit APIC ID Date: Tue, 5 Apr 2022 18:08:48 -0500 Message-ID: <20220405230855.15376-6-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 82150e88-adb0-4987-ad43-08da175955bd X-MS-TrafficTypeDiagnostic: BYAPR12MB2773: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: D0vIrKWQ9OPWA7DMPzQWE5sQFD9G+3diXl+Bscc9wCpYOPRkNeAxF/nfqmhfx2Y42rUMXouMlbU83sD3ggF1lK1kpACFKxN2fFmpG455YbXaNjI0eSziBCzlSBNDtJQ9EuEC0xQqXL++6FSIT0CzfVuME/TV65flYrk1cCTSZ0WVH6Q50fqyXRtssUhua6Evylmq9b0OKnPb5Wc9SBjmwhtkO56RLsoCSo7FDolzueUVzqQVJ0TRH1B5/TIP6a2XRqh322NCS9QRTDS+vvk7vb9GaOpta4BldOGhu0ftK8NcOZqNSihzcRBPItd7WOJd9Wqhqgg8z9ih/gpQ25L7DjVeaUypw77ZKgz5KbL9/4FOtBXHMn1RU3Q+mZnytaD2xF/svTLJ167Vm17mPmiPpoeMcKzXGjHU76IOfNiFlbCoeVcGqPztJ/5ZKfqN0hNLAzfVV6exWYslJ4d+3e68zOsecl4ribpRNAIbWmCZiJswijVD6FhaLsOPVfUAo5aMSNSG1n/E6OaFrsBjpumA81vYf4kRxziAM0TQJCnJsGZWpIY2QmqW5kLqSENpKHy0AAr3gK3WLZZqxoGTFmPJQUD2nlJy59ft5giIUvAAU9/eXLGl6Dassdtr5/AtCy5RF0tmO04RIg0zajaDBuAclQRFOEc0nsaNdYA0wcXhvZ82h7e4e7ST/6m42Or1j0Ykbhgjjmc7sm5qI2Frf5AP7w== 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)(40470700004)(46966006)(36840700001)(86362001)(1076003)(316002)(16526019)(36756003)(82310400005)(186003)(40460700003)(8936002)(54906003)(26005)(110136005)(81166007)(356005)(6666004)(2616005)(70206006)(426003)(508600001)(83380400001)(36860700001)(7696005)(70586007)(336012)(4326008)(47076005)(8676002)(44832011)(5660300002)(7416002)(15650500001)(2906002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:28.2025 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82150e88-adb0-4987-ad43-08da175955bd 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB2773 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 571de2d4232d..c36a236e1e8a 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, struct 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 = icrh; + else + dest = 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 = true; svm_complete_interrupt_delivery(vcpu, icrl & APIC_MODE_MASK, From patchwork Tue Apr 5 23:08:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802486 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 AF435C3525B for ; Wed, 6 Apr 2022 05:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1457457AbiDFFaG (ORCPT ); Wed, 6 Apr 2022 01:30:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1451618AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2061.outbound.protection.outlook.com [40.107.237.61]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAF4E5046B; Tue, 5 Apr 2022 16:09:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gNTzlyUiCsABqJ/F7AaA7b7SFieV8ofEITtfYUWLOZC/e16dz5W/AtBqEwpnq4JVOddRuxfa67BVOJqvRk7mnSbn0XPrjnZLUJImrVcyaJt+WsSl+NGZDfniqOlwZmiM2+p15OOuoftyny/5T1P7sH8yakcxnz1gJrl5YgSxm7aPgPIUL/SGoqveFjq7DlDWvgyEHIe/2JbOV7JBlXqqCnA08bVmt6iBjgTbnRddBQscz0XXMpDWZKCGmkUL/ecaxuolVoAmFy+mXrsbesFwD8w1Q2OMetyEdmofV9xcychx/1Q3QBBi3gQMRxsejZ8aVcA1X03mGk7AkdTdRNJxjg== 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=a+cIZM44K1A6L6EhrP2lWOUKZhgxGlxlqZ/u4F9HDVE=; b=eDGrPgoTMOWhjq17sbxP5EY8Kqg1kr383T5/LdLdDs2x2p396rJ1UnepbeDF8Orr2ILvikLguYw0j5sP/u3hrcTshPEjNdkEeV1LTm6K1C3gRRC/azkaB77vvWgmjziqcE+EeeRf/Px1A6GmgfMuGPGtVtvTI1Nd//670V1aE2CWUS+ByTxIHoLTb0L+vnkxy/JLkthrrMCrG3Jr6JvRtKRT9CbXvmxxGiO2Bi4fWcGLB5qJPQ56oUc3UVHRjoc+7d+dsTXBYki9Ic8gn85sf9XhryCXKuxeQyjNbc9gsJfDkc2MzeDRoAem9mxIV9BTNwc7H5BZX0ebiPNeAUiAzA== 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=a+cIZM44K1A6L6EhrP2lWOUKZhgxGlxlqZ/u4F9HDVE=; b=f6q64Ija4Pe7xMtaOZCW3JEke2u1fek4idzox7P6igBuEndNlrbZkEOVD9ypfyFLGIiSvtXTVdCjmAsFqtf2q1g4eknHb2DLE+PQWbFHKDUYKsq3IzcpbaVKB2f7Ni3VDxjJ5XyFrnFR9R14k1Ao7+pwPjZvFmjuuIqY8gH7Ku8= Received: from MW4PR04CA0073.namprd04.prod.outlook.com (2603:10b6:303:6b::18) by BYAPR12MB2630.namprd12.prod.outlook.com (2603:10b6:a03:67::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:29 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::ef) by MW4PR04CA0073.outlook.office365.com (2603:10b6:303:6b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:29 +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 CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:28 +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, 5 Apr 2022 18:09:22 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 06/12] KVM: SVM: Do not support updating APIC ID when in x2APIC mode Date: Tue, 5 Apr 2022 18:08:49 -0500 Message-ID: <20220405230855.15376-7-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 50654199-fe32-4507-5787-08da1759562b X-MS-TrafficTypeDiagnostic: BYAPR12MB2630: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: 5pbSeH0RYPFKLvSvhRXrnUBaSHwm0cmkhiaEQArQFUB4C27zcdPR96x1kpbn6VNcArD3V96zGR3pNgFi1hwGvOArRZCBAsvkQXkc1orATfwin1TOWVjlm1ZwWCRu7bF+B15wCk8XtYzFzf46cUOTfhKSPVpHO2E8Bu29Oa9EbiorsPCclxfLJlZCM50C7zMwsvN76WoWcC4T7oNqOiOGNEDa0zWb1Pu/EAZ7+DRO49l4bZfo2sPcXimD5SEQLMlDGynUCwOrhBmW3Vv8n9Q/+xKSAHks9I9ZoL82oXPfG9arY7GOxhl5laoJL/TunxeUk0H9khKzyNOmVmJoSbyLPXsWnCRMa809ef1kXF4PU9qQlloDudWfytCp9ckUR3vFDgZJ7OSzaWTfwNqgcUeOvqi+PDF/VzUnlul6JTLECJSntOBmBVREGb8/43GL2GYjNE/y0Hmh2ibWNf1rjnfyR+VhK/ZQHVt5NkEA8eyM5Gndep69QDdG4oUz8DzE/TZp9UrHDvyNYMbJHw8+SdPp4LLf3cdCS7bsF/zwrVVvQSHuhvmc7dgUULcHlkNJGlWbDuGNqTtD4f//G9Flc4qJg1Vf1eJ2ibFckXZOS/ixJM6/r+DrmL2UCATC0ZV559VtKqvcy6XTVxb5RIWx6OAM6bwO2pHh687vzEnoj5HZSg9+k8Cbfts3erwKXm80KQNB3jJyqtWgHYbinCcz/L57AA== 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)(70206006)(70586007)(316002)(110136005)(54906003)(86362001)(82310400005)(6666004)(1076003)(356005)(2616005)(81166007)(8676002)(7696005)(4326008)(8936002)(508600001)(83380400001)(47076005)(40460700003)(2906002)(36756003)(36860700001)(44832011)(7416002)(186003)(426003)(26005)(5660300002)(336012)(16526019)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:28.9212 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 50654199-fe32-4507-5787-08da1759562b 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB2630 Precedence: bulk List-ID: X-Mailing-List: kvm@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’s 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 --- 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 c36a236e1e8a..f378f7810db7 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 kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); bool flat = svm->dfr_reg == APIC_DFR_FLAT; - u32 *entry = avic_get_logical_id_entry(vcpu, svm->ldr_reg, flat); + u32 *entry; + /* Note: x2AVIC does not use logical APIC ID table */ + if (apic_x2apic_mode(vcpu->arch.apic)) + return; + + entry = 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 *vcpu) u32 ldr = kvm_lapic_get_reg(vcpu->arch.apic, APIC_LDR); u32 id = kvm_xapic_id(vcpu->arch.apic); + /* AVIC does not support LDR update for x2APIC */ + if (apic_x2apic_mode(vcpu->arch.apic)) + return 0; + if (ldr == svm->ldr_reg) return 0; @@ -457,6 +466,14 @@ static int avic_handle_apic_id_update(struct kvm_vcpu *vcpu) struct vcpu_svm *svm = to_svm(vcpu); u32 id = kvm_xapic_id(vcpu->arch.apic); + /* + * 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 >= APIC_BROADCAST)) + return 0; + if (vcpu->vcpu_id == id) return 0; From patchwork Tue Apr 5 23:08:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802475 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 D1F8EC4332F for ; Wed, 6 Apr 2022 05:22:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237492AbiDFFYF (ORCPT ); Wed, 6 Apr 2022 01:24:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1451719AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2044.outbound.protection.outlook.com [40.107.102.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F373506E5; Tue, 5 Apr 2022 16:09:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IB1q++RHpOtMam/mG84yYYzExPDTQjF+/eLJGy1mSoo8tjFlkW+rMdUBoP3IpalndDJubkryKwL8AOZVSud9+AbY6Z4/Ib+mr/aEpNsYdO3N7Z+FCNBI2yvdUHJgxR66/d69XqxfaC0P0KIwB6Ut/5vsT9gEgzRQe/5V6DX+VUYcQXmT0NYvUHFX708JRLJWIOqFe/GT56WwIHk1AM0Hnc8rxWE1vWHk5gPEgQoYJjLUxMe1uL6X1SsNb6C5sKH/LlP2YTq3TKMf7vjxaCEbsnM0DXblXDMEjCU1Kgu9FU1lIV7Zxml9yy5qjRCiK6CnL6HV71f5lMgTvT6Or/P/mw== 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=jBnhw+lwG7sVQIWSPBhkwt3pkafCbuboFVVxYdtm65w=; b=SHnSS3uMBj3N6fny5mUO0f9WmdsrPW6tG7Df+eUt9UGnxqZdO0vutAusllAYq3d6ym0l4mFVw5uyzqZDQouSQCDZxGC2LHaQNGduqYzAXzsve2jdTzutklu1R7zaKo1gG2a8gs2dZhY4sZxrChrAQJYklQKTlBRaVxOnzZxxYQstoktAlDg/6q1HmPfqKpZFnUyY2CWxuDgDJ61jC3+jlM7BuaSOv5m3Jg+lU6sNRFEtpKPZQDhjfOLzIA6v87wRvuhvtWTkdBIKgCo/D1FWauH61J/S7eni+C0tX4OF6ajHF3WTGqMTQcVtAAgTqiICOyYckz+imb6QjVffpwQ1Ug== 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=jBnhw+lwG7sVQIWSPBhkwt3pkafCbuboFVVxYdtm65w=; b=PVo/j95RSe+BBPCRGNZo9K4LLdOJm0vQtc8g1rCs4ZqyXkt9EaoGBnn4AVbsmkuzCXipBa8tyfV+Bv4IqaFCmrCUYbCpk//VHFOMH2M95L0KrnbwRUsdtrYgHeBeu4PWEva/78sf3/qsocWcI7txiQfkiiS4d1gq+a7WIiVsWQc= Received: from MW4PR04CA0085.namprd04.prod.outlook.com (2603:10b6:303:6b::30) by BN8PR12MB3044.namprd12.prod.outlook.com (2603:10b6:408:45::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:30 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::61) by MW4PR04CA0085.outlook.office365.com (2603:10b6:303:6b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:29 +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 CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:29 +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, 5 Apr 2022 18:09:23 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 07/12] KVM: SVM: Adding support for configuring x2APIC MSRs interception Date: Tue, 5 Apr 2022 18:08:50 -0500 Message-ID: <20220405230855.15376-8-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 13a8a095-fdcb-4b63-8b14-08da175956a2 X-MS-TrafficTypeDiagnostic: BN8PR12MB3044: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: yidp4XyKsVeN9pYlant6lZku8XY7dECt62UNvMQJYokZFLRjqzK5Kk/NEqfxE3NuYys7HK7AugGGrdSjocOhMdNrgcAA7gyLoqTFl0Tw3zZemTT/5bx04SLEEFC/IU4t2RdfwzQuwXftqDEEsTInntGiFcppjb0Qy8wlxo1LzOIAu47oe4TxDNTFpLAtRjbO7jRrlts2jZ8fvRGXsPrhL1nVm2JefeZmtoPTjU0S3If3IzcZOQ0277oPDzMWADGg0RoIGLoXCmfnXuRU/QYOUkYJlVBBLqYQbInH3H6NR8njicvfLEjx8HFF0cAB90oimxKj7/JZQ2gVUmGRFOZUZdXJ0IlzfQPRAf9xActU0rP7I07qTcrP5jzywDqasQTpOg4yYng8LeZM52ID0Bpc7lOB7L4BEIsx6LRLcVl5JDzW67JC5u4hTOFl4K8PtulGSmlZQWul50+YOaBfMWXlzjN8yEEhSBmaAeppCb5e4eD7y937zFXGntjAcIsQcHw2EsVl5LtwuzV9s2krhTZhzkf+vwsxuHVix2MPie8XfBJYZJrTFdt7nmuEfZr2hpsgh65jGdgEi/+UlqpPO3AucB8/IFU3ocCgafNou46oXkGlqcifB1Wg4cfD0ZS55x0Csqdx3DcWxfi52DgRNDOg4qUPb9FQPCiH32iPZO/eRWgfNSuQMkYBgas3C7IWk68dnIqAziCNvrQiJCTOB8Mi0w== 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)(7696005)(47076005)(36860700001)(86362001)(82310400005)(6666004)(508600001)(2616005)(2906002)(44832011)(316002)(356005)(16526019)(40460700003)(70586007)(4326008)(186003)(81166007)(8676002)(70206006)(54906003)(1076003)(110136005)(83380400001)(26005)(36756003)(426003)(336012)(8936002)(5660300002)(7416002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:29.7024 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 13a8a095-fdcb-4b63-8b14-08da175956a2 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR12MB3044 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 | 30 +++++++++++++++++++++++++++++- arch/x86/kvm/svm/svm.h | 5 +++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index bbdc16c4b6d7..56ad9ba05111 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -89,7 +89,7 @@ static uint64_t osvw_len = 4, osvw_status; static DEFINE_PER_CPU(u64, current_tsc_ratio); #define TSC_RATIO_DEFAULT 0x0100000000ULL -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] = { @@ -786,6 +786,33 @@ static void add_msr_offset(u32 offset) BUG(); } +static void init_direct_access_msrs(void) +{ + int i, j; + + /* Find first MSR_INVALID */ + for (i = 0; i < MAX_DIRECT_ACCESS_MSRS; i++) { + if (direct_access_msrs[i].index == MSR_INVALID) + break; + } + BUG_ON(i >= MAX_DIRECT_ACCESS_MSRS); + + /* + * Initialize direct_access_msrs entries to intercept X2APIC MSRs + * (range 0x800 to 0x8ff) + */ + for (j = 0; j < 0x100; j++) { + direct_access_msrs[i + j].index = boot_cpu_has(X86_FEATURE_X2AVIC) ? + (APIC_BASE_MSR + j) : MSR_INVALID; + direct_access_msrs[i + j].always = false; + } + BUG_ON(i + j >= MAX_DIRECT_ACCESS_MSRS); + + /* Initialize last entry */ + direct_access_msrs[i + j].index = MSR_INVALID; + direct_access_msrs[i + j].always = true; +} + static void init_msrpm_offsets(void) { int i; @@ -4765,6 +4792,7 @@ static __init int svm_hardware_setup(void) memset(iopm_va, 0xff, PAGE_SIZE * (1 << order)); iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT; + init_direct_access_msrs(); init_msrpm_offsets(); supported_xcr0 &= ~(XFEATURE_MASK_BNDREGS | XFEATURE_MASK_BNDCSR); diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index b53c83a44ec2..0bbbe8d6a87a 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -27,8 +27,9 @@ #define IOPM_SIZE PAGE_SIZE * 3 #define MSRPM_SIZE PAGE_SIZE * 2 -#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; From patchwork Tue Apr 5 23:08:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802489 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 89680C43219 for ; Wed, 6 Apr 2022 05:35:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1455776AbiDFF3n (ORCPT ); Wed, 6 Apr 2022 01:29:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1451850AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2074.outbound.protection.outlook.com [40.107.220.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 03E7850B15; Tue, 5 Apr 2022 16:09:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dqeMKRNz2WlcrmexR5gBTAYln78O9TB1B0xDivZaGfXixZJpbMlCo3K4X7j/yIo3v69G63O9Smi7DRz/Dj1tVaUDF0lWZ+hn12xoCsQIwwGb0jMZ51fIbQ2yAWJdD+Ad1NyP45wvKYfxU2G+umbyqmTpUCl2xxaGyeNa4HAPxvyf//rTv94VPMkAbre0EE4KO4DlGe1cfHg6sFYaLHijcG438vJbuaXnlaJe/jFbSDi9WUvinHiPHynwdsrGww8Y+vBIuXo4gchHSphoSmL90SJi2HlIIH1bg/TbMFKR3WZE2j1tEw3LYsItDrfRDNOnNRpq303DSrz0Xr/0dnKfEA== 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=PyVmTvq7TmLrXfHAcliw4Pzv8MfbZuU//419V9+gXA0=; b=QrK5UAaaDCZUavb+nL+6Emj72GGpUgibTltC07TPV4+F31IijXpJYWoHUNSR9hsCdqMQ9j2QJBURxCeANrnOyAmBU5OlcO5gLBC2tPL7+C3edwY0aNoGtnws/fFYL7J6IK/KM5ulOW5Ue3yxfjXCyHGg0RYKMzBQDO4hna9JqxMQ9y9a148fVDwYM7gpdCff/07p7XbxOfna0Pd2lj6FK5D25Y4G8W4QoJRVVF8h8sIEAQ6NNTmw35zRfxyJxligd5rLCva/8m7R45JALq1pmlsskKMrl3ECfXoDMCQZbNCI9ETI8LTJflpSZMeqQnNz7tOvyL7a6WJVdC/YUUVGVA== 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=PyVmTvq7TmLrXfHAcliw4Pzv8MfbZuU//419V9+gXA0=; b=faDWfB7IGDsn1P7Y1J2K7rR2nuO494c+tbWogLKzS8iC52PA9O6w8YiihR9if/m6HvWIaNKLsoIqBaeTfX2U2vFKXe9unkRdbWklSIG7ZHElhndPf/cP1caEKQb5LsANHaLeQ+GPK5XQd8sRQWyyh1Uy7sq/AaCzNtjSfJpYzkM= Received: from MW4PR04CA0075.namprd04.prod.outlook.com (2603:10b6:303:6b::20) by PH7PR12MB5832.namprd12.prod.outlook.com (2603:10b6:510:1d7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.30; Tue, 5 Apr 2022 23:09:30 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::2f) by MW4PR04CA0075.outlook.office365.com (2603:10b6:303:6b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:30 +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 CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:30 +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, 5 Apr 2022 18:09:24 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 08/12] KVM: SVM: Update AVIC settings when changing APIC mode Date: Tue, 5 Apr 2022 18:08:51 -0500 Message-ID: <20220405230855.15376-9-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 7d12dad5-fa23-4102-d11b-08da1759572c X-MS-TrafficTypeDiagnostic: PH7PR12MB5832: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: 1/kHwlvzqPL8POO/6ccdRxhiqUqumKRt2T3IJSnvStLflJCbgDDRS4hr5AdPjEyTW9n/CBP652RfPjH4vvQ6pVGHetr4dXvTb5sHsgGadccm3pcezVT9b/jffqaL8bnb1akamkXSae1n0ccgaSjmprIlcNEkPlHSd/AVlvibaWkGN9nHZMTMPmb5oV8iuhuLQ1WKP29mJUVttOEyXQ78l2DYsQvYciHlrEVgvP32VkeK1wf91KrISrofrr2fWwL0a1rFc9Y/MPF2fKgbz3uZWOYSUR8ZQcUUM2Ajen7YXtD7aiZJ5m2nvQqc7BkysFHcGuLDpRoOTX2E30zkyjsAyNTR53yOmzjscvjCsWE5W0rlKe9RXx48SM2Cc0QGCIFUUR+xXwm/aq6xB1npYB2uZFS0KuPKhhLPa01a3Cg0ILap3re9WO7B/A5ImWS2p2OctplEcIz394qLthATIR+6dDXBFPJ5bmNjl7iLagP7nx/8BS0i96VGxTgj9f2utGXZPxUPg5kUd9krXCiDAGq7GCggFf4m59NqxKy4kqs+P4iOgwG4kI9W4Q70fShbJPodU3pOMxWKjx/FjvrI5T+RPzW0j04Fyz/998GhS9tgGP8GVvImrUa3iHnXNDhXegi7dxATaBBN0TOHO5YrrPRP+ukTQ1ChPWrZ+gskC9FFajxIGt13hryZV7aNGmGDZxT+WmbRSicqJiV8PW0eoyJu3A== 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)(40470700004)(46966006)(36840700001)(2906002)(81166007)(7696005)(70206006)(70586007)(8676002)(15650500001)(36756003)(82310400005)(356005)(4326008)(36860700001)(4744005)(7416002)(47076005)(186003)(110136005)(426003)(86362001)(1076003)(16526019)(83380400001)(8936002)(336012)(2616005)(316002)(44832011)(5660300002)(6666004)(54906003)(508600001)(40460700003)(26005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:30.6086 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7d12dad5-fa23-4102-d11b-08da1759572c 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5832 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index f378f7810db7..58b58a327826 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -620,7 +620,17 @@ void avic_post_state_restore(struct kvm_vcpu *vcpu) void svm_set_virtual_apic_mode(struct kvm_vcpu *vcpu) { - return; + struct vcpu_svm *svm = to_svm(vcpu); + + if (!lapic_in_kernel(vcpu) || (avic_mode == AVIC_MODE_NONE)) + return; + + if (kvm_get_apic_mode(vcpu) == LAPIC_MODE_INVALID) { + WARN_ONCE(true, "Invalid local APIC state (vcpu_id=%d)", vcpu->vcpu_id); + return; + } + + kvm_vcpu_update_apicv(&svm->vcpu); } void svm_hwapic_irr_update(struct kvm_vcpu *vcpu, int max_irr) From patchwork Tue Apr 5 23:08:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802487 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 45801C46467 for ; Wed, 6 Apr 2022 05:30:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1573574AbiDFFaY (ORCPT ); Wed, 6 Apr 2022 01:30:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35924 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1452786AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2080.outbound.protection.outlook.com [40.107.92.80]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4B8750B1F; Tue, 5 Apr 2022 16:09:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L1of8WNjFz9yeN1SGMcDCs8W1yZnz0/gu9YEgC0FsUvBmvU9TMnX+RXnty+J1VIGEYbdexlYVN5YvCmqIiA5Fl684YQS+yIThlQJgHiyLgmt6I9znplnTVPjTUvUAfDvs1MbGByORtSpvEmBXSh66pFsOojZR3RPttQX7sFJnJl+rSdpFkYk3qZk8rh/0cZUT2vdXKJ0il3fUvrv7pX24XydtiW8FqTXUQII84q6KZQCkUUPTT4hS7rvtBKNibnhj1bOrJ84C4IQS5hth4KxwuO8btyuKq3kBtxKRRJ8WooDjF7LU7mqvNFVLgZeBSVyXsbIgljL6tFefwOjxMWZTA== 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=01k0lDFBrX4TSaFFTyGWe4vMN9NeCWfH/vZTEoeUjCY=; b=HY/SeyYlHaidJTLtA4chOqIBwNKU7/OOjMMKvW21PBQgPk4oF3wGqTK0IG3eyGxFMCt9Xn2mxgye42Ds0q8dxMzwuegmVhGqSKLvQWJPTne+aNBR1rsdk73gKyrYbZQmWYmpjT9i2fV6L4xVIJ3zEUIMVJtlZDrv9m6AmWa8rz0axZs6Q97g/Ne/arGV26fcGv42JmlyU7tU8BFGAp9ufsiK+Gm8ECbqmaKyt5vx+fYXGqvUDf2BpRMyL+vrN0RaFiFOJQdPr7sRJYPfKnmFQuEFEFF+K7ifBU28RdGSs593FyCPQnda/3PlKWSWYKXatbao860gRZRuJFptVptYwg== 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=01k0lDFBrX4TSaFFTyGWe4vMN9NeCWfH/vZTEoeUjCY=; b=j4nrpcSf8iLoHPjp7jaRRfUZ/asaTtggLUmGqbXmc+Vk62M2SUqt83TfnY4RdrT8tm2DN45WSG8cca4zckTFnUTu9gmx6ij8MPnmKfNvG8YPl9/4ZBdYNk5C5AWnbdxb30wqgo8EE6kIG1zVPW6NVa1IY7KInyUCXLbdqTdIj7o= Received: from MW4PR04CA0075.namprd04.prod.outlook.com (2603:10b6:303:6b::20) by MN2PR12MB2990.namprd12.prod.outlook.com (2603:10b6:208:cc::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:31 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::d6) by MW4PR04CA0075.outlook.office365.com (2603:10b6:303:6b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:31 +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, 5 Apr 2022 18:09:25 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit , kernel test robot Subject: [PATCH 09/12] KVM: SVM: Introduce helper functions to (de)activate AVIC and x2AVIC Date: Tue, 5 Apr 2022 18:08:52 -0500 Message-ID: <20220405230855.15376-10-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: b8c3a912-21ce-4a12-a25d-08da175957a1 X-MS-TrafficTypeDiagnostic: MN2PR12MB2990: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: 1Ba+BB3k3v+n9QoxBHgL64O8LWKE8ZK2VgUmN1gwUQ8WbxVKU9A+ZIMR4Ig+0f1716CwYzYXaqrj07Bk2Q1jo7oXOA4/foLjVYi04qaqLNrLQSzD4hyTjwoRtWCk+QSAIw2FwG/Nxp+mXaAf0q/zseKYZZFZH1Ziq2PL0XmW6p6ISPrxgHHEdLG8zjz5TBqejljI0WQUrhNjGxrcx43m1aocrjk4PFsdMu1eF9rRNRVsRen0AJnnoJwCK5rn3cFos6hpi7HYec5aeNYWDdSBkPFWHeAO9ifqksPmBwlgiGuFJWs58k0P4mH8P7JbYr0N24rawst9ml4TK63xSHih6Ipl8QgCr9PoApZGt3A3KTWRnZKjrJ9iS6Zz4+PhV0M84j8BeJMMY0x7RxZliJBRKOXJbBe+aSyhq48afOKMU4vtDL8waOxiM/fl+DQ49ONbzIeG3O2fqCMjNowusxvENJoLHO5GerMaHRNeBIm/lrz7XlglSB+z0puDmLu0yvDdOb55CQ+BHIle7Mq5yiYui6h6QZ5ymyYcyzDdISQIpHJxn4wg8WDsMDkcN93VhqmqWRgR1Vwjf+kQ9K5D6q4N6dmnEFX6EE3s0hdJBqCR4DmQXuR80WyNXRrCCJkR3na8t4SjaH2jEqyqYieX9aEQfDyn1Vc52uCeYYcHynh+QgfvmzOf74Lod2dkXFzAY0sA05bmpkr60DMJyBp07Qy0rA== 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)(40470700004)(46966006)(36840700001)(2906002)(356005)(81166007)(54906003)(110136005)(82310400005)(40460700003)(83380400001)(5660300002)(47076005)(44832011)(36860700001)(8936002)(86362001)(4326008)(7416002)(316002)(8676002)(70206006)(70586007)(16526019)(6666004)(7696005)(426003)(336012)(508600001)(1076003)(26005)(2616005)(186003)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:31.3741 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8c3a912-21ce-4a12-a25d-08da175957a1 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB2990 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 1ccf301648a0..2519209c5f4a 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -248,6 +248,7 @@ enum avic_ipi_failure_cause { AVIC_IPI_FAILURE_INVALID_BACKING_PAGE, }; +#define AVIC_PHYSICAL_MAX_INDEX_MASK GENMASK_ULL(9, 0) /* * 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 58b58a327826..4f9990526485 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 */ }; +static inline void avic_set_x2apic_msr_interception(struct vcpu_svm *svm, bool disable) +{ + int i; + + for (i = 0x800; i <= 0x8ff; i++) + set_msr_interception(&svm->vcpu, svm->msrpm, i, + !disable, !disable); +} + +static void avic_activate_vmcb(struct vcpu_svm *svm) +{ + struct vmcb *vmcb = svm->vmcb01.ptr; + + vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); + vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; + + vmcb->control.int_ctl |= AVIC_ENABLE_MASK; + if (apic_x2apic_mode(svm->vcpu.arch.apic)) { + vmcb->control.int_ctl |= X2APIC_MODE_MASK; + vmcb->control.avic_physical_id |= X2AVIC_MAX_PHYSICAL_ID; + /* Disabling MSR intercept for x2APIC registers */ + avic_set_x2apic_msr_interception(svm, false); + } else { + vmcb->control.avic_physical_id |= 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 = svm->vmcb01.ptr; + + vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); + vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; + + /* Enabling MSR intercept for x2APIC registers */ + avic_set_x2apic_msr_interception(svm, true); +} /* 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 = bpa & AVIC_HPA_MASK; vmcb->control.avic_logical_id = lpa & AVIC_HPA_MASK; vmcb->control.avic_physical_id = ppa & AVIC_HPA_MASK; - vmcb->control.avic_physical_id |= AVIC_MAX_PHYSICAL_ID; vmcb->control.avic_vapic_bar = APIC_DEFAULT_PHYS_BASE & VMCB_AVIC_APIC_BAR_MASK; if (kvm_apicv_activated(svm->vcpu.kvm)) - vmcb->control.int_ctl |= AVIC_ENABLE_MASK; + avic_activate_vmcb(svm); else - vmcb->control.int_ctl &= ~AVIC_ENABLE_MASK; + avic_deactivate_vmcb(svm); } static u64 *avic_get_physical_id_entry(struct kvm_vcpu *vcpu, @@ -691,9 +729,9 @@ void svm_refresh_apicv_exec_ctrl(struct kvm_vcpu *vcpu) * accordingly before re-activating. */ avic_post_state_restore(vcpu); - vmcb->control.int_ctl |= AVIC_ENABLE_MASK; + avic_activate_vmcb(svm); } else { - vmcb->control.int_ctl &= ~AVIC_ENABLE_MASK; + avic_deactivate_vmcb(svm); } vmcb_mark_dirty(vmcb, VMCB_AVIC); From patchwork Tue Apr 5 23:08:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802482 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 65F31C43219 for ; Wed, 6 Apr 2022 05:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1447620AbiDFF2i (ORCPT ); Wed, 6 Apr 2022 01:28:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1452803AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2052.outbound.protection.outlook.com [40.107.237.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF76250E2E; Tue, 5 Apr 2022 16:09:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CvGiD/E/OeefShMHc3Msbp0rnscet85wT6fhHN017oEhXtXiPLNgC8J1Ia8jEg1WRLh2HtflZDzYlnfhJZrn/eQ31mhEL7WiOog0gaks4NVpok1HAozxAoncAJrJ5U1mi8fku3EdhL0hufSIk9+l75nXxDIgiP/ycgv/Ka5S2rJUsiADVqIxAFT0wnknhzxtNGRJpnCuoFWBXhSmUDYkDXXaMg9mW5s5YICMtcLvG/y83RHBLxuNxZlZ2LydkSJe2EqA0Pi95pVpu+E5I3W/QigiIjzP0JLqLrLS+/HEpFft/Fl2UHQi4+tiiGrX/qfBlT+CJ3PS2BtQh+rPH885Vg== 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=yacE6OKEKnx+/koW7G342VZeET2TD803Nk7WjnEfy3c=; b=HlqLFrIgpB9zgoc45EhMrtjCQEqiatEmRs5AhTXwRlpPWa7bIZlZqqFAMWj9cY2CZSNWxe2ne5HH9KaDqzXqRLRYFORyA/bw+uSlkRERb1Vtx90njlC/IQmCM4JdVtzcQEJx6aAhNIzoXAMrfoWZHVelZB5cryQDaRHo70/l3gQ5v0xq4DytPbynJy8dPzWE+kBO76KeRoXM628uD0EhpJS8z1QQsxSg7F2wkFawQqMJZflYqr3dpGZW9Jz9WzhE3cfmFRv/HP5TVQ48lAdVRCBsuiRAFWAlrjzPrAPzpsln1kfdQDPi2j9u9HsHq7oosslK4sKLkBxza2Kv5UOdAg== 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=yacE6OKEKnx+/koW7G342VZeET2TD803Nk7WjnEfy3c=; b=KX4dtUGFINVHH2tqICoFmIL+drr3Ys6RN0cPHjO5OVaGg/QixS3loTHuNWpSKzXgjS+w0APMXISaUDitUFoIRGb7y46o47etrMtTSJEZjhjt2PcRpOwRuLQbKW79+ZjF0WrxhPaVJAvX0N4mInX5mmpuhcdrQjqHGEo0kL5kru8= Received: from MW4PR04CA0086.namprd04.prod.outlook.com (2603:10b6:303:6b::31) by BN6PR12MB1138.namprd12.prod.outlook.com (2603:10b6:404:20::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:33 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::a7) by MW4PR04CA0086.outlook.office365.com (2603:10b6:303:6b::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:32 +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 CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:32 +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, 5 Apr 2022 18:09:26 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 10/12] KVM: SVM: Do not throw warning when calling avic_vcpu_load on a running vcpu Date: Tue, 5 Apr 2022 18:08:53 -0500 Message-ID: <20220405230855.15376-11-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 05e0645d-dda4-42eb-7194-08da17595835 X-MS-TrafficTypeDiagnostic: BN6PR12MB1138: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: cS3LulhUXuUFayerPHhkqoknXxbV/se4n/tlUTbZX3hnC1MzfIwmZHx1yVEBxvNJTM1cKGp3o3v3BFfDy+eL2LHXlX2wyPh8KKirkMpjuVmau2StJaDjk4Vr5AQvRh+UZCFBs2ZbtR0yRKor0mJ2jVSIRXb9cnYiEMY7h0G7MwmxfqSAP71Da+N3+aO0+KV67/Ik09alIbRLBUXbbMi1GFjw9ZJ8FMaB6NgVX7n9NnFzcPLB8Z5gbOnPx8ZRCeQpj3TvmNLr0yAzaHTACPlNxALQs3WWYp7928b/Rx6+W6S9GsVCX3sBfNZzJvuY2kOjC9EtGlNePxlH6WlNhxOEFyXB5repCaSd4RL7MKRvNLxDYHbsdMex1ZQNEMREZ1kzCKIWimEntTG9ltiirIGkt2y8a41JTMuiRjFXeVz+eRQ0YrH4X8DdMtF2v0hkmkEOww6hyx6IU84+cgBSrniXBF053J3Vxjuc0T+x44SPFi18t5Fkw5w6XlHuzZrJRgGDdGiTO+70ZA1/xaiQrXkD6YmNS4S9CgwkDSptu13zGxGwQyRA2UgSvg0mWMndK1HxFNLe7WFJ7raoMcGgEEc8wmIPYIJLeUkBC4hfCl8sfJ/O0i2LZCFTvu3YiW5tYWwh4Nd4d94lWd4sofPWWIrKPPQvn39PoYH/T762l7709pOg1Qe9F+LTFY4etT5ofkj4Mf6KUjl5qNQFNq5exRNF4A== 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)(26005)(336012)(2616005)(1076003)(16526019)(186003)(83380400001)(36860700001)(40460700003)(2906002)(81166007)(86362001)(426003)(356005)(47076005)(8936002)(508600001)(6666004)(44832011)(110136005)(316002)(82310400005)(54906003)(36756003)(5660300002)(70206006)(7416002)(7696005)(4326008)(70586007)(8676002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:32.3428 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 05e0645d-dda4-42eb-7194-08da17595835 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1138 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 4f9990526485..a6e161d62837 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -1030,7 +1030,6 @@ void avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu) return; entry = READ_ONCE(*(svm->avic_physical_id_cache)); - WARN_ON(entry & AVIC_PHYSICAL_ID_ENTRY_IS_RUNNING_MASK); entry &= ~AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK; entry |= (h_physical_id & AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK); From patchwork Tue Apr 5 23:08:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802481 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 437FDC43217 for ; Wed, 6 Apr 2022 05:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1443881AbiDFF2G (ORCPT ); Wed, 6 Apr 2022 01:28:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1452953AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on20612.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eae::612]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85FE45132B; Tue, 5 Apr 2022 16:09:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MSMSQRtlZsUNkYXMdRbMGRmqPbVrtxpIPegYFHHPP4a/53khgN4UFCuLWlrz0kjCD5S+ycM8blytA3avRJ7XhRAGvO+VtJuSq5KAuzAq55QAtvKynSKz6aq7qya9hHMJcf4qvKT9LqakSR0rNsfFi2h18w1AuW7hLQN4tb6k+8jBdFqNbNinwN2oCw0k7x/14Y09d1hznrIF4XsvI3DmkW3qWCSeRZOfBhzQWGjt6gNcbDlDNpIMlOwuDoUOqDDiQVLlH4lpnHdnZrdc0PqfnZNVFmc5sbqZs/d/7AFdvaY9uJcwItPAsmn8MwtRVKSQRTsneDPL57+D5gmQ6dye6g== 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=pYH8QWqIDTr5SCkJlSwvot345eEaJPHLPXRhOkMoyrc=; b=my69GMi/LMMjoxahk550PQtxkVq+r8NLM9nCoec4yn7XfOQqFz0bIeEku4r7uau/R55h7bxeTJfK07Rimjhzss+jdKNcTJQi5dRRt3wNPmmChLw0S896EVP7/5BEqcSd1H/YceNIvJnYFGLH6dI2tVi53KZXL03EikH98EnsF1H5hWQcXdVcQPQQNw/NiC/TMrjrqmH+cUGlR8jvNOgORsUBXE6vxtNfFY12KNeeC2fCMXWHqoFhXJ2VhliykdRR6S3/k+O8iQGC6pzFvOptHccdf5exIO5AYmK/i4QwIpKe83FS9wJL3eoEbJUYhp6hTXMC4mmDnInCreGna+QHqw== 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=pYH8QWqIDTr5SCkJlSwvot345eEaJPHLPXRhOkMoyrc=; b=afC3v1BJDqIhI6DVTCKgIlrWX+qUDkz+Xm1Ze+FYSjIFJEShjBWHaxzRrkzamkDrR4GUUc0GhF3eFEM701BncPl0D4IFfqSkpPHdELFazaHo8fkRVUhWWDhiiaW9Uo9hxKpHI/3FCoYlbvUupROm/M4+dqsebRhFwl39qZ/ztnk= Received: from MW4PR04CA0082.namprd04.prod.outlook.com (2603:10b6:303:6b::27) by BL1PR12MB5778.namprd12.prod.outlook.com (2603:10b6:208:391::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Tue, 5 Apr 2022 23:09:34 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::e) by MW4PR04CA0082.outlook.office365.com (2603:10b6:303:6b::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:34 +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, 5 Apr 2022 18:09:27 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 11/12] KVM: SVM: Do not inhibit APICv when x2APIC is present Date: Tue, 5 Apr 2022 18:08:54 -0500 Message-ID: <20220405230855.15376-12-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 7fe0dedf-ec95-4a86-120c-08da1759593e X-MS-TrafficTypeDiagnostic: BL1PR12MB5778: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: 5YELKRQ4YxUTzluZDoaDZHBSVB+yws/S5U9hvQEQkNwFUxMh+LBGKQlOHVzugiJUYY68rSV3V7UD+G1MwsdcFQX+91hSdJPmiHzh8Apxf1Y/Kl1/gwNQen8OEVJO8epZoqSDhaAtZT5t8kN+kJ5UVPUunO/2neUFpU4cIFYDz3dEF4IIpb2hdGvhVLT66GxGBKuvC+8ztjLZSMKNID10R3BycbqaLogBReWBp5FnnXSaZ9zskQ+h1s93Il29KWW89WRNz/WB3eSXx7P04Egf6jhixXxZrMMEQYGWiDie8wihQ6y9R99PAXac2usFQpkeOHP03Xxfp7RvtQqJuAcmlgYorqLmagZOlCZjCjKi141dw8YVkSSAh0GvbS7YLQGTJIcsoW7BgXYP49IDUYqTlB7DofMSaxMKLRRF1KrDTIyjWRpNpHXgJnZLYXL1J8PO9KQGaDIIYINm3xGlK6kjA3O6nS3TcKZlJmsftcPmcepqRa2spvYuHH00T/w0BeEUYTsCePvydN1EQzbZ/TokWjuz6uUjMjqNnSPOIijqfdWzhwgYCLyhg175R3pll0w+wkl6HsIOcu8KB+w5bfCtn8OAziAdmWsn+J/eUJ4jls6t8bI7BtXdJ+vjIUUG/AFi+WU6KyoYYyR5SrmuhrCzzpo9WfURWFMuZNvfZJvFarvgSdx+ayI3XWPdwqa/6/WBS8Nqp2eS08NQ3v5TiQ7/CA== 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)(110136005)(70206006)(81166007)(356005)(6666004)(7696005)(508600001)(82310400005)(316002)(86362001)(8676002)(4326008)(54906003)(70586007)(83380400001)(40460700003)(47076005)(2616005)(1076003)(36860700001)(186003)(16526019)(26005)(36756003)(426003)(336012)(5660300002)(44832011)(2906002)(7416002)(8936002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:34.0771 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7fe0dedf-ec95-4a86-120c-08da1759593e 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5778 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 | 21 +++++++++++++++++++++ arch/x86/kvm/svm/svm.c | 18 ++---------------- arch/x86/kvm/svm/svm.h | 1 + 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index a6e161d62837..335783d2d375 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -21,6 +21,7 @@ #include +#include "cpuid.h" #include "trace.h" #include "lapic.h" #include "x86.h" @@ -159,6 +160,26 @@ void avic_vm_destroy(struct kvm *kvm) spin_unlock_irqrestore(&svm_vm_data_hash_lock, flags); } +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 == AVIC_MODE_X1 && + guest_cpuid_has(vcpu, X86_FEATURE_X2APIC)) + kvm_request_apicv_update(vcpu->kvm, false, + 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_request_apicv_update(vcpu->kvm, false, + 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 56ad9ba05111..62f8c6bf3baa 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3998,23 +3998,9 @@ static void svm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu) vcpu->arch.reserved_gpa_bits &= ~(1UL << (best->ebx & 0x3f)); } - 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_request_apicv_update(vcpu->kvm, false, - APICV_INHIBIT_REASON_X2APIC); + if (kvm_vcpu_apicv_active(vcpu)) + avic_vcpu_after_set_cpuid(vcpu, nested); - /* - * 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_request_apicv_update(vcpu->kvm, false, - APICV_INHIBIT_REASON_NESTED); - } init_vmcb_after_set_cpuid(vcpu); } diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index 0bbbe8d6a87a..35f57952e9ab 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -570,6 +570,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_post_state_restore(struct kvm_vcpu *vcpu); +void avic_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu, int nested); void svm_set_virtual_apic_mode(struct kvm_vcpu *vcpu); void svm_refresh_apicv_exec_ctrl(struct kvm_vcpu *vcpu); bool svm_check_apicv_inhibit_reasons(ulong bit); From patchwork Tue Apr 5 23:08:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 12802490 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 69201C4332F for ; Wed, 6 Apr 2022 05:35:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1386855AbiDFF1c (ORCPT ); Wed, 6 Apr 2022 01:27:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1452723AbiDFBQ6 (ORCPT ); Tue, 5 Apr 2022 21:16:58 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2061.outbound.protection.outlook.com [40.107.92.61]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4612D51589; Tue, 5 Apr 2022 16:09:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ob5UncKinVN976TuBnDGxckYRVAPum0EewsUXNcvrDXA9x6jy41g9FYpcQZBgwJFLU5pNhNDB3AmIvOOlK4H8/qxj3MLueDWxlXgaAhVg2R+jtNNPxzE3XND8Wm8vs7oda6icnAaRM0mF34pUhDt5I7KM5oHMfsxB30TYzA8piaNy5GjS4qtUXolnVYJ0ZwY+zq2z4aqdwwu2GRQDw9u6YnoDqAp7SN/ieJ5wwW/lnIQNTt09nNQWa/2wtikw+IbPwFKoDNKy9NKwX7rjEw4k2kMclmGF60UaI6EqUa4dEJgt+SCCguIfNzpLRBNWNJIExadMqMcSC3Y8De3lJI5rw== 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=p2Gk+j53OtsXRzn9hOypudYw6u5fnXAtEpoxwedIcWE=; b=hf5vlDUfCEaRW0xakRTz/YqHki2P1won/K+fPPf8qOxKR7FJHBbwe2drbtKTfD9+7w52UtRj9gze9n0rlAsn6g5h2CzNQe3LvREK/XOIxjon8LnTgjTvBybvGzg9XrcGABSNAZdbs477GELcejfy8ueX3l+sMq3/ySkxhyDuE/A7LoaTNu2Pfsxp5sJOamMvIKVqpbgOXgmSgGY4bY4Nvywkt1+tGrVfzeiktjJ3x4UR1jLdzwzsyx1maH4issWR3FcZ5z6J+CW5Q0To5xzzXxc3lfNTiig2WwiB7GTrLWyg4t8RL7cnIT0VJhqg2tLCQxk6B697jReglsEUqv+YkA== 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=p2Gk+j53OtsXRzn9hOypudYw6u5fnXAtEpoxwedIcWE=; b=JuE2oqfWEuoOfSvUWLfOU/dfBqNV5ccob7BzGEdc/l9iz0MZuwlWIYBdClVo1F5YiHgCnDTLYBpumXFr+N/+dHUIAAqhx1nbfl4ns6f9cab9NHnxkUEbwguIWzOKPUkzN+8spMAZaRbBvWkhYlycXnDY8057jyWL+HvLHKJcrqU= Received: from MW4PR04CA0082.namprd04.prod.outlook.com (2603:10b6:303:6b::27) by DM6PR12MB4369.namprd12.prod.outlook.com (2603:10b6:5:2a1::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.30; Tue, 5 Apr 2022 23:09:35 +0000 Received: from CO1NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:303:6b:cafe::b2) by MW4PR04CA0082.outlook.office365.com (2603:10b6:303:6b::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Tue, 5 Apr 2022 23:09:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT008.mail.protection.outlook.com (10.13.175.191) 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, 5 Apr 2022 23:09:35 +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, 5 Apr 2022 18:09:28 -0500 From: Suravee Suthikulpanit To: , , CC: , , , , , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 12/12] kvm/x86: Remove APICV activate mode inconsistency check Date: Tue, 5 Apr 2022 18:08:55 -0500 Message-ID: <20220405230855.15376-13-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> References: <20220405230855.15376-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 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: 1cd80cc8-40ef-40a8-f1dd-08da17595a03 X-MS-TrafficTypeDiagnostic: DM6PR12MB4369: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: O0+GqA2xy0kppnEuOpnV1EgHKgG90zwZXxemVuK8/IphGCe3zehqfxvkasON1mNIcyEufOWzNPQME8XwMOavW3ziruA0WieBz7KgCmbJlt2KA28n2LzeQrJYdQ5Ji3b2Mkj1ljtsHASnTjU1k1XoduQ9KN22isw2Nhp0bT2TJRHM501iUeeW86Bazl1TOhrGSjtMowx5TE8UxFaLRsUyjpl5P8E6VjeaM2QoD7a5fZ70R55e+v91jLeCwDlYPhrC+GeSfLSXJJ9KQSad0D11br9krA7GysHyTQVOLzcIDlavBEomIfuoKfYj220vFj3OW+HdfAoRYmrFwDT/sa5KBcC41bOO1hKMW4nEX5UKRtCPS3dW6UKu99x3oNhXcqu3Fi5BUCfnBBffOoeLtpUQJZM1AGQYNqxjnyUKbvfJ46XkSJKEZl8CkluGr/IJESB52TL7T7MyIaFr7mLmCiQCDVc2nuuG491WypOH59ppXLjHhI7n9lxguPVHaZ5XEBhzIfVlCoKEjjLeVMXKRns86tXDQDralAe+OobV1AKihaoB0J0c7ygKEz3dpx08K36vqvgs7ZrhbqBbi+Xl/61GMe6MyDGoU04lU45XWWWqnIpKVSEWIcV0S5xcKMxdtolpkwbn/FSVux87XJ6YZaYtv3ZApGsBcKR+yJwpN5jSwxHIoDcLjt52OWwOq1G4/AvTBB8mTAgmvj2WMAL8mLPOHA== 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)(40470700004)(46966006)(36840700001)(7696005)(83380400001)(40460700003)(6666004)(316002)(508600001)(86362001)(82310400005)(36860700001)(2906002)(8676002)(36756003)(54906003)(47076005)(110136005)(44832011)(5660300002)(81166007)(8936002)(356005)(4326008)(7416002)(16526019)(1076003)(336012)(26005)(186003)(426003)(70586007)(2616005)(70206006)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2022 23:09:35.3739 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1cd80cc8-40ef-40a8-f1dd-08da17595a03 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: CO1NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4369 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 eb4029660bd9..56cecf5ccb63 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -9666,6 +9666,11 @@ void kvm_vcpu_update_apicv(struct kvm_vcpu *vcpu) down_read(&vcpu->kvm->arch.apicv_update_lock); activate = kvm_apicv_activated(vcpu->kvm); + + /* Do not activate AVIC when APIC is disabled */ + if (kvm_get_apic_mode(vcpu) == LAPIC_MODE_DISABLED) + activate = false; + if (vcpu->arch.apicv_active == activate) goto out; @@ -10063,14 +10068,6 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) guest_timing_enter_irqoff(); 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) != kvm_vcpu_apicv_active(vcpu)); - exit_fastpath = static_call(kvm_x86_run)(vcpu); if (likely(exit_fastpath != EXIT_FASTPATH_REENTER_GUEST)) break;