From nobody Tue Feb 10 07:44:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass(p=none dis=none) header.from=linux.intel.com ARC-Seal: i=1; a=rsa-sha256; t=1687257077; cv=none; d=zohomail.com; s=zohoarc; b=ORU17f/uD6taSg//OF39jq8RCVEOYE0Q8izv/kV9vrpEyKKHK65A5JIupCPAgm+qEXf89m0XQKft4OsVeKYVlg08whQ0eF2ZIEkwpObDn5sOT43EquWVa1RQlUv7y/pH4v0O20vWW6Nq2/T4jnMIst+sTqI6epBmhUY8S3f8KuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687257077; h=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=8IT9ZKIyVvj8x8CsV1xDtRFMbSabuG3exi+nPL5pWAA=; b=VLLNmzZ5oP5MNLk6itLeYLxjEFy+F2DDghVQMGXTxOimIPu22ZBM+o3Y4TX48MFB+7o++JJNEghWlfJcEv2Tk2/20C4BKnqrvFDM5BP00v16j3dNoEs0Da+smAE3oTNNGCemsU7XLNcrpYqVR2clC8qFm1mL/a3zLBs447D1LTk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687257077053365.9961610422456; Tue, 20 Jun 2023 03:31:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBYd2-0005y0-U5; Tue, 20 Jun 2023 06:30:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYd1-0005xW-DT for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:27 -0400 Received: from mga06b.intel.com ([134.134.136.31] helo=mga06.intel.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYcz-00025J-BX for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:27 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jun 2023 03:30:23 -0700 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.28]) by orsmga002.jf.intel.com with ESMTP; 20 Jun 2023 03:30:20 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687257025; x=1718793025; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XtGF3rDPdMt7poim1y2TNhlQXEggOR07qVtZUaWbAbg=; b=AowuhHZrrNMi5wG5ENsF3kYR0l8+nYkdb6MkP83XsqM1yUoUtuDcK33l qWO7kGxP/EL2ffDMJF6lEs3Jb8G42u4l+Wi1tU3PC6J5fLNFQTumXOC+R ZJsc4+fj4QiqdW99wcaiZaubCSwnGJp7HRZBeVlcn8LKNSUywiVDrz+66 Y717uX2Po47uMjiZUyiCR+13ymo6hwb5U4/z2IUa0c3MfSm2DAYmunCD+ gvd1V7HqIJxnD+CjjjK4j9/MmVePapI0YWiH8TbrqYUvEmrQJx8GMMi3d KFvZFGD3Et3GkICxenT9G/C3LHCQLYW5u5E584z70kSc3+WRnA2SGnQUM g==; X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="423488456" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="423488456" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="714002236" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="714002236" From: Zhao Liu To: "Michael S . Tsirkin" , Igor Mammedov , Ani Sinha , Eduardo Habkost , Yanan Wang Cc: Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Zhenyu Wang , Zhao Liu Subject: [PATCH v3 1/4] machine: Add helpers to get cores/threads per socket Date: Tue, 20 Jun 2023 18:39:55 +0800 Message-Id: <20230620103958.3907565-2-zhao1.liu@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> References: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=134.134.136.31; envelope-from=zhao1.liu@linux.intel.com; helo=mga06.intel.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1687257077535100001 Content-Type: text/plain; charset="utf-8" From: Zhao Liu The number of cores/threads per socket are needed for smbios, and are also useful for other modules. Provide the helpers to wrap the calculation of cores/threads per socket so that we can avoid calculation errors caused by other modules miss topology changes. Suggested-by: Igor Mammedov Signed-off-by: Zhao Liu --- v3: * The new patch to wrap the calculation of cores/threads per socket. --- include/hw/boards.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/hw/boards.h b/include/hw/boards.h index a385010909d5..40ee22fd93e3 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -384,6 +384,18 @@ struct MachineState { } \ type_init(machine_initfn##_register_types) =20 +static inline +unsigned int machine_topo_get_cores_per_socket(const MachineState *ms) +{ + return ms->smp.cores * ms->smp.clusters * ms->smp.dies; +} + +static inline +unsigned int machine_topo_get_threads_per_socket(const MachineState *ms) +{ + return ms->smp.threads * machine_topo_get_cores_per_socket(ms); +} + extern GlobalProperty hw_compat_8_0[]; extern const size_t hw_compat_8_0_len; =20 --=20 2.34.1 From nobody Tue Feb 10 07:44:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass(p=none dis=none) header.from=linux.intel.com ARC-Seal: i=1; a=rsa-sha256; t=1687257094; cv=none; d=zohomail.com; s=zohoarc; b=G/O+wg/T490yCbDcjK94K57LusZwPU16+3zaH6iTeijbD9xqR6lPyTxK63lVdu6fnKPlhHhGkYYG91270wFYLTQWT9vNx1ruNG4lt7CjrcUvbbpFTfu+Yy990U+cU1qIimTlLFasNqz0DXlhT8mL6VUAwnE6cS62E6vBFKn1rhg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687257094; h=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=UeWm/WmikNdzhNEV+p+u8mzcj+/ENctVJ6oW0VFtmbU=; b=aO6G8+rvvpHICgEYgeN/Z9KYUbuOGUuF9IDCRLpb+91GUPZyclgEniCCoJPSOUPJWw4/QIO2emIEkVB26b+cDsGWGQXs4rGHQHNkUXHWLTMUdnaMFj1rsFuji6wSXCGPF1PF9H2v+wskOWvEA0vNLLfGwcEHUICdBXY6ZhZFLGU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687257094726567.5427968563682; Tue, 20 Jun 2023 03:31:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBYd4-0005zV-Ig; Tue, 20 Jun 2023 06:30:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYd2-0005y1-Px for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:28 -0400 Received: from mga06b.intel.com ([134.134.136.31] helo=mga06.intel.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYd1-00026h-Ac for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:28 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jun 2023 03:30:26 -0700 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.28]) by orsmga002.jf.intel.com with ESMTP; 20 Jun 2023 03:30:23 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687257027; x=1718793027; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qJ6Q/bXIWmELYbiZjhKv3GbdmcK1dk0TdvM+vzulRys=; b=bXQnmG0OAjdQ+Cy3ibyJZhhN2vMO/LjeTa9Hxxz7zDId3tUgd1aDYmnc Q5W8qKxPOFKf70XQKVS/bYSYcF8Wsl6hAv4zDv1aWCtw1hM5SEgWgp8U2 F3ZXNdQVbiKvoVnGFOdlCVUFHG+8Y/TOvkYQLenWjHGyDPN+mkbjH3/vx Isa1Wxqo7nEbZzBgxCJSO6hdRsRwmLvgkrb3juPGeI83rmyCshOxYWiuV JyGHBSWVjMIZLj082So9FmVNxhWKW89ZyyRI4kj806luef9bSQYqKGBGR N086VgLLQ8BX3XrIMnKY5KJ0RU1By5eUlRQ1Qi+L4g651PaM2OnAe3IZO g==; X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="423488467" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="423488467" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="714002254" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="714002254" From: Zhao Liu To: "Michael S . Tsirkin" , Igor Mammedov , Ani Sinha , Eduardo Habkost , Yanan Wang Cc: Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Zhenyu Wang , Zhao Liu Subject: [PATCH v3 2/4] hw/smbios: Fix smbios_smp_sockets caculation Date: Tue, 20 Jun 2023 18:39:56 +0800 Message-Id: <20230620103958.3907565-3-zhao1.liu@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> References: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=134.134.136.31; envelope-from=zhao1.liu@linux.intel.com; helo=mga06.intel.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1687257096297100001 Content-Type: text/plain; charset="utf-8" From: Zhao Liu smp.sockets is the number of sockets which is configured by "-smp" ( otherwise, the default is 1). Trying to recalculate it here with another rules leads to errors, such as: 1. 003f230e37d7 ("machine: Tweak the order of topology members in struct CpuTopology") changes the meaning of smp.cores but doesn't fix original smp.cores uses. With the introduction of cluster, now smp.cores means the number of cores in one cluster. So smp.cores * smp.threads just means the threads in a cluster not in a socket. 2. On the other hand, we shouldn't use smp.cpus here because it indicates the initial number of online CPUs at the boot time, and is not mathematically related to smp.sockets. So stop reinventing the another wheel and use the topo values that has been calculated. Fixes: 003f230e37d7 ("machine: Tweak the order of topology members in struc= t CpuTopology") Signed-off-by: Zhao Liu --- v3: * Reorganized changlog. (Igor) v2: * None. --- hw/smbios/smbios.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index d2007e70fb05..d67415d44dd8 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -1088,8 +1088,7 @@ void smbios_get_tables(MachineState *ms, smbios_build_type_2_table(); smbios_build_type_3_table(); =20 - smbios_smp_sockets =3D DIV_ROUND_UP(ms->smp.cpus, - ms->smp.cores * ms->smp.threads); + smbios_smp_sockets =3D ms->smp.sockets; assert(smbios_smp_sockets >=3D 1); =20 for (i =3D 0; i < smbios_smp_sockets; i++) { --=20 2.34.1 From nobody Tue Feb 10 07:44:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass(p=none dis=none) header.from=linux.intel.com ARC-Seal: i=1; a=rsa-sha256; t=1687257072; cv=none; d=zohomail.com; s=zohoarc; b=k4SRYyGK6mUPfrh8+3JPzrZLP5BeLy5UvwCgFNq3ulmRpMKkTc4CRPaGXNZDBUjJ1XyHfqqbeuuEIkLhv3M0Pr/3VflDu1v4tHZFsKC4ojKJpAcHThBQmouLrKLzVRwJ4skD8It94Bj7iXUV6wljxkS07dHbXOgvrvxcEPOIT/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687257072; h=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=6Oblx4y/ysf7EiQbx3QF4IIYbI/La3Cc679V89AEdc8=; b=Od6IOjOen3ip7s8lcinc+Nrrfh6Oo3ZVcBdQP07vScRM5tsT8h4vdwkzc2vlIrqEwL4Kzy7LckL81IVviavNN2dpWHJ0thA46rKM57Pwi6MCFiyaCQf1bqJiim75QlwQQWQB5/kxsNWeJhA8fA0qQq0MlKZsFqM/FtbQIlQJOig= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1687257072346983.7463728542539; Tue, 20 Jun 2023 03:31:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBYd7-00060X-Gq; Tue, 20 Jun 2023 06:30:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYd5-000604-EY for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:31 -0400 Received: from mga06b.intel.com ([134.134.136.31] helo=mga06.intel.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYd3-00026h-Od for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:31 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jun 2023 03:30:28 -0700 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.28]) by orsmga002.jf.intel.com with ESMTP; 20 Jun 2023 03:30:26 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687257029; x=1718793029; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c5rRj0DF7YDyehIQ/cxq+CBMWxcnESap1Ld9Y4a+hLA=; b=GK74+NQf4TDSZ0rcrb1+acUbgmyG6ZZkAtfGrt9+FlRSO7VjO3Xum7a7 OiY9vVQqkzuvnBFDIe73YyvyPseN7NvFJd3QWfhxJ38G4usbR+t1kTr+f SoCLvWtkvwrBi6Q5lWPc1mUbKaJAdG84RR7+lKz2il/lvZJ9ZxJHXwcjy X/W5wwQX+/FMhPiW+zUVAQIs0ItkYJkeZ/qIA9DXku0M6UKo23trwuY4N u0I5w2yQux8BoTVMtCr7xZeZbNeBxd1vjgqpXQFI7ErjJH1Rldm20VRav RzIjX34Od61081yE4Sy3wXJMIKjVm8wrpCrQnLlBlIiR/85HGuZWmJEWR Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="423488480" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="423488480" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="714002261" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="714002261" From: Zhao Liu To: "Michael S . Tsirkin" , Igor Mammedov , Ani Sinha , Eduardo Habkost , Yanan Wang Cc: Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Zhenyu Wang , Zhao Liu Subject: [PATCH v3 3/4] hw/smbios: Fix thread count in type4 Date: Tue, 20 Jun 2023 18:39:57 +0800 Message-Id: <20230620103958.3907565-4-zhao1.liu@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> References: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=134.134.136.31; envelope-from=zhao1.liu@linux.intel.com; helo=mga06.intel.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1687257074179100001 Content-Type: text/plain; charset="utf-8" From: Zhao Liu From SMBIOS 3.0 specification, thread count field means: Thread Count is the total number of threads detected by the BIOS for this processor socket. It is a processor-wide count, not a thread-per-core count. [1] So here we should use threads per socket other than threads per core. [1] SMBIOS 3.0.0, section 7.5.8, Processor Information - Thread Count Fixes: c97294ec1b9e ("SMBIOS: Build aggregate smbios tables and entry point= ") Signed-off-by: Zhao Liu --- v3: * Use the wrapped hepler to get threads per socket. v2: * Rename cpus_per_socket to threads_per_socket. * Add the comment about smp.max_cpus. Thread count and core count will be calculated in 2 ways and will add a sanity check to ensure we don't miss any topology level. --- hw/smbios/smbios.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index d67415d44dd8..3aae9328c014 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -713,6 +713,7 @@ static void smbios_build_type_4_table(MachineState *ms,= unsigned instance) { char sock_str[128]; size_t tbl_len =3D SMBIOS_TYPE_4_LEN_V28; + unsigned threads_per_socket; =20 if (smbios_ep_type =3D=3D SMBIOS_ENTRY_POINT_TYPE_64) { tbl_len =3D SMBIOS_TYPE_4_LEN_V30; @@ -747,17 +748,19 @@ static void smbios_build_type_4_table(MachineState *m= s, unsigned instance) SMBIOS_TABLE_SET_STR(4, asset_tag_number_str, type4.asset); SMBIOS_TABLE_SET_STR(4, part_number_str, type4.part); =20 + threads_per_socket =3D machine_topo_get_threads_per_socket(ms); + t->core_count =3D (ms->smp.cores > 255) ? 0xFF : ms->smp.cores; t->core_enabled =3D t->core_count; =20 - t->thread_count =3D (ms->smp.threads > 255) ? 0xFF : ms->smp.threads; + t->thread_count =3D (threads_per_socket > 255) ? 0xFF : threads_per_so= cket; =20 t->processor_characteristics =3D cpu_to_le16(0x02); /* Unknown */ t->processor_family2 =3D cpu_to_le16(0x01); /* Other */ =20 if (tbl_len =3D=3D SMBIOS_TYPE_4_LEN_V30) { t->core_count2 =3D t->core_enabled2 =3D cpu_to_le16(ms->smp.cores); - t->thread_count2 =3D cpu_to_le16(ms->smp.threads); + t->thread_count2 =3D cpu_to_le16(threads_per_socket); } =20 SMBIOS_BUILD_TABLE_POST; --=20 2.34.1 From nobody Tue Feb 10 07:44:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass(p=none dis=none) header.from=linux.intel.com ARC-Seal: i=1; a=rsa-sha256; t=1687257107; cv=none; d=zohomail.com; s=zohoarc; b=gOp0uBLbbh+/U24d0pnO/LMxasI6HQPyhPebXvfa0Yb11Thc8Pzr0watFrj4PVO70fTagj2hAHTDsOamE/P9Mb5ZlFei8ahY7LN/UhkeD444DzOJvGfTgmDwaWjrYS18CkDYvUcRUQoaCSppfhOTTzW28mpsVdg6wUAdTId7yNE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687257107; h=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=lBt5qHvRd+/tr5EdOUruTFeKBii3ko3/XXiThNPmt6Y=; b=GQKDLmELrwkqep4wyjD+dJVKTc6XaBQRzsMUnkJHIkYDbuAOhAy4RZEXIWVmWDan1iiDmNJXSH6H1KYLCxw0SHeFnFGIzJLyQUqNEIP8F0hRT/IvS2XhkmFfGz+Zf0XHIjn1DIL7Na2hWQluySLBpXvC8LJo5tCaRdFpu4sIPsE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 168725710784656.90144900735379; Tue, 20 Jun 2023 03:31:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBYdD-00061e-1e; Tue, 20 Jun 2023 06:30:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYdA-000610-Ot for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:37 -0400 Received: from mga06b.intel.com ([134.134.136.31] helo=mga06.intel.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qBYd6-00026h-KZ for qemu-devel@nongnu.org; Tue, 20 Jun 2023 06:30:34 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jun 2023 03:30:31 -0700 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.28]) by orsmga002.jf.intel.com with ESMTP; 20 Jun 2023 03:30:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687257032; x=1718793032; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=g0xkDP4DSu/1LV8YnYWekriD9z+4GqXRLryqeqpPXFE=; b=YS+Zj5yz2EhRsZMrvXVyOtMzgSQJiaAIKBWXBGHQihKgKEKkuXVbozS8 UNaXhDNVq79Od64FrEnouZGpQ061oZ414N8Wx0RpmGvovDF+EBxzfPkeo 2ESnIXpwAJccEdYqRyaCb/iFBgFjlVDHKGSqYb5kXf24wSFDh8hRMS8/W hxMZ9lmlrHdYlapUUuk0n+L7oam9LdwFD2R2FQZq4oK+zwfxgPxZr8S5k +nmfKvGQz55G+u9lNc9ywq9giDqTK5DNyDjeDqopKuU8METxQtPj3hukh U8mwhOZJKOZLvv9TU9xdO78IsQ6m//kCCP4kabjPY+OH5SoM7vKtPHoHV w==; X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="423488491" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="423488491" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="714002278" X-IronPort-AV: E=Sophos;i="6.00,256,1681196400"; d="scan'208";a="714002278" From: Zhao Liu To: "Michael S . Tsirkin" , Igor Mammedov , Ani Sinha , Eduardo Habkost , Yanan Wang Cc: Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Zhenyu Wang , Zhao Liu Subject: [PATCH v3 4/4] hw/smbios: Fix core count in type4 Date: Tue, 20 Jun 2023 18:39:58 +0800 Message-Id: <20230620103958.3907565-5-zhao1.liu@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> References: <20230620103958.3907565-1-zhao1.liu@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=134.134.136.31; envelope-from=zhao1.liu@linux.intel.com; helo=mga06.intel.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1687257109333100003 Content-Type: text/plain; charset="utf-8" From: Zhao Liu From SMBIOS 3.0 specification, core count field means: Core Count is the number of cores detected by the BIOS for this processor socket. [1] Before 003f230e37d7 ("machine: Tweak the order of topology members in struct CpuTopology"), MachineState.smp.cores means "the number of cores in one package", and it's correct to use smp.cores for core count. But 003f230e37d7 changes the smp.cores' meaning to "the number of cores in one die" and doesn't change the original smp.cores' use in smbios as well, which makes core count in type4 go wrong. Fix this issue with the correct "cores per socket" caculation. [1] SMBIOS 3.0.0, section 7.5.6, Processor Information - Core Count Fixes: 003f230e37d7 ("machine: Tweak the order of topology members in struc= t CpuTopology") Signed-off-by: Zhao Liu --- v3: * Use the wrapped helper to get cores per socket. v2: * Calculate cores_per_socket in a different way from threads_per_socket. * Add the sanity check to ensure consistency of results between these 2 ways. This can help not miss any future change of cpu topology. --- hw/smbios/smbios.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index 3aae9328c014..10cd22f610ef 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -714,6 +714,7 @@ static void smbios_build_type_4_table(MachineState *ms,= unsigned instance) char sock_str[128]; size_t tbl_len =3D SMBIOS_TYPE_4_LEN_V28; unsigned threads_per_socket; + unsigned cores_per_socket; =20 if (smbios_ep_type =3D=3D SMBIOS_ENTRY_POINT_TYPE_64) { tbl_len =3D SMBIOS_TYPE_4_LEN_V30; @@ -749,8 +750,9 @@ static void smbios_build_type_4_table(MachineState *ms,= unsigned instance) SMBIOS_TABLE_SET_STR(4, part_number_str, type4.part); =20 threads_per_socket =3D machine_topo_get_threads_per_socket(ms); + cores_per_socket =3D machine_topo_get_cores_per_socket(ms); =20 - t->core_count =3D (ms->smp.cores > 255) ? 0xFF : ms->smp.cores; + t->core_count =3D (cores_per_socket > 255) ? 0xFF : cores_per_socket; t->core_enabled =3D t->core_count; =20 t->thread_count =3D (threads_per_socket > 255) ? 0xFF : threads_per_so= cket; @@ -759,7 +761,7 @@ static void smbios_build_type_4_table(MachineState *ms,= unsigned instance) t->processor_family2 =3D cpu_to_le16(0x01); /* Other */ =20 if (tbl_len =3D=3D SMBIOS_TYPE_4_LEN_V30) { - t->core_count2 =3D t->core_enabled2 =3D cpu_to_le16(ms->smp.cores); + t->core_count2 =3D t->core_enabled2 =3D cpu_to_le16(cores_per_sock= et); t->thread_count2 =3D cpu_to_le16(threads_per_socket); } =20 --=20 2.34.1