From nobody Fri May 10 10:44:58 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=amd.com) ARC-Seal: i=2; a=rsa-sha256; t=1597505237; cv=pass; d=zohomail.com; s=zohoarc; b=g6iOay0YSAeImHdeV0NvwOd7WMtjJpp23Q4RhyZf1Y65lZd9ZTLHUzsWfzHdbmM0xIJZUoDxgipoRE9mAKEKw9mgqKlQpaYvVX6+cYOzd6Hg1m5KTj6SK7txX+xkQb2HRk3RQsLufunbiC/Et1ppVZn+bYnLDCwgyPPqTGylzkI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597505237; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B26YppXTwlb/yoLTMJAE5O+ozgEi0uS1W9JnjFNYFpA=; b=N8UkK4Eanm8RCtnukjAlYh2vljshgOZo4R/q3gXrjgL8bugoJ9Nzc8dCaSl8FsmXH0+s1lN3XeeaIoBIatwAW3SGiiKAAsRAOI57V1ab0uzE+msDzQNwTTGBXA7tfCQvNwQ37N5rl5XuBNOH9A508o5axxK7DB3U0IjDETPqMBw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=amd.com) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597505237490385.41595938621435; Sat, 15 Aug 2020 08:27:17 -0700 (PDT) Received: from localhost ([::1]:34754 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6y5T-0008Fb-Si for importer@patchew.org; Sat, 15 Aug 2020 11:27:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6y3f-0006LQ-P8 for qemu-devel@nongnu.org; Sat, 15 Aug 2020 11:25:23 -0400 Received: from mail-mw2nam12on2056.outbound.protection.outlook.com ([40.107.244.56]:53089 helo=NAM12-MW2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6y3a-0003Li-00 for qemu-devel@nongnu.org; Sat, 15 Aug 2020 11:25:23 -0400 Received: from SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) by SA0PR12MB4528.namprd12.prod.outlook.com (2603:10b6:806:9e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.20; Fri, 14 Aug 2020 21:39:28 +0000 Received: from SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::691c:c75:7cc2:7f2c]) by SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::691c:c75:7cc2:7f2c%6]) with mapi id 15.20.3261.026; Fri, 14 Aug 2020 21:39:28 +0000 Received: from naples-babu.amd.com (165.204.78.2) by SN4PR0201CA0058.namprd02.prod.outlook.com (2603:10b6:803:20::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15 via Frontend Transport; Fri, 14 Aug 2020 21:39:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AnD3TbxiAEMIOl3MQF3JBQCROeLeNTmIuVTjfPaUIcvaGQeuRxJuYxQ7mf66dYU8fSuSvuF3jSVolFXfyTrN1BISW6mLTVSlApMsn8aDjJYsoDeCQIoWEuivPNhVIYdMEK1FIqSfjLHqj20Yy1AgJUCt2v3UnCd5ANH0kvG6Bvm8vVBBxqintNVsTouAkEg/m0C+RFOynjom3nFW3ivqpZd5VWf5nuBWnN9x4v0v2gN+/RdNkrBOdBT8WVMDma3JYaNhGcE4VcZ7/+E62D1BEhUFTdhx8M0QDFV5kCtIb5U98dGmsPG5n5QD/lf8SReeDgOVzj87aBnSx/cpIApqHA== 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-SenderADCheck; bh=B26YppXTwlb/yoLTMJAE5O+ozgEi0uS1W9JnjFNYFpA=; b=EPUhkco24Dzba3pXt38jUvtX5+9kIH/D/Mo53/92ZWuRa+p/OLsTTLwOYWZELRoO8WrXH1EvGmEuREV8Y8+2mwSfU4ktZGJiQgc4EzuLaPFtV6K4TMQIgRFzrJ2FC+Ko6nNVt2BtmM2FhD+68yT/iVVYxro2eFi9T7SvnNse6FWjnZOn2Pg+KE6xhmzTqUTKxrVVgQrDonYsGF/FTAJUVHlLx3RYScuPa5E/LKkP3rvHeFU4A0B8VyE+Syjt088rm8I3lUCY9eRuT12cYRofFxm9m9H++juK+bwtdG7KRyYEzD6MMC0zSiifcBwtfJzpv4db8E64Lkf46DblZpH5XA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B26YppXTwlb/yoLTMJAE5O+ozgEi0uS1W9JnjFNYFpA=; b=l2d7R+WhRksvdusk30g1+KJR9NhxGHsb07zJfkBNVnEEPGYiHjiXl5DgrIZaCyJ38T/bNZ+lLvPl23B18P8FiB9W5461v9RQf0SWPp4CSzZZe0rTH76ISuzr7XR5lCWd6hPz+mpgy8LxysNsC3AmG0FCx9sLIX7XUfX99l93eXY= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; Subject: [PATCH v4 1/3] i386: Simplify CPUID_8000_001E for AMD From: Babu Moger To: pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, imammedo@redhat.com Date: Fri, 14 Aug 2020 16:39:27 -0500 Message-ID: <159744116751.39197.2874909606354377403.stgit@naples-babu.amd.com> In-Reply-To: <159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com> References: <159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com> User-Agent: StGit/unknown-version Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SN4PR0201CA0058.namprd02.prod.outlook.com (2603:10b6:803:20::20) To SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Originating-IP: [165.204.78.2] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 65731107-9e60-42b0-08f3-08d8409a85a4 X-MS-TrafficTypeDiagnostic: SA0PR12MB4528: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /CdlkiiGsyAw/jF8LI3Ffvgb2kc0ZorLo0ClYZZOpel9xVxu2A7Oqd0eApupWYdSwmmx39yT3h+F2qdpwSqWyOtxuH1WU5oJCX+kw+YJrhRDdvyXT5mbN1i1ppb3zXGBRrioaFSHeCatpXBv7y2ssOpiADWoZC6bVtBPnBf0lNoSM6eY3pJvU0nc5Zan4cmGGyRtC2SUbQiyxK+46R5k37fgzmFYa9xg9xwqjew6/57ZqP5hHfU7l2WKsFH92b2Jb9M4bdA+JRreZf492biJsRLLOk0fykxl52fJS7INL0bVP7Nl+BBKv83wOp8EuU2R X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN1PR12MB2560.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(136003)(376002)(39860400002)(346002)(956004)(186003)(16526019)(26005)(316002)(478600001)(8936002)(8676002)(2906002)(86362001)(44832011)(4326008)(52116002)(7696005)(55016002)(83380400001)(5660300002)(66556008)(66476007)(103116003)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: wcTUOwt9vLaEMxsYVp+dj6SPtEX11ptnHBg/LR1E+Ho0bElcdLa2WVh3hYC7RlFJ+k83iYdFdSSCJxx1kVDApRJvRpD/A9LVQxw65kvByGZcOOHK7fEBsK2Y4wLv9vnNGq/nelZ5Xbw7idBSKdYVztQRVv+RGObEQNfKSEghRZm1so1sj7arK5T8F2BWZfnYoq3LysPa/udwC1psSvd2dgXE1RJSHZIHJhST76cY/zMjtB3rcP1nswwEkS5qqkT2yB4geeoH7REMEMKZffTI/CuZPNTUsnOyp8XtyS+IIoJP2VDxLBtN2itjj9yJpKFDoc+M8hN3Jco/ZHLjvtDJXwgaC2tGt9XNWWS5xuHBIp70fwh99zJJqQ07UzOsMJ2rSbAohr0gtsjSJBUriSbXwhIU5+T1ianPqjWcsCjPyj25vQh5bUpC247aG4Ty/EDeF47P5zc2r2Pn/A0jpCma8oLgdl0hvjrqLTYRb54KdZLEYr3fUwMQkLDcp48yBw6ownW12wuzsetsUl38kFqLYYfvrOvX/kCg/XWeQlDHPlvLP18pw38+9KETITUETXZ10vPGfrNkbzJ9n/ZWVY7isNES5U8I/KGgkhjg9qv5kTXEFSTlWTWndZjoSX6iZ/2NiZowuU6sjQDovr9VXvivmA== X-MS-Exchange-CrossTenant-Network-Message-Id: 65731107-9e60-42b0-08f3-08d8409a85a4 X-MS-Exchange-CrossTenant-AuthSource: SN1PR12MB2560.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2020 21:39:28.6245 (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-CrossTenant-UserPrincipalName: g5rZjQ9nnf/ALDbAsK1OR4EE5wkaxxj17ag+iajlxYLkojUwvQgAUAdt9DYnYbuR X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4528 X-MS-Exchange-Transport-Forked: True X-OriginatorOrg: amd.com Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=40.107.244.56; envelope-from=Babu.Moger@amd.com; helo=NAM12-MW2-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/15 11:25:16 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FORGED_SPF_HELO=1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-devel@nongnu.org, mst@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @amdcloud.onmicrosoft.com) apic_id contains all the information required to build CPUID_8000_001E. Also remove the restriction on number bits on core_id and node_id. Remove all the hardcoded values and replace with generalized fields. Refer the Processor Programming Reference (PPR) documentation available from the bugzilla Link below. Signed-off-by: Babu Moger Reviewed-by: Igor Mammedov --- target/i386/cpu.c | 77 +++++++++++++++++++++++++------------------------= ---- 1 file changed, 36 insertions(+), 41 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 588f32e136..c892432cae 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -388,57 +388,52 @@ static void encode_topo_cpuid8000001e(X86CPUTopoInfo = *topo_info, X86CPU *cpu, { X86CPUTopoIDs topo_ids =3D {0}; unsigned long nodes =3D MAX(topo_info->nodes_per_pkg, 1); - int shift; =20 x86_topo_ids_from_apicid_epyc(cpu->apic_id, topo_info, &topo_ids); =20 *eax =3D cpu->apic_id; + /* + * CPUID_Fn8000001E_EBX [Core Identifiers] (CoreId) + * Read-only. Reset: 0000_XXXXh. + * See Core::X86::Cpuid::ExtApicId. + * Core::X86::Cpuid::CoreId_lthree[1:0]_core[3:0]_thread[1:0]; * CPUID_Fn8000001E_EBX - * 31:16 Reserved - * 15:8 Threads per core (The number of threads per core is - * Threads per core + 1) - * 7:0 Core id (see bit decoding below) - * SMT: - * 4:3 node id - * 2 Core complex id - * 1:0 Core id - * Non SMT: - * 5:4 node id - * 3 Core complex id - * 1:0 Core id + * Bits Description + * 31:16 Reserved. + * 15:8 ThreadsPerCore: threads per core. Read-only. Reset: XXh. + * The number of threads per core is ThreadsPerCore+1. + * 7:0 CoreId: core ID. Read-only. Reset: XXh. + * + * NOTE: CoreId is already part of apic_id. Just use it. We can + * use all the 8 bits to represent the core_id here. */ - *ebx =3D ((topo_info->threads_per_core - 1) << 8) | (topo_ids.node_id = << 3) | - (topo_ids.core_id); + *ebx =3D ((topo_info->threads_per_core - 1) << 8) | (topo_ids.core_id = & 0xFF); + /* + * CPUID_Fn8000001E_ECX [Node Identifiers] (NodeId) + * Read-only. Reset: 0000_0XXXh. + * Core::X86::Cpuid::NodeId_lthree[1:0]_core[3:0]_thread[1:0]; * CPUID_Fn8000001E_ECX - * 31:11 Reserved - * 10:8 Nodes per processor (Nodes per processor is number of nodes += 1) - * 7:0 Node id (see bit decoding below) - * 2 Socket id - * 1:0 Node id + * Bits Description + * 31:11 Reserved. + * 10:8 NodesPerProcessor: Node per processor. Read-only. Reset: XXXb. + * ValidValues: + * Value Description + * 000b 1 node per processor. + * 001b 2 nodes per processor. + * 010b Reserved. + * 011b 4 nodes per processor. + * 111b-100b Reserved. + * 7:0 NodeId: Node ID. Read-only. Reset: XXh. + * + * NOTE: Hardware reserves 3 bits for number of nodes per processor. + * But users can create more nodes than the actual hardware can + * support. To genaralize we can use all the upper 8 bits for nodes. + * NodeId is combination of node and socket_id which is already decoded + * in apic_id. Just use it by shifting. */ - if (nodes <=3D 4) { - *ecx =3D ((nodes - 1) << 8) | (topo_ids.pkg_id << 2) | topo_ids.no= de_id; - } else { - /* - * Node id fix up. Actual hardware supports up to 4 nodes. But with - * more than 32 cores, we may end up with more than 4 nodes. - * Node id is a combination of socket id and node id. Only require= ment - * here is that this number should be unique accross the system. - * Shift the socket id to accommodate more nodes. We dont expect b= oth - * socket id and node id to be big number at the same time. This i= s not - * an ideal config but we need to to support it. Max nodes we can = have - * is 32 (255/8) with 8 cores per node and 255 max cores. We only = need - * 5 bits for nodes. Find the left most set bit to represent the t= otal - * number of nodes. find_last_bit returns last set bit(0 based). L= eft - * shift(+1) the socket id to represent all the nodes. - */ - nodes -=3D 1; - shift =3D find_last_bit(&nodes, 8); - *ecx =3D (nodes << 8) | (topo_ids.pkg_id << (shift + 1)) | - topo_ids.node_id; - } + *ecx =3D ((nodes - 1) << 8) | cpu->node_id; *edx =3D 0; } =20 From nobody Fri May 10 10:44:58 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=amd.com) ARC-Seal: i=2; a=rsa-sha256; t=1597504523; cv=pass; d=zohomail.com; s=zohoarc; b=jOV7vSSesUvUJRQoxmEw2zny5D8MrQ8QxU57lx0BWKI204xEsZsnWPwTKy9AnA5tRHtab0wcSBfgMzoHb83igJ6U2UY7Rl9Z+w6MktZmlzmY8rNl/N1dW8l5BGt7sPatDTA826B3WJE5zzoMTcR+kXKTi4kCBOSb7b3/h03kCz8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597504523; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HG8S6WbiTtaWyIIhUJfxL0W3tKURnf/TVK9UBMWJZnQ=; b=Tos7adBsGinnU9yCoFbyt9fmTLF2vZErYP9pkiayAYxH04T20B6QSVflOsObnV++EzejmcPbJdyLsbKKIE42R48Umwv11kWC9A+6/pshf+Lg01C48UYvqmBofSk64x4F2r0A7jlTCJE9PSQeePOTQ4A+jUGdktzhm5WeB7N4C1M= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=amd.com) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597504523259231.9185652505481; Sat, 15 Aug 2020 08:15:23 -0700 (PDT) Received: from localhost ([::1]:47602 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6xtx-0006jk-T0 for importer@patchew.org; Sat, 15 Aug 2020 11:15:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54556) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6xqJ-0002G3-Mj for qemu-devel@nongnu.org; Sat, 15 Aug 2020 11:11:35 -0400 Received: from mail-bn8nam12on2084.outbound.protection.outlook.com ([40.107.237.84]:40417 helo=NAM12-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6xqI-0000QD-2h for qemu-devel@nongnu.org; Sat, 15 Aug 2020 11:11:35 -0400 Received: from SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) by SA0PR12MB4528.namprd12.prod.outlook.com (2603:10b6:806:9e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.20; Fri, 14 Aug 2020 21:39:35 +0000 Received: from SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::691c:c75:7cc2:7f2c]) by SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::691c:c75:7cc2:7f2c%6]) with mapi id 15.20.3261.026; Fri, 14 Aug 2020 21:39:35 +0000 Received: from naples-babu.amd.com (165.204.78.2) by SA0PR11CA0002.namprd11.prod.outlook.com (2603:10b6:806:d3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15 via Frontend Transport; Fri, 14 Aug 2020 21:39:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OQ7fqALZWNeX7d8wnB2NOEhB4ofjHjIfCFdMMq8UVm7c7Ah5Lkr1fCMpngFSD0j1zOJKWpXCg+PHauaR1gW0y5TKmF3LLkfQkwgun0B9rtZeWhMbZfhPRQQvvdjSO+wwuFlve4UU/L4o9PUMYSJYdBWwcugPu1+9kU0eD8Ib/ltI0Cun9vXSSYYJzMI6o+IlAOh2IouKZHZOGHekGky1rad9nbfQbRRsPP9iSM7YFAgpo2eCPfoKD8GfvKhBI5lx5VaLiKUXJdelSlZH0M89L2mgWDvW9fJPbz2UNqqJCRiJ0H2VyfKxnPcm87bLf41vsKmvA2cAQdKCGWHT4eRyZA== 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-SenderADCheck; bh=HG8S6WbiTtaWyIIhUJfxL0W3tKURnf/TVK9UBMWJZnQ=; b=T7znqW6mLnXBdhc/QE6byHdC/137nNssCS2VogVoo6EeOB3aXRTzt0+JRSydMhdImv9Gx490lrM5YEF7VE2HkYbwtItgCsR88vQmjBdVR+XdmrPS+KpBJro83+OpL/DBgpMAxeSDH0FdNzWwopAB8lRvIcKxvRBao7vdmsW5Rz4yYsUQOCE7FrJ9qo9G3+zTtD4vRNobTFS9zAoUyKCi0u/n0bkuHeBpZ5n9RFX2PYnhzSexCKolBl4gC332/NqFWUiA6CbzeRkxSwBaTnhBtVCuIHOQr4SiNIedoFUXoU64U0vesT++P2ZfqbOCvFRMMBJT0nr3U/Vjj19ao+LYmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HG8S6WbiTtaWyIIhUJfxL0W3tKURnf/TVK9UBMWJZnQ=; b=yUJKJh8i8s/e/daZgyc+JP46bUeTjfkC0s2XkoeZbnHV8P5Zk7aqRuubqbvYyjQhlEzk89Q1MbYY3DHWL7m3yysHFuN8EPhCvFETDYc1uDulG+kQLsFynG+KBa7e4wAFSfjBJwpkl5rgVp4dVO+HDT+t8CAzUWIHecWSoXiP1c0= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; Subject: [PATCH v4 2/3] hw/i386: Update the EPYC topology to use socket/dies/core/thread model From: Babu Moger To: pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, imammedo@redhat.com Date: Fri, 14 Aug 2020 16:39:33 -0500 Message-ID: <159744117377.39197.9319853595178174798.stgit@naples-babu.amd.com> In-Reply-To: <159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com> References: <159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com> User-Agent: StGit/unknown-version Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SA0PR11CA0002.namprd11.prod.outlook.com (2603:10b6:806:d3::7) To SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Originating-IP: [165.204.78.2] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f3b8cbff-0be3-4be1-409f-08d8409a8975 X-MS-TrafficTypeDiagnostic: SA0PR12MB4528: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mU+GdfNbTzeEh7XI62POXAfqKz9P3eO1yYH5JHH/uVtyenWFvwyBJ6iFZPyN2C3XduG6O1mwqS1O1VoTKUv6VbDFyy5+SLrvqvZAZHf8xKzlF9B+nDrEwFoTOTpBAEbmoB713SeBToGfrUQxq/qyz6sFIvOO2M27WSJtf2t2IeL2ckgFvFthVlQ+T1Q8UIWkyHB83g7IJHf8fKompWuAcIRrlGDO83CQLnObBlwzGN263Bim3WyHFHYIeoCL5zXEJJWYm2PJ57dl8IpgdI53/zTKpU1lE+OLEh73hPue7TLcnhImFEsh6PPcHgfXloVfqlXAsHOzJF86M/ahOpqlHQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN1PR12MB2560.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(136003)(376002)(39860400002)(346002)(956004)(186003)(16526019)(26005)(316002)(478600001)(8936002)(8676002)(2906002)(86362001)(44832011)(4326008)(15650500001)(52116002)(7696005)(55016002)(83380400001)(5660300002)(66556008)(66476007)(103116003)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: YF/A7cXa4KE/jHUU5f+stEPRIpHIkaQvCNgvPjz/Km8iCOZWVNbQcXcWUds6/p2ZP8jQ7dxekYknMQxrRAdtG9ZGl6V4W/5/0XqYj6pwJ00ZdMwG2G8T+2CNUIQ7f0bfU4ej8IBXuc51+B3ggoD1E/4/vYGMOEDTNKYye8HeZ1brDu/hgYrmboAfc5aOkwUYBnsNuLBmMNVFk0UsjIqE1fD1YQ0TK12Y/H12HQWi7If/IHxGyqb+6RNlitbNbANZmdMEknJVJ3Q6Hl/zeC+za4vYCRyJ168Da/pEf0CsnHKbchKGH7Urro6onEbaTn7IY6mt4g6jAdb36oI3dsB9DM6lqQS1XxceZon97mKGVIIFis2PGWq22+TQMLGXV2BGxM5M8QmlWy0p47yOwEkPlcA/tIGfnkglr8zmrrW9Q0lhoF+jJfgHgn3cJy0DdLz/J8PdCX43gvl1KQxOpyD9INm3WdGJ1baJ9isDxGsSSSYKlz6mT1/qXzhwm6GUCy+gulUH20URvcKdPFnLZNLpxc7HyQV5R+Djk7X4wnJjVmy2wxy48N0/rbp1+KJaJMic4+PQFfR1H1+9SRnYInmVpeWkEFPL0HeRqcC7unb66gzhDg+VuSJrBZ1x7KPu0JwRCXT6HsfPNMkwxXy1vNC0uA== X-MS-Exchange-CrossTenant-Network-Message-Id: f3b8cbff-0be3-4be1-409f-08d8409a8975 X-MS-Exchange-CrossTenant-AuthSource: SN1PR12MB2560.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2020 21:39:34.9738 (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-CrossTenant-UserPrincipalName: /SSG1P7OPrmQOCqNa4256s3VuLTRbj+en+4uKuhOSsHnsH2J7TOCxPlBUsEXI5mm X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4528 X-MS-Exchange-Transport-Forked: True X-OriginatorOrg: amd.com Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=40.107.237.84; envelope-from=Babu.Moger@amd.com; helo=NAM12-BN8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/15 11:11:33 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FORGED_SPF_HELO=1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-devel@nongnu.org, mst@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @amdcloud.onmicrosoft.com) Update the EPYC topology to use socket/dies/core/thread model. The EPYC model does not use the smp dies to build the topology. Instead, it uses numa nodes to build the topology. Internally both are similar concept which divides the cores on L3 boundary. Combining both into one terminology makes it simple to program. Add a new check to error out when smp dies are not provided when EPYC model is numa configured. Next task is to remove node_id, nr_nodes and nodes_per_pkg from EPYC topology which will be done in next patch. Signed-off-by: Babu Moger --- hw/i386/x86.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 67bee1bcb8..e90c42d2fc 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -138,6 +138,14 @@ void x86_cpus_init(X86MachineState *x86ms, int default= _cpu_version) =20 /* Check for apicid encoding */ if (cpu_x86_use_epyc_apic_id_encoding(ms->cpu_type)) { + if ((ms->numa_state->num_nodes > 0) && + ms->numa_state->num_nodes !=3D (ms->smp.sockets * x86ms->smp_d= ies)) { + error_setg(&error_fatal, "Numa configuration here requires smp= " + "'dies' parameter. Configure the cpu topology prope= rly " + "with max_cpus =3D sockets * dies * cores * threads= . Dies" + " is equivalent to number of numa nodes in a socket= ."); + return; + } x86_set_epyc_topo_handlers(ms); } =20 From nobody Fri May 10 10:44:58 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=amd.com) ARC-Seal: i=2; a=rsa-sha256; t=1597504585; cv=pass; d=zohomail.com; s=zohoarc; b=BIVEGWfpomBaGGqf4MujffzRtB0u5GVpJkxVPfo+sZYomQJMc5/GpbX0Ijm+yP2yazlP/ZtwBdjebyXnJ8cyaFhfRN5K1qDikfez8W/Oqmz96WsBo3tBGRe/qfHFMjo2AaAXelJkE7X2BlmuLeESEiftIXm3w+M7TeqS+LWT+fk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597504585; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ybYEXSBoOxQUSvQPmPxghDJ8IANQct8GyKDeplE7/Uo=; b=Zzn8DcgRAeVHA3V9bMLB9qLGmFzBiZsjC0kQiR/e26eV0ATTkBblOsXwfvDneE4ifHMbLVdF4rYNs/vC2y4yDnQaEdxFLQ+rumIsxsK9uRUra2uldd881K5Sv+jjCCsQQ/mol4mHgMhT+tEu9w9l9zeBfM9uCKVDZRQPD6mCio8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=amd.com) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597504585350747.3234495917333; Sat, 15 Aug 2020 08:16:25 -0700 (PDT) Received: from localhost ([::1]:51094 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6xux-0008Fc-Tu for importer@patchew.org; Sat, 15 Aug 2020 11:16:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54602) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6xqM-0002LD-8N for qemu-devel@nongnu.org; Sat, 15 Aug 2020 11:11:38 -0400 Received: from mail-bn8nam12on2084.outbound.protection.outlook.com ([40.107.237.84]:40417 helo=NAM12-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6xqJ-0000QD-Ry for qemu-devel@nongnu.org; Sat, 15 Aug 2020 11:11:37 -0400 Received: from SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) by SA0PR12MB4528.namprd12.prod.outlook.com (2603:10b6:806:9e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.20; Fri, 14 Aug 2020 21:39:41 +0000 Received: from SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::691c:c75:7cc2:7f2c]) by SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::691c:c75:7cc2:7f2c%6]) with mapi id 15.20.3261.026; Fri, 14 Aug 2020 21:39:41 +0000 Received: from naples-babu.amd.com (165.204.78.2) by SN6PR2101CA0013.namprd21.prod.outlook.com (2603:10b6:805:106::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.2 via Frontend Transport; Fri, 14 Aug 2020 21:39:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kFdomoFQEuw/0yad/2kxZsAq/0tmKk8NS0QI5VZ/G2UDzjeqQKUzClU3V8g4x5v22sw6KQuepEiNDDWAXvMvedEbfKAXkkDzYdG/aYievTkhEVEojGhUgpszUoFjvEfjTem1SH9NYL4ub5R0LN4ZkluxISBCMf+HH39m2AeCq9YPpJ/KTZwXRhlIubfSVYqkmFaaAZ81Y/BQk96BOdl3I82PkMnwUKzZhmbAwR38vcdP50e/X/SC5QssvB6wpfOh0Wl1BuVDUftAyK0BdhGynWJqScs8AjV6x41E/4blYQ3ZSX9WJmYf/v3lDplA0UgOd5x9ZtP+j9K7e6/rmexUlA== 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-SenderADCheck; bh=ybYEXSBoOxQUSvQPmPxghDJ8IANQct8GyKDeplE7/Uo=; b=P68Rlrd9Nz7LCGJWeQk79PBL9b4fmKEruVAllMJDW3jX5li1KZ870P5B4IR5OIVxJDP312UmN8u5WJKLJRSSA7KCD6HPfeyhnaApwAvj82KAgVHIvmy/O6lvIbt/r5ZXOLxSxQTfIslNWRT1dXgFNGdBKw3/Kkt7WjWuFqosxlF9Alw53Iz8ahMojpaZg+0wfU1ZPZzo7273YhwZDJRfxkrNQQMu2IUD8QcVczRf6Pk6lak7wYLVTI/manGbeYQMLVuctraoIV3JbwJs/qKaAS28+Aw6LzDKOmtdugIohlH+mJ2/19tW5iTjhsqgkjpjxtnZ6KdcozazbG1amYM05g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ybYEXSBoOxQUSvQPmPxghDJ8IANQct8GyKDeplE7/Uo=; b=xKrYuengeVn/pN400RIKAseF+5bN3TF4fqbklJId7DGH+5kBhmJ2mkUelxYFT55eOqnp+qRrHN/fv8FfRW/ieS8xnAjzez7aRxSaj8hRONWN4yiUuRzi/L0I97XBMiisEW1rBWSK0Guw8E9ioysg4CGa3psPk83xzzxyblR4jds= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; Subject: [PATCH v4 3/3] hw/i386: Remove node_id, nr_nodes and nodes_per_pkg from topology From: Babu Moger To: pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, imammedo@redhat.com Date: Fri, 14 Aug 2020 16:39:40 -0500 Message-ID: <159744118012.39197.535122421806420639.stgit@naples-babu.amd.com> In-Reply-To: <159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com> References: <159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com> User-Agent: StGit/unknown-version Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SN6PR2101CA0013.namprd21.prod.outlook.com (2603:10b6:805:106::23) To SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Originating-IP: [165.204.78.2] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5fed0aba-7eff-4748-347a-08d8409a8d30 X-MS-TrafficTypeDiagnostic: SA0PR12MB4528: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1091; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7hLNqIHl106xAi9ofbf6uSyjrEs60Tp2doZI6M1BgsiLknimJV7exK6GZGAV0LkUnphJustpVnG5jD5T0Ar131rmM3aNm2Zuq1lGSQeGJjKHN3xls2P62QDpqwjYwjKsI56vfIzBlOH67xtW3z6nbC2459mQfpXZxdDywMTKbO0hryClPmnfrZ8WjE+ztWCOcjZ3zrqj9XRf6HoqA6xI8B18i7cprV1grb7Af5/m7+dO+B6XJWzfRs0kOAWmwf4R6XauPhN8o2KGhaBxAa0pm058mdQs4iZMOqN/VWBNGx7Bd9RBcloHubHYEpni9dId24g4ug4SzjWM8YFLJDGu864CLlXbxctmFH3hR16DoZZs8fIKT4MO1Do5sb/ZMbfhEIE1wOW68qPW8kGvnjxxjQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN1PR12MB2560.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(136003)(376002)(39860400002)(346002)(956004)(186003)(16526019)(26005)(316002)(478600001)(966005)(8936002)(8676002)(2906002)(86362001)(44832011)(4326008)(52116002)(7696005)(55016002)(83380400001)(5660300002)(66556008)(66476007)(103116003)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: iwjgrwZVOIyRN9qQlvmg45OJU3gyKWdtlXu/y7S9c+ckXSJnkYgIzmpa8tPIbz6O4SLGiqc8dQ4dJe1wM3cqDYFF3LsKAOODrejvXlMJbJiKmmiEuAcWDlepZAJc0Dq11IB8WeH32pYKpTwgE0TagaybTiyWX/86fzCu1SQNvNhd/8rFRyhpNHtTYyTYujm5UBi4O1NPEhBFBPKTm/HlIzvqI+5atOq9N+GE/w+dwd7hLkD3SLRy1WLlFYtlvsp5tXh303ATXZxiapnFT8m4CBq7M92en5cENe1Y2Qp4DzVIChIqwg+VC3UTlzWBaF+r5F0GD716uHNTNT4gJCnHqfxx1SHvWBFWY/6CqbsV5MRqp5hMwQrqutE4zhCwcZTnQOX4bca+LCPl3YjsITNhzpXFCig58McOPfRIjmzQnapFhk1aY10uEwkel3+DUn/XteZzUaQUupD/Kl9XKXHZheMiZMFXL9BMNLAcbPvTNmvcDj2nREtzox5oWNF30eZB0whL0zambiBlPU8lagqNgm0m8B/HqMHsKGTv+7xsjv2pwpqAKDz/TmMqVKidrC1ucGUhcXSlhnNHpxlm5TbvZC8PeWhO4+NGeVnUmtv+pCj5XJ7Gt+4HkZYAsA0bzgr8B7QTB8gPl32xcHSsHEdcQw== X-MS-Exchange-CrossTenant-Network-Message-Id: 5fed0aba-7eff-4748-347a-08d8409a8d30 X-MS-Exchange-CrossTenant-AuthSource: SN1PR12MB2560.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2020 21:39:41.2512 (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-CrossTenant-UserPrincipalName: B1vJd9a1flUiaHdJB/7KikozXp24CpzUE/3nQYl2iO+N6eHdEEfT89VXJt1C1d2g X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4528 X-MS-Exchange-Transport-Forked: True X-OriginatorOrg: amd.com Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=40.107.237.84; envelope-from=Babu.Moger@amd.com; helo=NAM12-BN8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/15 11:11:33 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FORGED_SPF_HELO=1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-devel@nongnu.org, mst@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @amdcloud.onmicrosoft.com) Remove node_id, nr_nodes and nodes_per_pkg from topology. Use die_id, nr_dies and dies_per_pkg which is already available. Removes the confusion over two variables. With node_id removed in topology the uninitialized memory issue with -device and CPU hotplug will be fixed. Link: https://bugzilla.redhat.com/show_bug.cgi?id=3D1828750 Signed-off-by: Babu Moger --- hw/i386/pc.c | 1 - hw/i386/x86.c | 1 - include/hw/i386/topology.h | 40 +++++++++------------------------------- target/i386/cpu.c | 11 +++-------- target/i386/cpu.h | 1 - 5 files changed, 12 insertions(+), 42 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 47c5ca3e34..0ae5cb3af4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1498,7 +1498,6 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_d= ev, init_topo_info(&topo_info, x86ms); =20 env->nr_dies =3D x86ms->smp_dies; - env->nr_nodes =3D topo_info.nodes_per_pkg; env->pkg_offset =3D x86ms->apicid_pkg_offset(&topo_info); =20 /* diff --git a/hw/i386/x86.c b/hw/i386/x86.c index e90c42d2fc..4efa1f8b87 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -62,7 +62,6 @@ inline void init_topo_info(X86CPUTopoInfo *topo_info, { MachineState *ms =3D MACHINE(x86ms); =20 - topo_info->nodes_per_pkg =3D ms->numa_state->num_nodes / ms->smp.socke= ts; topo_info->dies_per_pkg =3D x86ms->smp_dies; topo_info->cores_per_die =3D ms->smp.cores; topo_info->threads_per_core =3D ms->smp.threads; diff --git a/include/hw/i386/topology.h b/include/hw/i386/topology.h index 07239f95f4..05ddde7ba0 100644 --- a/include/hw/i386/topology.h +++ b/include/hw/i386/topology.h @@ -47,14 +47,12 @@ typedef uint32_t apic_id_t; =20 typedef struct X86CPUTopoIDs { unsigned pkg_id; - unsigned node_id; unsigned die_id; unsigned core_id; unsigned smt_id; } X86CPUTopoIDs; =20 typedef struct X86CPUTopoInfo { - unsigned nodes_per_pkg; unsigned dies_per_pkg; unsigned cores_per_die; unsigned threads_per_core; @@ -89,11 +87,6 @@ static inline unsigned apicid_die_width(X86CPUTopoInfo *= topo_info) return apicid_bitwidth_for_count(topo_info->dies_per_pkg); } =20 -/* Bit width of the node_id field per socket */ -static inline unsigned apicid_node_width_epyc(X86CPUTopoInfo *topo_info) -{ - return apicid_bitwidth_for_count(MAX(topo_info->nodes_per_pkg, 1)); -} /* Bit offset of the Core_ID field */ static inline unsigned apicid_core_offset(X86CPUTopoInfo *topo_info) @@ -114,30 +107,23 @@ static inline unsigned apicid_pkg_offset(X86CPUTopoIn= fo *topo_info) return apicid_die_offset(topo_info) + apicid_die_width(topo_info); } =20 -#define NODE_ID_OFFSET 3 /* Minimum node_id offset if numa configured */ +#define EPYC_DIE_OFFSET 3 /* Minimum die_id offset if numa configured */ =20 /* - * Bit offset of the node_id field - * - * Make sure nodes_per_pkg > 0 if numa configured else zero. + * Bit offset of the die_id field */ -static inline unsigned apicid_node_offset_epyc(X86CPUTopoInfo *topo_info) +static inline unsigned apicid_die_offset_epyc(X86CPUTopoInfo *topo_info) { - unsigned offset =3D apicid_die_offset(topo_info) + - apicid_die_width(topo_info); + unsigned offset =3D apicid_core_offset(topo_info) + + apicid_core_width(topo_info); =20 - if (topo_info->nodes_per_pkg) { - return MAX(NODE_ID_OFFSET, offset); - } else { - return offset; - } + return MAX(EPYC_DIE_OFFSET, offset); } =20 /* Bit offset of the Pkg_ID (socket ID) field */ static inline unsigned apicid_pkg_offset_epyc(X86CPUTopoInfo *topo_info) { - return apicid_node_offset_epyc(topo_info) + - apicid_node_width_epyc(topo_info); + return apicid_die_offset_epyc(topo_info) + apicid_die_width(topo_info); } =20 /* @@ -150,8 +136,7 @@ x86_apicid_from_topo_ids_epyc(X86CPUTopoInfo *topo_info, const X86CPUTopoIDs *topo_ids) { return (topo_ids->pkg_id << apicid_pkg_offset_epyc(topo_info)) | - (topo_ids->node_id << apicid_node_offset_epyc(topo_info)) | - (topo_ids->die_id << apicid_die_offset(topo_info)) | + (topo_ids->die_id << apicid_die_offset_epyc(topo_info)) | (topo_ids->core_id << apicid_core_offset(topo_info)) | topo_ids->smt_id; } @@ -160,15 +145,11 @@ static inline void x86_topo_ids_from_idx_epyc(X86CPUT= opoInfo *topo_info, unsigned cpu_index, X86CPUTopoIDs *topo_ids) { - unsigned nr_nodes =3D MAX(topo_info->nodes_per_pkg, 1); unsigned nr_dies =3D topo_info->dies_per_pkg; unsigned nr_cores =3D topo_info->cores_per_die; unsigned nr_threads =3D topo_info->threads_per_core; - unsigned cores_per_node =3D DIV_ROUND_UP((nr_dies * nr_cores * nr_thre= ads), - nr_nodes); =20 topo_ids->pkg_id =3D cpu_index / (nr_dies * nr_cores * nr_threads); - topo_ids->node_id =3D (cpu_index / cores_per_node) % nr_nodes; topo_ids->die_id =3D cpu_index / (nr_cores * nr_threads) % nr_dies; topo_ids->core_id =3D cpu_index / nr_threads % nr_cores; topo_ids->smt_id =3D cpu_index % nr_threads; @@ -188,11 +169,8 @@ static inline void x86_topo_ids_from_apicid_epyc(apic_= id_t apicid, (apicid >> apicid_core_offset(topo_info)) & ~(0xFFFFFFFFUL << apicid_core_width(topo_info)); topo_ids->die_id =3D - (apicid >> apicid_die_offset(topo_info)) & + (apicid >> apicid_die_offset_epyc(topo_info)) & ~(0xFFFFFFFFUL << apicid_die_width(topo_info)); - topo_ids->node_id =3D - (apicid >> apicid_node_offset_epyc(topo_info)) & - ~(0xFFFFFFFFUL << apicid_node_width_epyc(topo_info)); topo_ids->pkg_id =3D apicid >> apicid_pkg_offset_epyc(topo_info); } =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index c892432cae..ba0a24f6b8 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -345,7 +345,6 @@ static void encode_cache_cpuid8000001d(CPUCacheInfo *ca= che, uint32_t *ecx, uint32_t *edx) { uint32_t l3_cores; - unsigned nodes =3D MAX(topo_info->nodes_per_pkg, 1); =20 assert(cache->size =3D=3D cache->line_size * cache->associativity * cache->partitions * cache->sets); @@ -355,10 +354,9 @@ static void encode_cache_cpuid8000001d(CPUCacheInfo *c= ache, =20 /* L3 is shared among multiple cores */ if (cache->level =3D=3D 3) { - l3_cores =3D DIV_ROUND_UP((topo_info->dies_per_pkg * - topo_info->cores_per_die * + l3_cores =3D DIV_ROUND_UP((topo_info->cores_per_die * topo_info->threads_per_core), - nodes); + topo_info->dies_per_pkg); *eax |=3D (l3_cores - 1) << 14; } else { *eax |=3D ((topo_info->threads_per_core - 1) << 14); @@ -387,7 +385,6 @@ static void encode_topo_cpuid8000001e(X86CPUTopoInfo *t= opo_info, X86CPU *cpu, uint32_t *ecx, uint32_t *edx) { X86CPUTopoIDs topo_ids =3D {0}; - unsigned long nodes =3D MAX(topo_info->nodes_per_pkg, 1); =20 x86_topo_ids_from_apicid_epyc(cpu->apic_id, topo_info, &topo_ids); =20 @@ -433,7 +430,7 @@ static void encode_topo_cpuid8000001e(X86CPUTopoInfo *t= opo_info, X86CPU *cpu, * NodeId is combination of node and socket_id which is already decoded * in apic_id. Just use it by shifting. */ - *ecx =3D ((nodes - 1) << 8) | cpu->node_id; + *ecx =3D ((topo_info->dies_per_pkg - 1) << 8) | cpu->node_id; *edx =3D 0; } =20 @@ -5484,7 +5481,6 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, = uint32_t count, uint32_t signature[3]; X86CPUTopoInfo topo_info; =20 - topo_info.nodes_per_pkg =3D env->nr_nodes; topo_info.dies_per_pkg =3D env->nr_dies; topo_info.cores_per_die =3D cs->nr_cores; topo_info.threads_per_core =3D cs->nr_threads; @@ -6944,7 +6940,6 @@ static void x86_cpu_initfn(Object *obj) FeatureWord w; =20 env->nr_dies =3D 1; - env->nr_nodes =3D 1; cpu_set_cpustate_pointers(cpu); =20 object_property_add(obj, "family", "int", diff --git a/target/i386/cpu.h b/target/i386/cpu.h index e1a5c174dc..4c89bee8d1 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1629,7 +1629,6 @@ typedef struct CPUX86State { TPRAccess tpr_access_type; =20 unsigned nr_dies; - unsigned nr_nodes; unsigned pkg_offset; } CPUX86State; =20