Received: by 2002:ac0:e34a:0:0:0:0:0 with SMTP id g10csp511957imn; Tue, 26 Jul 2022 01:52:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1smDPEhrcUW8+2tUwhPKeTgcL/suyh/m3dxVLB6IqvglOGwLSfXcwAatzcaT3XexrzmS+G7 X-Received: by 2002:a05:6402:26cd:b0:43b:e3eb:241b with SMTP id x13-20020a05640226cd00b0043be3eb241bmr14131883edd.133.1658825575505; Tue, 26 Jul 2022 01:52:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658825575; cv=none; d=google.com; s=arc-20160816; b=HHT+ZVsX7r84tD8hkp9CDgg5yak2e6n2hC0AmQcPdpCb3C5nvNl6pWKxle52fJZGoL bQLbXuRwaV+8h2mqL8DYHiw18dAdlf0/EwBJLVaDJU8bvrO063ubfBI9YE9QJGLYH19Y I5tg0BdXUkiEF2ttXGJ5HZIUCDuVpQMP/gZUtsjIMe7JvwunqbtglXnB5dlq5KkVLmlR vuzq9PXxUeF7rrhwqtsoxfIEll94xfP8SO0Zx8r8vKwXD2xAXGlO6FwU0/Rz8yDyphD3 GAU3m7/NwJpRm7vY3KJmOcyZS0Pfz8zc7lz8Sq9riK1o2Ai+7i4/3ieyQ4BwgYYYn0wX LD9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=u20KlUAmw1kDfZJYPrtgWu0maTb4gYVBZ+IbRF1JvEE=; b=HR4Yj43bpz9kZ+l/3girYr3yE15PzyStEG6d6nwTkZUwZ+Ef7GghabtV0tgQ9nIOcF mBhNB8ahRHIJA6H63mcjYaC3XgrK9CGfGKroPk1V1mPT4HDAEmhjQI+gkLRLBTFhBtaK mBq6dRxdpriw7NX+UOKRvA3GL2Nz4iSu5GF4SGZwIClOnt/QoB8HTTPocuxiWYgg90WZ RzQeEJVfVrFXwGUAffkYifPDqYB9GtPegEXKoj6y+YneHMlZKet2JEMuK0vmV6BQ1NYH dSceK8JysjblBKr3j+1j+IVrzvMhtfZ98I6k2RywxXVJWFj+6/vdttHeF7qV9RHw30E4 3jkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@atishpatra.org header.s=google header.b=mt0xWT9A; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d18-20020a170906641200b00711efd98320si13817550ejm.241.2022.07.26.01.52.30; Tue, 26 Jul 2022 01:52:55 -0700 (PDT) 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; dkim=pass header.i=@atishpatra.org header.s=google header.b=mt0xWT9A; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238332AbiGZIZI (ORCPT + 99 others); Tue, 26 Jul 2022 04:25:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237863AbiGZIZF (ORCPT ); Tue, 26 Jul 2022 04:25:05 -0400 Received: from mail-yw1-x1130.google.com (mail-yw1-x1130.google.com [IPv6:2607:f8b0:4864:20::1130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E2CA2F654 for ; Tue, 26 Jul 2022 01:25:04 -0700 (PDT) Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-31e7055a61dso134402977b3.11 for ; Tue, 26 Jul 2022 01:25:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=u20KlUAmw1kDfZJYPrtgWu0maTb4gYVBZ+IbRF1JvEE=; b=mt0xWT9AaEmPRaO9nj0ITVI3ErFd3h7ew6KYgFqujT/YEWTewblOLAD5bpd/2wnkWS 1LmJNJZTi2ZpbO61MEVpsUVMuQ9y5AQEdQZjQCaMyXex7alUGtxRdsZh+TRaMKtbczBC r20L1q+eE/xyq4J+JMG4HGkpO2JWBoi+AkliI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=u20KlUAmw1kDfZJYPrtgWu0maTb4gYVBZ+IbRF1JvEE=; b=K46R1X7hfzHMV4N84N6bOLTQX5dFg4jcLIzI2RJUoWi1gOd76pwRJES8h3qr/7PcVz lh4xO3AQpHOOcLRZqPq36CT5VDEsQd8nFkUfRcq9cXZGsVq7pYUTeCIxI3FGj3TgdtDz Cd9fi2WkOQKlLjJ061WO8naHlp/mIhTRZr/VJKtoMgZqAhnGe2UXFXhD/P/a6ZQg+kCt NwInxAT3wBzmu1v7bQ9gKNjb5GTN3HNVXHG7OcREOrjqEkU0dChBc6ax+vahoqVfWWKV TQaPYFDB+6Dw/Mp4xSXF+sNeBOYB88aZfdo+rCoMbJVYW/bpqmDiqwMo6GRkIVVpiJbA 4NTQ== X-Gm-Message-State: AJIora9WNEfL+xu3Ul4PQk4OU7so0PQmTwoL2x76gO1CvKGh5UuLvoso 3Jn6B/9ADAMdhgw0Wf3jXkt9G/Q+TfSpCrQOqUFv X-Received: by 2002:a81:1e95:0:b0:31f:3665:6ed0 with SMTP id e143-20020a811e95000000b0031f36656ed0mr4484057ywe.400.1658823903339; Tue, 26 Jul 2022 01:25:03 -0700 (PDT) MIME-Version: 1.0 References: <20220715175155.3567243-1-mail@conchuod.ie> <20220715175155.3567243-3-mail@conchuod.ie> In-Reply-To: <20220715175155.3567243-3-mail@conchuod.ie> From: Atish Patra Date: Tue, 26 Jul 2022 01:24:52 -0700 Message-ID: Subject: Re: [PATCH v4 2/2] riscv: topology: fix default topology reporting To: Conor Dooley Cc: Paul Walmsley , Palmer Dabbelt , Palmer Dabbelt , Albert Ou , Sudeep Holla , Catalin Marinas , Will Deacon , Greg Kroah-Hartman , "Rafael J . Wysocki" , Daire McNamara , Conor Dooley , Niklas Cassel , Damien Le Moal , Geert Uytterhoeven , Zong Li , Emil Renner Berthing , Jonas Hahnfeld , Guo Ren , Anup Patel , Heiko Stuebner , Philipp Tomsich , Rob Herring , Marc Zyngier , Viresh Kumar , linux-riscv , "linux-kernel@vger.kernel.org List" , "linux-arm-kernel@lists.infradead.org" , Brice Goglin Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS 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 On Fri, Jul 15, 2022 at 10:53 AM Conor Dooley wrote: > > From: Conor Dooley > > RISC-V has no sane defaults to fall back on where there is no cpu-map > in the devicetree. > Without sane defaults, the package, core and thread IDs are all set to > -1. This causes user-visible inaccuracies for tools like hwloc/lstopo > which rely on the sysfs cpu topology files to detect a system's > topology. > > On a PolarFire SoC, which should have 4 harts with a thread each, > lstopo currently reports: > > Machine (793MB total) > Package L#0 > NUMANode L#0 (P#0 793MB) > Core L#0 > L1d L#0 (32KB) + L1i L#0 (32KB) + PU L#0 (P#0) > L1d L#1 (32KB) + L1i L#1 (32KB) + PU L#1 (P#1) > L1d L#2 (32KB) + L1i L#2 (32KB) + PU L#2 (P#2) > L1d L#3 (32KB) + L1i L#3 (32KB) + PU L#3 (P#3) > > Adding calls to store_cpu_topology() in {boot,smp} hart bringup code > results in the correct topolgy being reported: > > Machine (793MB total) > Package L#0 > NUMANode L#0 (P#0 793MB) > L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0) > L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1) > L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2) > L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3) > > CC: stable@vger.kernel.org > Fixes: 03f11f03dbfe ("RISC-V: Parse cpu topology during boot.") > Reported-by: Brice Goglin > Link: https://github.com/open-mpi/hwloc/issues/536 > Signed-off-by: Conor Dooley > Reviewed-by: Sudeep Holla > --- > arch/riscv/Kconfig | 2 +- > arch/riscv/kernel/smpboot.c | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 205c1e2f539c..7ffac8818060 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -52,7 +52,7 @@ config RISCV > select COMMON_CLK > select CPU_PM if CPU_IDLE > select EDAC_SUPPORT > - select GENERIC_ARCH_TOPOLOGY if SMP > + select GENERIC_ARCH_TOPOLOGY > select GENERIC_ATOMIC64 if !64BIT > select GENERIC_CLOCKEVENTS_BROADCAST if SMP > select GENERIC_EARLY_IOREMAP > diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c > index f1e4948a4b52..b4d5524b1077 100644 > --- a/arch/riscv/kernel/smpboot.c > +++ b/arch/riscv/kernel/smpboot.c > @@ -49,6 +49,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) > unsigned int curr_cpuid; > > curr_cpuid = smp_processor_id(); > + store_cpu_topology(curr_cpuid); > numa_store_cpu_info(curr_cpuid); > numa_add_cpu(curr_cpuid); > > @@ -161,9 +162,9 @@ asmlinkage __visible void smp_callin(void) > mmgrab(mm); > current->active_mm = mm; > > + store_cpu_topology(curr_cpuid); > notify_cpu_starting(curr_cpuid); > numa_add_cpu(curr_cpuid); > - update_siblings_masks(curr_cpuid); > set_cpu_online(curr_cpuid, 1); > > /* > -- > 2.37.1 > LGTM. Reviewed-by: Atish Patra -- Regards, Atish