Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp3508394pxp; Tue, 8 Mar 2022 16:14:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJzmC477YuguIBL1Iqko2UdwApr7sx+icjkp96u2gwnZ7m6ePxy9jdBlLOjZ7ERZbR55ci7U X-Received: by 2002:a63:544c:0:b0:378:907d:1e37 with SMTP id e12-20020a63544c000000b00378907d1e37mr16280636pgm.394.1646784842996; Tue, 08 Mar 2022 16:14:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1646784842; cv=pass; d=google.com; s=arc-20160816; b=jve1YGXiP2wWXCaNV75rDX7X2dkIZwcjd686xQ0DfB7zoI5Gcux0MGcwjNeFV/I4nD eOQhukEM5eutDpKtNtX6U0bYC1ZlSGQt8RKUZb8l0hvvbb47n8OxEE0+x1It9q9a0NWm h0NrSs7wIyvWAFUvlqUj3+e1yzVNiQQd3wy1saGiIfD19zyutMMUCkgPTEKzYTPzKxgn 9wWprt+A29OE+W8B3VjQlh/0Bp5XvO/jlP8giUOC9m0spJCEWtLxtTx+FtvuGPd9vizm mo5qkwd8Lt1hJyBoK+TsC68fLYFxvG3yJK+Bdey10p0DDGS4bQSKt9QgFaUfcLmfcacg jA9Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4HIz0qYgdLhzqha9SJoWKM3UBVlaBGI3PcSEWagWFWY=; b=Imflw+kQ2mZ8gDy54/T0vUanG93BtfKwjaMLpcI84oNFyvPLrAe8iNxdK0YxE1RGp/ h3PhVGwa1m7cpbwPpbCQZyZW+4PTEWSEEHKZ8r5XlZCXMx4dpwvniCdkWD7qtqUW50rw 2HGQKQwU5X5Po7XrU+SKvyjwfIm+l78TTfGqosy41Jazj2oTT9bd2Rhh/qapIzGry9Sc B6hcn33SzZyr8aRkyRwN+XmiTK3jbP88Jmp3/kL1zA2BsLuvkY2ijQJDHQ6uVndEUfSi YGmGt7Tlq78zrhGjvZHcHI0H0ZfxMm3KvuyGQ2f47h0YocvlCJiMf22SJbbsGPNAyx21 B2KA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=q0KmgC2x; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id j10-20020a63fc0a000000b00372ee370678si309954pgi.359.2022.03.08.16.14.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 16:14:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=q0KmgC2x; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 65D6FF4613; Tue, 8 Mar 2022 15:42:22 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348566AbiCHQlE (ORCPT + 99 others); Tue, 8 Mar 2022 11:41:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348469AbiCHQkw (ORCPT ); Tue, 8 Mar 2022 11:40:52 -0500 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2055.outbound.protection.outlook.com [40.107.236.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C765B517D7; Tue, 8 Mar 2022 08:39:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yef1yiYcj495023eMqaho8d2sOdfL4PsbN2nK4SrJT08GMjdhjKAY4P2wIUNVu8AIuQOVKZq9IZ9r1NDC8QOsvDjDZc2fGsRHy3Q+FqVlDDMe+8eQXNw11i4gnUPMtGhpsLERmBwUN/Q+gveFRm8Wbomvv3dvBtONmikoRUggX/17K1C8b9rkYmKIKVRCxUvkBH/pdhhKrLVPF1ezpepstY1IFiqvn34QwhOLkGzQgAnZIuMZ/DKixY18dK63n1LSytlhSWP6se6YCghIt3DIqhONixI7OV/DjQPgPOKXS6VJc9jo0YRbZy52aKQCTv9R/SuoY0Rrvld+Z5aFLZDKA== 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=4HIz0qYgdLhzqha9SJoWKM3UBVlaBGI3PcSEWagWFWY=; b=hs2iF59IDCRLN3b8+37c9Uh/q+Mg6zVO/2ZWbyv85bIMX/dGJupxm7Ouk3B6+iPhpew2T+qSK4hQ+FQ8Ym6Kvo0WDBu25zVMLbGHqvOjOI/L+gxGtJMIq5ceurhhh3BYVWcHL7AvNQtaakXV36iZy2VC3o+TjeAR4qVQlitJLTFsnzBsHOiDrlsPpxwdHatbZjh+8mfOptArTv0ToeTlO6+x7gvyTWuLhOv2nqItH1/DkAn0QxTZbr5g/kvQrzR42ICzan43ru9ZG9iFEE5S6edUldj3yqQNWcMWBoTvF7KE758Ci+MHybtMo6ZQXnWC8p2jtcJF4lKISzc6p8kl1Q== 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=4HIz0qYgdLhzqha9SJoWKM3UBVlaBGI3PcSEWagWFWY=; b=q0KmgC2xoXYUnQkg116hbNgICHFcio5hs0EYHUnOq78iXyYFSTwUbRnu7JBYKWd51/zcoJdVx1he8ZvmvyHA13gpA3kavl/K35zzLYioFbLUIZ5CVsDzuAgyo0i4MjrEwTPErotkwm3R5mj/muVYAkMPo3zc38N5XGK5cJ0ImUI= Received: from BN9PR03CA0321.namprd03.prod.outlook.com (2603:10b6:408:112::26) by BYAPR12MB3046.namprd12.prod.outlook.com (2603:10b6:a03:aa::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.19; Tue, 8 Mar 2022 16:39:49 +0000 Received: from BN8NAM11FT012.eop-nam11.prod.protection.outlook.com (2603:10b6:408:112:cafe::d7) by BN9PR03CA0321.outlook.office365.com (2603:10b6:408:112::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14 via Frontend Transport; Tue, 8 Mar 2022 16:39:48 +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 BN8NAM11FT012.mail.protection.outlook.com (10.13.177.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5038.14 via Frontend Transport; Tue, 8 Mar 2022 16:39:48 +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.18; Tue, 8 Mar 2022 10:39:45 -0600 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [RFCv2 PATCH 06/12] KVM: SVM: Do not update logical APIC ID table when in x2APIC mode Date: Tue, 8 Mar 2022 10:39:20 -0600 Message-ID: <20220308163926.563994-7-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220308163926.563994-1-suravee.suthikulpanit@amd.com> References: <20220308163926.563994-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit 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: 8768b5e5-ad56-4b99-05b6-08da012242af X-MS-TrafficTypeDiagnostic: BYAPR12MB3046: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: yY24P5nvbGFR1jnz7KfuzrkCOIszo4zlHWuL7bzobd7SBlAJ2haIJMDKr6oRuhThWfMMFbU7Oy5ZhU0Y90g64UOcmHB8wkdjIiJWBE1z9NaQIMlqdU9doDLt9bj3SVF2o2gSwRiDVdlb7OHlCK/h2h8Va3Dqwy4S//CvAdZsufisxl3R9XoTzfSn1/NJaMTZBsEW/BCy4yiLVsFfbCe4p5Xv2z8rB6QpuTC/6lGaecdd2J7+vI8Hbg2jUkIkYrvFUZJv5DBpEQv7Qfeolgjy/WJUj7LpAYgJ3c6Ga+Rjw4udAc4IS8HlreULyXg38WlqfiicobgTseWGKj2Lwjv4dru4+/hHP7aXMjvGKFpdYcWCd3vTJ3Cl9ffkXSiMfvLm1DQ5PWeOScKI34uIyto6fqtisTYaFAyzYeA3w/FRpiLkYhi+wSMxMEoMvh2I1A+lLjXvNciF6VP9+8drGN76PUiTsFVSYyB/Dje9D/9Ge5G7EiBApTPG6D7qX/EyNzUEjVmCtHaa3oCFZY2CGR2PSd9zr/rNtmSojletBsby0XzJt9RbzcwouEEianJcjS3xTPqxZ1OqAy3aw0ysCOXwPREEha3e5ImPWzgvVUbQeeStpcUTnK1ZyG7FvR3voFdc3Bk92wgKaCfhyFgNYzRNJ8E3Yt1ymeCpGqOmHBgBaTqy5eh+Fu6NTLpWjFIlMLDVDXsFl7qBo8rAPJDCziaQjA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230001)(4636009)(36840700001)(40470700004)(46966006)(16526019)(44832011)(86362001)(40460700003)(8936002)(2906002)(82310400004)(4326008)(36756003)(47076005)(8676002)(70206006)(70586007)(36860700001)(5660300002)(356005)(81166007)(110136005)(83380400001)(54906003)(316002)(7696005)(426003)(336012)(6666004)(26005)(186003)(508600001)(1076003)(2616005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2022 16:39:48.4847 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8768b5e5-ad56-4b99-05b6-08da012242af 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: BN8NAM11FT012.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB3046 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In X2APIC mode the Logical Destination Register is read-only, which provides a fixed mapping between the logical and physical APIC IDs. Therefore, there is no Logical APIC ID table in X2AVIC and the processor uses the X2APIC ID in the backing page to create a vCPU’s logical ID. Also, when x2AVIC is activated, a guest write to the x2APIC LDR register would result in #GP injection into the guest by the hardware. Therefore, add logic to check x2APIC mode before updating logical APIC ID table. Signed-off-by: Suravee Suthikulpanit --- arch/x86/kvm/svm/avic.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c index 5329b93dc4cd..4d7a8743196e 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -406,6 +406,10 @@ static int avic_ldr_write(struct kvm_vcpu *vcpu, u8 g_physical_id, u32 ldr) bool flat; u32 *entry, new_entry; + /* Note: x2AVIC does not use logical APIC ID table */ + if (apic_x2apic_mode(vcpu->arch.apic)) + return 0; + flat = kvm_lapic_get_reg(vcpu->arch.apic, APIC_DFR) == APIC_DFR_FLAT; entry = avic_get_logical_id_entry(vcpu, ldr, flat); if (!entry) @@ -424,8 +428,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); } -- 2.25.1