From nobody Wed Oct 23 00:26:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.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=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1727350687; cv=none; d=zohomail.com; s=zohoarc; b=n3AdjsHj/WY/OOL8OOWw575qtpbe3fPPgggUy//MvjqrEP4lbZThGOEw1wiMdOosiZnSW7rgZNnyK7wKR3keOWq3yqTpR5ogyK++3/1qZawX35v8Ohgv9Ut4U33YiisAd8JrHdxI6po3qBmEKUGYdbR3X5zQ1CWGZ1rNVzHEgrM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1727350687; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=tBPEkkiSvFdjRXgYkX93wXl6fiqjH3xTGUrMKETK5sM=; b=j3M2WtiEZK1DEnI6k0c/d5CQhm//vAPT4YqJUMIFbcZE71CjUrXpBDZCHU8nv4IH46od1ZlsD2UXwioDTZntn2ZZC41xirN1JJ+2D/uutwQV6V2/87tOqd6Pf3ppkQYiaa2rzz2LBmSWzXnxxNdCNklr0T+QM42buneUaIdLPaY= ARC-Authentication-Results: i=1; mx.zohomail.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 1727350687829379.0342267635765; Thu, 26 Sep 2024 04:38:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1stmkq-0000OB-61; Thu, 26 Sep 2024 07:33:52 -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 1stmkn-0000Eu-Sr for qemu-devel@nongnu.org; Thu, 26 Sep 2024 07:33:49 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1stmkk-00048P-0g for qemu-devel@nongnu.org; Thu, 26 Sep 2024 07:33:49 -0400 Received: from mail.maildlp.com (unknown [172.19.163.174]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4XDrzV2YF8zcbh2; Thu, 26 Sep 2024 19:32:06 +0800 (CST) Received: from kwepemd200014.china.huawei.com (unknown [7.221.188.8]) by mail.maildlp.com (Postfix) with ESMTPS id EFC85140390; Thu, 26 Sep 2024 19:33:32 +0800 (CST) Received: from localhost.localdomain (10.50.165.33) by kwepemd200014.china.huawei.com (7.221.188.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.34; Thu, 26 Sep 2024 19:33:32 +0800 To: , , , , , , CC: , , , , Subject: [PATCH 3/5] hw/acpi/aml-build: Build a root node in the PPTT table Date: Thu, 26 Sep 2024 19:33:21 +0800 Message-ID: <20240926113323.55991-4-yangyicong@huawei.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20240926113323.55991-1-yangyicong@huawei.com> References: <20240926113323.55991-1-yangyicong@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.50.165.33] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemd200014.china.huawei.com (7.221.188.8) 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: pass client-ip=45.249.212.187; envelope-from=yangyicong@huawei.com; helo=szxga01-in.huawei.com 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Reply-to: Yicong Yang From: Yicong Yang via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1727350714407116600 Content-Type: text/plain; charset="utf-8" From: Yicong Yang Currently we build the PPTT starting from the socket node and each socket will be a separate tree. For a multi-socket system it'll be hard for the OS to know the whole system is homogeneous or not (actually we're in the current implementation) since no parent node to telling the identical implementation informentation. Add a root node for indicating this. Signed-off-by: Yicong Yang --- hw/acpi/aml-build.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 53a06d8c1e..e2717ee0e9 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -2059,12 +2059,25 @@ void build_pptt(GArray *table_data, BIOSLinker *lin= ker, MachineState *ms, int64_t socket_id =3D -1, cluster_id =3D -1, core_id =3D -1; uint32_t socket_offset =3D 0, cluster_offset =3D 0, core_offset =3D 0; uint32_t pptt_start =3D table_data->len; + uint32_t root_offset; int n; AcpiTable table =3D { .sig =3D "PPTT", .rev =3D 2, .oem_id =3D oem_id, .oem_table_id =3D oem_table_id= }; =20 acpi_table_begin(&table, table_data); =20 + /* + * Build a root node for all the processor nodes. Otherwise when + * building a multi-socket system each socket tree are separated + * and will be hard for the OS like Linux to know whether the + * system is homogeneous. + */ + root_offset =3D table_data->len - pptt_start; + build_processor_hierarchy_node(table_data, + (1 << 0) | /* Physical package */ + (1 << 4), /* Identical Implementation */ + 0, 0, NULL, 0); + /* * This works with the assumption that cpus[n].props.*_id has been * sorted from top to down levels in mc->possible_cpu_arch_ids(). @@ -2081,7 +2094,7 @@ void build_pptt(GArray *table_data, BIOSLinker *linke= r, MachineState *ms, build_processor_hierarchy_node(table_data, (1 << 0) | /* Physical package */ (1 << 4), /* Identical Implementation */ - 0, socket_id, NULL, 0); + root_offset, socket_id, NULL, 0); } =20 if (mc->smp_props.clusters_supported && mc->smp_props.has_clusters= ) { --=20 2.24.0