From patchwork Tue May 14 15:49:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 10943339 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 421A0933 for ; Tue, 14 May 2019 15:50:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 33A6D287FA for ; Tue, 14 May 2019 15:50:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 31BC928802; Tue, 14 May 2019 15:50:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ACA9F287FD for ; Tue, 14 May 2019 15:50:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726142AbfENPt4 (ORCPT ); Tue, 14 May 2019 11:49:56 -0400 Received: from mail-eopbgr820082.outbound.protection.outlook.com ([40.107.82.82]:21024 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725901AbfENPtz (ORCPT ); Tue, 14 May 2019 11:49:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q+cV5nQUritTdFUknDzJVWAoOeLLVGz2oThSdTDm2qs=; b=r7sCywDH63mRwEyDQwt2dY88KngGkXPlQvcOFtwDtsVEUEpu+IHSlbD5RZPdNIYVcbyycH6Ty6ewpUSuD/2GhyGwYVwV3rAb6YLZygu02D/kHFmoMGcysT6M9zclM3uehoDBGlEmGDs2EHNLCp/1nqDegaTlf5bLtDceYBxxlEw= Received: from DM6PR12MB2844.namprd12.prod.outlook.com (20.176.117.96) by DM6PR12MB3004.namprd12.prod.outlook.com (20.178.29.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1878.25; Tue, 14 May 2019 15:49:52 +0000 Received: from DM6PR12MB2844.namprd12.prod.outlook.com ([fe80::edb0:d696:3077:51bc]) by DM6PR12MB2844.namprd12.prod.outlook.com ([fe80::edb0:d696:3077:51bc%2]) with mapi id 15.20.1878.024; Tue, 14 May 2019 15:49:52 +0000 From: "Suthikulpanit, Suravee" To: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" CC: "pbonzini@redhat.com" , "rkrcmar@redhat.com" , "joro@8bytes.org" , "graf@amazon.com" , "Suthikulpanit, Suravee" Subject: [PATCH v2] svm/avic: Allow avic_vcpu_load logic to support host APIC ID 255 Thread-Topic: [PATCH v2] svm/avic: Allow avic_vcpu_load logic to support host APIC ID 255 Thread-Index: AQHVCmyrLU0LS+h5g0aXaHB58uDCjQ== Date: Tue, 14 May 2019 15:49:52 +0000 Message-ID: <1557848977-146396-1-git-send-email-suravee.suthikulpanit@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [165.204.78.1] x-clientproxiedby: SN1PR12CA0088.namprd12.prod.outlook.com (2603:10b6:802:21::23) To DM6PR12MB2844.namprd12.prod.outlook.com (2603:10b6:5:45::32) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 1.8.3.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3a77cce1-4128-4606-d0ae-08d6d883cd9d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:DM6PR12MB3004; x-ms-traffictypediagnostic: DM6PR12MB3004: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 0037FD6480 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(136003)(376002)(39860400002)(396003)(366004)(189003)(199004)(52116002)(14454004)(6512007)(86362001)(2906002)(25786009)(7736002)(305945005)(4326008)(3846002)(53936002)(66066001)(6116002)(186003)(476003)(2616005)(54906003)(99286004)(316002)(6436002)(486006)(6486002)(26005)(2501003)(102836004)(386003)(6506007)(110136005)(68736007)(72206003)(4720700003)(66946007)(73956011)(36756003)(66476007)(5660300002)(66446008)(64756008)(66556008)(256004)(8676002)(50226002)(81156014)(8936002)(81166006)(14444005)(71200400001)(71190400001)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB3004;H:DM6PR12MB2844.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: IN8PellT1cf2RCayNETNCP/u16GLGM7Xfr28lADyRosRwHG5SAD2uUavl0LYTD7/I3Fl0kiBlN1d5ytYFM/10CVHrmmUg0MTSBfHSjjL2RcLfLmfGRnWEP7zXYhAguAKAc+nyFSfSYPOGy5QX+5wMzRjiO3pmYBNq9ubJKN5B0OsyWumdOzAUfqK4W/9ob8/yrv/HbE+tYeFs90dacPpKTqIczHTv0Suf7Jc3LrtRr0s5qfQHRBbyVhFtAspV8bDlYCxIJZV7cSoI9YHXLM9vpwmnL08IEYLyBKKfcs7cpERliN8jYbSn3GyxyvVEKDP7bFf5OY6D5JNArgAxD0ZGyJsrwECmQL4zeMgQ4W/ONau2sFd7YtViV8smxtUxTjQT9skrAFokpaRLGgTyidaDCDy6lj2RB7tIuZ9aPea7Yk= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a77cce1-4128-4606-d0ae-08d6d883cd9d X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2019 15:49:52.7085 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3004 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Current logic does not allow VCPU to be loaded onto CPU with APIC ID 255. This should be allowed since the host physical APIC ID field in the AVIC Physical APIC table entry is an 8-bit value, and APIC ID 255 is valid in system with x2APIC enabled. Instead, do not allow VCPU load if the host APIC ID cannot be represented by an 8-bit value. Also, use the more appropriate AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK instead of AVIC_MAX_PHYSICAL_ID_COUNT. Signed-off-by: Suravee Suthikulpanit --- Change in V2: * Use AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK instead of AVIC_MAX_PHYSICAL_ID_COUNT. arch/x86/kvm/svm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 687767f..345fe9e 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -2071,7 +2071,11 @@ static void avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu) if (!kvm_vcpu_apicv_active(vcpu)) return; - if (WARN_ON(h_physical_id >= AVIC_MAX_PHYSICAL_ID_COUNT)) + /* + * Since the host physical APIC id is 8 bits, + * we can support host APIC ID upto 255. + */ + if (WARN_ON(h_physical_id > AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK)) return; entry = READ_ONCE(*(svm->avic_physical_id_cache));