From patchwork Fri Feb 3 13:50:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Morse X-Patchwork-Id: 52493 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp849464wrn; Fri, 3 Feb 2023 05:54:13 -0800 (PST) X-Google-Smtp-Source: AK7set/tbbuFQ66XWtLIgd6XR+EfTHbo6aWg2QnxVTb842merPo51kWoBngZ/k5eGt/CaOo7ogAz X-Received: by 2002:a05:6402:1c87:b0:499:376e:6b35 with SMTP id cy7-20020a0564021c8700b00499376e6b35mr8342432edb.25.1675432453546; Fri, 03 Feb 2023 05:54:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675432453; cv=none; d=google.com; s=arc-20160816; b=COEZd23C3tnX3NKWy+J8JGO0rwjDuFt2q0zsuoN9zALDDUt6QCuUFK48V8qljCt/Wg nWke+sa7Yv+ojhpVfgy91rtkOnEda/wFll6Md92ONdb3/o5g+vTLX9zxR0GyoJKUDEks XIwPqeiqe1AoiwpOS9xLBKrMjtV7fvpaf92s3lRnYvEUuZKi2jzGjGIWllsg+1nafZmN bum9HH27nO2h625OzEPBFt8M2ztyTF3MLZhJxrrLPMrliwRd505+qtWpWjnChJEDKDoA DEjOdeR54PUzzrXIBGGR4hHU3YHaVAK773CqXthLucIpWGm+nG4VsXmPTH6VJNbia2YU 1fTw== ARC-Message-Signature: i=1; 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; bh=NFZHdB4bP1UPqN66nKI6VtzVu+uUegsqXzcIqx/iCdc=; b=YlEsrtE7TyFVMif45+PQtU8KUGgBMlbhoTmuzhKX1PJQlFYghEYTPcz6guVUcFRfDU o5OI9ExJr2J0eQqwFeSVEqxfPdh7HyEB+OXzEi67gPhYbE8CeRP9RWh4tQjQiofQuBAE uxxV1HGO7lvHC1MC30XZV2b5p9CMolqLVUdjZCpgQhQOYGwu9w9p/iX7Xap0aAh7XM9q mWBlGOvcypcUVGKy5AucSvQn6iupa8dB4uTPi2UC+yqgtCHSim/DKZ+zCkBgvALSCOTh b7pzoHYTJ68YTn7utB9AuBxXjWzVg73Zp9IvMBoqOXBumCFkdzIhdrjNY6eTIRMOs1Wv F0WQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ec50-20020a0564020d7200b004a224f51496si2561081edb.608.2023.02.03.05.53.49; Fri, 03 Feb 2023 05:54:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233180AbjBCNwg (ORCPT + 99 others); Fri, 3 Feb 2023 08:52:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233005AbjBCNwT (ORCPT ); Fri, 3 Feb 2023 08:52:19 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 642899B6D7; Fri, 3 Feb 2023 05:52:05 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 575A815A1; Fri, 3 Feb 2023 05:52:47 -0800 (PST) Received: from eglon.cambridge.arm.com (eglon.cambridge.arm.com [10.1.196.177]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 885F23F71E; Fri, 3 Feb 2023 05:52:01 -0800 (PST) From: James Morse To: linux-pm@vger.kernel.org, loongarch@lists.linux.dev, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org Cc: Marc Zyngier , Thomas Gleixner , Lorenzo Pieralisi , Mark Rutland , Sudeep Holla , Borislav Petkov , H Peter Anvin , Dave Hansen , Ingo Molnar , Will Deacon , Catalin Marinas , Huacai Chen , James Morse , Suzuki K Poulose , Oliver Upton , Len Brown , Rafael Wysocki , WANG Xuerui , Salil Mehta , Russell King , Jean-Philippe Brucker Subject: [RFC PATCH 03/32] drivers: base: Use present CPUs in GENERIC_CPU_DEVICES Date: Fri, 3 Feb 2023 13:50:14 +0000 Message-Id: <20230203135043.409192-4-james.morse@arm.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230203135043.409192-1-james.morse@arm.com> References: <20230203135043.409192-1-james.morse@arm.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756818260260869145?= X-GMAIL-MSGID: =?utf-8?q?1756818260260869145?= The four ACPI architectures only create sysfs entries using register_cpu() for present CPUs, whereas GENERIC_CPU_DEVICES does this for possible CPUs. Only two of the eight architectures that use GENERIC_CPU_DEVICES have a distinction between present and possible CPUs. To allow all four ACPI architectures to use GENERIC_CPU_DEVICES, change it to use for_each_present_cpu(). The following architectures use GENERIC_CPU_DEVICES but are not SMP, so possible == present: * m68k * microblaze * nios2 The following architectures use GENERIC_CPU_DEVICES and consider possible == present: * csky: setup_smp() * hexagon: compare smp_start_cpus() and smp_prepare_cpus() * parisc: smp_prepare_boot_cpu() marks the boot cpu as present, processor_probe() sets possible for all CPUs and present for all CPUs except the boot cpu. um appears to be a subarchitecture of x86. The remaining architecture using GENERIC_CPU_DEVICES is openrisc, where smp_init_cpus() makes all CPUs < NR_CPUS possible, whereas smp_prepare_cpus() only makes CPUs < setup_max_cpus present. After this change, openrisc systems that boot with max_cpus=1 would not see other CPUs present in sysfs. This should not be a problem as these CPUs can't be brought online as _cpu_up() checks cpu_present(). Signed-off-by: James Morse --- drivers/base/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index 4c98849577d4..cf6407c34ede 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -500,7 +500,7 @@ static void __init cpu_dev_register_generic(void) #ifdef CONFIG_GENERIC_CPU_DEVICES int i; - for_each_possible_cpu(i) { + for_each_present_cpu(i) { if (register_cpu(&per_cpu(cpu_devices, i), i)) panic("Failed to register CPU device"); }