Received: by 2002:a05:6512:3d0e:0:0:0:0 with SMTP id d14csp58916lfv; Tue, 12 Apr 2022 17:11:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw4bgE73GYuqAHWl7NG+Wf6nWLQwFtBAmbWF0saKvqYmIsPntjd/zSdMQ+6krlww3HVyjZQ X-Received: by 2002:a17:90b:4f8d:b0:1c6:408b:6b0d with SMTP id qe13-20020a17090b4f8d00b001c6408b6b0dmr7697449pjb.90.1649808717845; Tue, 12 Apr 2022 17:11:57 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1649808717; cv=pass; d=google.com; s=arc-20160816; b=aDa2kjpVEfvTYLiHJoTQ2XiIqz6CkuYQ1LIsJYkr070th8Wy3jydndb9vaLZpfx2Po 2I5bUskYL3IS8H1xIisJFQMbjbMnz9skTOn1c3/VQSgmNglrw/4SbZCa5CkRbrrG4V+w LK1kZlZNYar7TnnVF7j+nx1V1eNnFZ25d53rzV0lQNnRlbOtKFnznY2vUg/VZvwkUpSG Rbm9GAZAn3eHf6Bkv+YwBRFQvrO34jkhq79xJAAp1o/uXNKV2BE7WM90QyC4VZ7p4WBk JYLSmEOstOwaoqI3EL9DaTz88lEtq8sqhhO2XyAO4yqT5j80/V/lr1RJHwRJTlxZxXtN LNHg== 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=gWf+Q1aCWrU4RY9t+xXGlWz4FHX0nHFi9U3en7GG6Fc=; b=D+21kXjqFfmmaG9STb6rtF1uxd+jp4fH4gEAmF1jgbBTUGtx5dH6rsfaQu2gay0npx 5wGtJsdMgXBzq2bchv+mZ1+NReS5zAJeIDNeAc1U0lv2wMhdIaTsjYQZSccVA9b41tL9 a2GgVFEoXekqIvc+jVt6Fa3s8gK9ThtyrkzFD/MHg5/wUT7D4gkOZqX6QEzXgDPtewm8 2xJzmMpgRnvuN0UTxJ8aOf50eQ5ETtH9ogRDjihaDt2ujycLqM6DaTQxZrnddT1y+1zI iPif9Sg7x1P+yTy1bifovm4SI5WTUZy9KUxz5p0XBJuCjA1fmwO74Mu9aWjG3/uGccmz G4wA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=g4MjwEEG; 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 oa3-20020a17090b1bc300b001cbabeffd61si5380783pjb.154.2022.04.12.17.11.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 17:11:57 -0700 (PDT) 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=g4MjwEEG; 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 10701D763F; Tue, 12 Apr 2022 15:23:55 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353738AbiDLMl0 (ORCPT + 99 others); Tue, 12 Apr 2022 08:41:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354991AbiDLMir (ORCPT ); Tue, 12 Apr 2022 08:38:47 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2060.outbound.protection.outlook.com [40.107.220.60]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 459901FA44; Tue, 12 Apr 2022 04:59:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hRgV9yquhz0p51dOeN5oX3P2b/kJuNu3OhMwC71Eq5pSq157ME/cQV/iv0VakzLfvYUKA0eaCzY8KEjf4eBya9KcxCC9Z51WPd7tHGc9U6NJVUlfYCgAJl8Du/WvKbwHPM+OMDTH7PEzyI7y9MvjoOBtPiKQZXNrRS3wMxQugcL7Cs4NWzo9Yj9EijlMV+G34Mxvfspl3jxhKCjqE9REGdZgErShq5NovRh4MRPeynvkABbn1U8pfaS3ULC6SAcxQ9feAQ/ASAwMBIOm9Wl14ZCgKbPRqJyqoQR9LF6fsrnH20JiCw6dfW20Owu27FTUArZzOTGXTR7lNkSxMRZUqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gWf+Q1aCWrU4RY9t+xXGlWz4FHX0nHFi9U3en7GG6Fc=; b=j/6FIe+MRQIR6cIzj1P2JcOpISCWIA1abadQ37QAKYo9AL0gNiwkrRU6u4wn/BgEOPkTj6nMHWnwJX37hePYIGP4igI7JOe7IdIhW1cYs/wkjCi5UxLAquPl5d/xIaIs/TY2dGOwBgObX6Ra/bIhm96pu5mCo4BERn8Tl1vcjpjSNBXq3PmsdyaBdcm2KqGO1T7zLC0+ErADbpfpMjuclNd/aGhhrlDiO/KEdcEEiX8OGHpwFPigpxDHIQxIFmJp51sFx7UGCyyT24UB8ccXzBPeoYNnOzPQG+JNFwll3kNoyjIDw5a/XqSpRl+GVYLgdMPTUKOaRrSCr9v28Lk7Ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gWf+Q1aCWrU4RY9t+xXGlWz4FHX0nHFi9U3en7GG6Fc=; b=g4MjwEEGh5H91is1Z1Qvx8odv710qEM9ca/J2HvEjtEJMSlcHdVGuHGGqS5DkXRtJOf2nrZMOKQbZJrmYzQ+vmPJ9e0GVkkMLIwOkS+TT9pp9ZRr7JiKrJaqnpA1r803bkRqnfo3mvNj1pJUe/goTOF8QkJhXQgWxkLA3FZQvfo= Received: from BN6PR2001CA0007.namprd20.prod.outlook.com (2603:10b6:404:b4::17) by CH0PR12MB5092.namprd12.prod.outlook.com (2603:10b6:610:bf::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 11:59:10 +0000 Received: from BN8NAM11FT054.eop-nam11.prod.protection.outlook.com (2603:10b6:404:b4:cafe::25) by BN6PR2001CA0007.outlook.office365.com (2603:10b6:404:b4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30 via Frontend Transport; Tue, 12 Apr 2022 11:59:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT054.mail.protection.outlook.com (10.13.177.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.20 via Frontend Transport; Tue, 12 Apr 2022 11:59:10 +0000 Received: from sp5-759chost.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 12 Apr 2022 06:59:09 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , Suravee Suthikulpanit Subject: [PATCH v2 04/12] KVM: SVM: Update max number of vCPUs supported for x2AVIC mode Date: Tue, 12 Apr 2022 06:58:14 -0500 Message-ID: <20220412115822.14351-5-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> References: <20220412115822.14351-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ee8bff20-dedf-42b0-1ff4-08da1c7bdaf7 X-MS-TrafficTypeDiagnostic: CH0PR12MB5092:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cnJCnAKhDJ9qgI4yKihIa0UTC5jbHdxUliuZvVBKNVJZxf9+SsmPx/JaIA4i+PX/ewrA+/Golizh8+uWmM0pBaOpU0ChuZv4tojgoVPAltgwJoYima/156Ev8KPkJxEgYqQ/xltjbksaTxL9Mxfyxiq//uHvxq3MD9WE4KYA5RXHuSn3r/xhmsou2+wIKwJuIpQ6UWOlXbkixYgH6gg4GVGJD9+iNCBDnGUBugzssLZAvJverXgF89IcrPvKCsD+2iKY1wPOsIC18Q2yT7gu92wDub5r1fE8PqES9RrW4Zh4rYl0lXm/r6qsaAiurmgYqBnzbgd8qajWUPXtI58cPKVyeW30AaIebiP5nIAxzkByMRX2xXjvuzxLwaK/a9Oaf3jj8m+/S94/2cRd/gnctF7VFyf9mU2xUMusZQmoeWUOJlsYm/kbMS8/OuFjIVfVVFxv76CHQsmpfEaYvrMhEl0WriVEcn6jSKqQxgPuIxT9+LkK+xpsIv6PFn8yuS383ZGS18Cdxu8+zN1gF7JH7en9+urcW/efHCo9s0SMfR0vHbXtERRe+tV1H8pUyBpPZjdR+IUnwLjE/MzWmxlGPKIEHENHcDyVYg2K+9T0J/iIVp5FZbdEZXjGQkUt84cYx4BlvfMqd9plL3PtlAZaIfLxl9uy9nqcxEEGUgxskeBjXQrDFmbP4txxntBJD6so1ePmBJeb+2EmSgqxwHtdHg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230001)(4636009)(36840700001)(40470700004)(46966006)(86362001)(8676002)(40460700003)(8936002)(186003)(5660300002)(81166007)(356005)(44832011)(2906002)(15650500001)(83380400001)(6666004)(7696005)(4326008)(70206006)(70586007)(426003)(2616005)(1076003)(16526019)(336012)(26005)(316002)(110136005)(54906003)(47076005)(36860700001)(508600001)(82310400005)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 11:59:10.5905 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ee8bff20-dedf-42b0-1ff4-08da1c7bdaf7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT054.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5092 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 xAVIC and x2AVIC modes can support diffferent number of vcpus. Update existing logics to support each mode accordingly. Also, modify the maximum physical APIC ID for AVIC to 255 to reflect the actual value supported by the architecture. Reviewed-by: Maxim Levitsky Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/svm.h | 12 +++++++++--- arch/x86/kvm/svm/avic.c | 8 +++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 2c2a104b777e..4c26b0d47d76 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -258,10 +258,16 @@ enum avic_ipi_failure_cause { /* - * 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 fefac51063d3..6c4519db3fc3 100644 --- a/arch/x86/kvm/svm/avic.c +++ b/arch/x86/kvm/svm/avic.c @@ -183,7 +183,7 @@ void avic_init_vmcb(struct vcpu_svm *svm) vmcb->control.avic_backing_page = 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) -- 2.25.1