Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1396786rwl; Wed, 12 Apr 2023 12:09:30 -0700 (PDT) X-Google-Smtp-Source: AKy350Z47UQfTqzYWanx6ueOfOKvNHPkBbQ/Aw+A7eGxiiTaekCAfGzSuCxXJc48wUpFaTCLUU2P X-Received: by 2002:a17:903:41c5:b0:19c:b7da:fbdf with SMTP id u5-20020a17090341c500b0019cb7dafbdfmr4476898ple.26.1681326569710; Wed, 12 Apr 2023 12:09:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681326569; cv=none; d=google.com; s=arc-20160816; b=lh1aBO/RdZ4Itf33GKfWLOeSr/bd8jygu1JATGxBz0vzDjiLYWu0V4WMI/cf0K6sQz FYK5DVtFnhMB1xz6FeIs7zqQqz7MrLGfOqwh9SmGBHNEq+8gOsf9w/3c/fZVp34Ohtrr xbRJcAiFFvPv3WcA3uYTeWu55oeRw0OGeyBmOHlPgDeY4U9ilL92vQK9+KH3ujaS+Yma CHg685OIzuvjWRDYkIN6Ii+suaqvX8RD0YniObkAvFCB5jgLTkaSvfAbNvMSyGmcsdgS mJonJ1dIfoRLsEbF6FIKrpg739KPL3xFdB3aLd2kHqbRPXZWOVkwX9EFjD8a70aUPiR1 sSKg== 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 :dkim-signature; bh=LsekIlFf4oq6puv8x/mUu67gc6GF1RbRh4gmOlexPQc=; b=zNXjuRAZjyvkgIv9iXXt3hIeUKThu1LRiXmDzrax6BcgG11DqT3bG7xBAWoZrr3m3F B2SK4C8lcWXgxSdtqf7fLQS2LDRjOqZWrhYjDI1cf4Tp9IVYQFlcbjkHhquLPcnWzdjx uD2THSwoD+5tB44kAEZIrqwiIsD/JZwLvz1AIs3aZHcakHCkT15D2XPQVA/sRBTLRZ3P /OLa8eSroPOwh1+QuLBMpEzdRIQhocYW7uIHYtHzGo8rUGsa3ozTn7PtuRdEyBs3V1lT jGuuzDcrOXnrLsrmv/a47u4bHZttChsRPNB0dgWSNt6hqrJ4fpHEDwOlw7zWHZ/Zu3KV rm2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="PgWqlA8/"; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k21-20020a63d115000000b005030a59a818si15599158pgg.402.2023.04.12.12.09.07; Wed, 12 Apr 2023 12:09:29 -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=@redhat.com header.s=mimecast20190719 header.b="PgWqlA8/"; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230367AbjDLTAo (ORCPT + 99 others); Wed, 12 Apr 2023 15:00:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230328AbjDLTAN (ORCPT ); Wed, 12 Apr 2023 15:00:13 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A7A3D40F9 for ; Wed, 12 Apr 2023 11:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681325957; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LsekIlFf4oq6puv8x/mUu67gc6GF1RbRh4gmOlexPQc=; b=PgWqlA8/B2PLmptUp0OoVjPxl9mBfE4+riy55F912/OEXf1SThCCPx+/kuJbWYCxU/KyDu +jMGZ4heaJjqJ1btiTijPmp4jwGZ/mxVt2PrpimC6hhv8CplGy4nazBW/4cXRk7O9ePMxf pvjkHnrpR/MNdORGUH0aG3xJFr5PJLA= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-543-65LbHk3IPrqmD7NF7qmB5A-1; Wed, 12 Apr 2023 14:59:15 -0400 X-MC-Unique: 65LbHk3IPrqmD7NF7qmB5A-1 Received: by mail-qk1-f199.google.com with SMTP id c128-20020ae9ed86000000b0074690a17414so6569452qkg.7 for ; Wed, 12 Apr 2023 11:59:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681325954; x=1683917954; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LsekIlFf4oq6puv8x/mUu67gc6GF1RbRh4gmOlexPQc=; b=VJWxMj3xp4peebFaAORVOIs3y/7g2MBddADzQ/nKbrOP1SXOHWm4roF+PmvZhOluJ7 TUrpFQbVsd7Ui91MOrS8ryHuiyYmeBgSlfpXht/mBCuf0pdJtLwhoMqvjEuWcn8A8IUu QZDYwgjgsQXa0RXTyP6UP43tIGsQS1tQ8OlXh8muzy+kwINitJlNnxpHHtzfOlWf8gJk RDAGoSzcCUPVadutiTJclVN8b176uHQSvHmkfYGNvonPVcoT5BdpL6bO1RIbF7poWkHn znT2bUpqBEqup+RGegtHVyCesL2gyYFPIOJ9TcSPB83WFhDjp7CvVD9z5jNLULlgxKPA OCdg== X-Gm-Message-State: AAQBX9fJrgXkHm83WekIwqi71nehzJkuGDp2G8k/iiNabt9OhaopFw8z 7KpkyiSVQZHL7se+QU1m0S3kY/ow92WFHjvJuUIxWxaTgijzohoHhE7ofhfO36PzTw+jrqUu+ZW OgcRY2QDcysyRsq9AGlOJgPfNqynyubmk6beEYZCqHv9OrsR8slL3BBHYZMA8Rvl9CQpCzoj1gx hj6XGhSE8= X-Received: by 2002:ac8:4e4d:0:b0:3db:8942:cbd2 with SMTP id e13-20020ac84e4d000000b003db8942cbd2mr4578830qtw.61.1681325954640; Wed, 12 Apr 2023 11:59:14 -0700 (PDT) X-Received: by 2002:ac8:4e4d:0:b0:3db:8942:cbd2 with SMTP id e13-20020ac84e4d000000b003db8942cbd2mr4578811qtw.61.1681325954332; Wed, 12 Apr 2023 11:59:14 -0700 (PDT) Received: from thinkpad-p1.kanata.rendec.net (cpe00fc8d79db03-cm00fc8d79db00.cpe.net.fido.ca. [72.137.118.218]) by smtp.gmail.com with ESMTPSA id k21-20020ac86055000000b003d3a34d2eb2sm4417558qtm.41.2023.04.12.11.59.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Apr 2023 11:59:13 -0700 (PDT) From: Radu Rendec To: linux-kernel@vger.kernel.org Cc: Catalin Marinas , Will Deacon , Pierre Gondois , Sudeep Holla , linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 3/3] cacheinfo: Allow early level detection when DT/ACPI info is missing/broken Date: Wed, 12 Apr 2023 14:57:59 -0400 Message-Id: <20230412185759.755408-4-rrendec@redhat.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230412185759.755408-1-rrendec@redhat.com> References: <20230412185759.755408-1-rrendec@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,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 Recent work enables cacheinfo memory for secondary CPUs to be allocated early, while still running on the primary CPU. That allows cacheinfo memory to be allocated safely on RT kernels. To make that work, the number of cache levels/leaves must be defined in the device tree or ACPI tables. Further work adds a path for early detection of the number of cache levels/leaves, which makes it possible to allocate the cacheinfo memory early without requiring extra DT/ACPI information. This patch addresses a specific issue with ACPI systems with no PPTT. In that case, parse_acpi_topology() returns an error code, which in turn makes init_cpu_topology() return early, before fetch_cache_info() is called. In that case, the early cache level detection doesn't run. The solution is to simply remove the "return" statement and let the code flow fall through to calling fetch_cache_info(). Signed-off-by: Radu Rendec Reported-by: Pierre Gondois Link: https://lore.kernel.org/all/dea94484-797f-3034-7b86-6d88801c0d91@arm.com/ Reviewed-by: Pierre Gondois --- drivers/base/arch_topology.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index b1c1dd38ab01..147fb7d4af96 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -835,10 +835,10 @@ void __init init_cpu_topology(void) if (ret) { /* * Discard anything that was parsed if we hit an error so we - * don't use partial information. + * don't use partial information. But do not return yet to give + * arch-specific early cache level detection a chance to run. */ reset_cpu_topology(); - return; } for_each_possible_cpu(cpu) { -- 2.39.2