From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1EF51C4320E for ; Wed, 28 Jul 2021 03:51:51 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D743A603E7 for ; Wed, 28 Jul 2021 03:51:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D743A603E7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:36798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m8abl-0007KC-UR for qemu-devel@archiver.kernel.org; Tue, 27 Jul 2021 23:51:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58620) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8aZB-0000W3-UD for qemu-devel@nongnu.org; Tue, 27 Jul 2021 23:49:09 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:2503) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8aZ6-0005W0-5I for qemu-devel@nongnu.org; Tue, 27 Jul 2021 23:49:09 -0400 Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4GZKHg1C4zzYdFN; Wed, 28 Jul 2021 11:42:55 +0800 (CST) Received: from dggpemm500023.china.huawei.com (7.185.36.83) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 28 Jul 2021 11:48:50 +0800 Received: from DESKTOP-TMVL5KK.china.huawei.com (10.174.187.128) by dggpemm500023.china.huawei.com (7.185.36.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 28 Jul 2021 11:48:49 +0800 From: Yanan Wang To: Subject: [PATCH for-6.2 v3 00/11] machine: smp parsing fixes and improvement Date: Wed, 28 Jul 2021 11:48:37 +0800 Message-ID: <20210728034848.75228-1-wangyanan55@huawei.com> X-Mailer: git-send-email 2.8.4.windows.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.174.187.128] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm500023.china.huawei.com (7.185.36.83) X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.187; envelope-from=wangyanan55@huawei.com; helo=szxga01-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Andrew Jones , Cornelia Huck , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Pierre Morel , "Michael S . Tsirkin" , Pankaj Gupta , Richard Henderson , Greg Kurz , Halil Pasic , wanghaibin.wang@huawei.com, Thomas Huth , Paolo Bonzini , Yanan Wang , David Gibson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Hi, This is new version of the series [1] that I have posted to introduce some fixes and improvement for SMP parsing. [1] https://lore.kernel.org/qemu-devel/20210719032043.25416-1-wangyanan55@huawei.com/ Most of this series is about the SMP parsers: maxcpus is now uniformly used to calculate the omitted topology members, calculation of omitted maxcpus/cpus is improved, the error reporting is improved. It's also suggested that we should start to prefer cores over sockets over threads on the newer machine types, which will make the computed virtual topology more reflective of the real hardware. In order to reduce code duplication and ease the code maintenance, smp_parse in now converted into a parser generic enough for all arches, so that the PC specific one can be removed. It's also convenient to introduce more topology members to the generic parser in the future. --- Changelogs: v2->v3: - apply the calculation improvement to smp_parse and pc_smp_parse separately and then convert the finally improved parsers into a generic one, so that patches can be reviewed separately. - to ease review, drop the unit test part for a while until we have a good enough generic parser. - send the patch "machine: Disallow specifying topology parameters as zero" for 6.1 separately. - v2: https://lore.kernel.org/qemu-devel/20210719032043.25416-1-wangyanan55@huawei.com/ v1->v2: - disallow "anything=0" in the smp configuration (Andrew) - make function smp_parse() a generic helper for all arches - improve the error reporting in the parser - start to prefer cores over sockets since 6.2 (Daniel) - add a unit test for the smp parsing (Daniel) - v1: https://lists.gnu.org/archive/html/qemu-devel/2021-07/msg00259.html --- Yanan Wang (11): machine: Minor refactor/cleanup for the smp parsers machine: Uniformly use maxcpus to calculate the omitted parameters machine: Set the value of cpus to match maxcpus if it's omitted machine: Improve the error reporting of smp parsing hw: Add compat machines for 6.2 machine: Prefer cores over sockets in smp parsing since 6.2 machine: Use ms instead of global current_machine in sanity-check machine: Tweak the order of topology members in struct CpuTopology machine: Make smp_parse generic enough for all arches machine: Remove smp_parse callback from MachineClass machine: Move smp_prefer_sockets to struct SMPCompatProps hw/arm/virt.c | 10 ++- hw/core/machine.c | 168 ++++++++++++++++++++++++++++--------- hw/i386/pc.c | 66 +-------------- hw/i386/pc_piix.c | 15 +++- hw/i386/pc_q35.c | 14 +++- hw/ppc/spapr.c | 16 +++- hw/s390x/s390-virtio-ccw.c | 15 +++- include/hw/boards.h | 26 ++++-- include/hw/i386/pc.h | 3 + qemu-options.hx | 14 +++- 10 files changed, 228 insertions(+), 119 deletions(-) -- 2.19.1