Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp7515374rwl; Thu, 23 Mar 2023 05:32:35 -0700 (PDT) X-Google-Smtp-Source: AK7set9MZXFQItfbaX5ERQUx/E/n+ropUCmheUB5QNiXAUV/ATwfQcWZK6uPPOBbqdRSGutEQjge X-Received: by 2002:a05:6a20:b2a8:b0:da:7036:dfa4 with SMTP id ei40-20020a056a20b2a800b000da7036dfa4mr3069034pzb.32.1679574754846; Thu, 23 Mar 2023 05:32:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679574754; cv=none; d=google.com; s=arc-20160816; b=Jr1crcBJhw3oAH6CtOFcBjDVrR4T3a7JZWnLn20Zzq1hKr5HwaY71asH3vQQZqkxko iXZdXJbkYrDs+8Zh5ZoHKn2X55I9zstVpQ36VFqde1G+NVnGKo+yUgAnzaQWxMTXPiCm YM2LAy5JucrQekfm4FL0ZS8lOI5pGmJITH4zr9unbNMBr65FooNs2U0Jj1vbyddTUCig vtso9ch/B2GxypRtfNvxYXTg03/i3PTMKS7J7poZ9dqqSvjrUHuLAgsgP5y067dqABIA Kv3tVjcO3ITsJEYdLeFBJjYxbYyk7KkkijJ6ketZUjNr4KknM0qfohCHqGrWVlASr8PB rWkA== 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 :message-id:date:subject:cc:to:from; bh=RP5AUEW1Zor3l+jllaKL7KJOUKovQwDQ7A++duLnKPU=; b=FI3T7cY3uDHkhBn9ZLqvyIdoBBGOPRoqOjdWT6HmjmnWYqwRjyKvi7YYWgOf+7UkjR G6+yPyElbiaOnUOg+5mnZEcEbdBf5LTJTOKVBfdCzaEKxk2ylele6NYZvh1+1H0gVG4t 8xw2vmjxZBaOjf1oDrD4yiJuq/QURI5tDbnzH8Am49EG7imfNVcGmusv29gi6uO1fLS4 t3gK2kuyXiWF6aib559ezsxyAwyRar2r3jvbaF51dV+qqJrGmmOVX8C+wsgsk76dwFRP /fD66AfRzn0+0OUUFEhqQpRPDd4rKxyeWQrG3iGcNg68WU8SyBcYKXppAuhcQaF076hX WwkQ== 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h12-20020a63574c000000b004fbb2e0e958si17139919pgm.736.2023.03.23.05.32.12; Thu, 23 Mar 2023 05:32:34 -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; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231609AbjCWM0a (ORCPT + 99 others); Thu, 23 Mar 2023 08:26:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230293AbjCWM0X (ORCPT ); Thu, 23 Mar 2023 08:26:23 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C72F27D43 for ; Thu, 23 Mar 2023 05:26:06 -0700 (PDT) Received: from canpemm500009.china.huawei.com (unknown [172.30.72.55]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4Pj4HL6Q7Bz17MjC; Thu, 23 Mar 2023 20:22:54 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by canpemm500009.china.huawei.com (7.192.105.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 23 Mar 2023 20:26:02 +0800 From: Yicong Yang To: , , , , , CC: , , Subject: [PATCH] cacheinfo: Fix LLC is not exported through sysfs Date: Thu, 23 Mar 2023 20:25:28 +0800 Message-ID: <20230323122528.16691-1-yangyicong@huawei.com> X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To canpemm500009.china.huawei.com (7.192.105.203) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 From: Yicong Yang After entering 6.3-rc1 the LLC cacheinfo is not exported on our ACPI based arm64 server. This is because the LLC cacheinfo is partly reset when secondary CPUs boot up. On arm64 the primary cpu will allocate and setup cacheinfo: init_cpu_topology() for_each_possible_cpu() fetch_cache_info() // Allocate cacheinfo and init levels detect_cache_attributes() cache_shared_cpu_map_setup() if (!last_level_cache_is_valid()) // not valid, setup LLC cache_setup_properties() // setup LLC On secondary CPU boot up: detect_cache_attributes() populate_cache_leaves() get_cache_type() // Get cache type from clidr_el1, // for LLC type=CACHE_TYPE_NOCACHE cache_shared_cpu_map_setup() if (!last_level_cache_is_valid()) // Valid and won't go to this branch, // leave LLC's type=CACHE_TYPE_NOCACHE The last_level_cache_is_valid() use cacheinfo->{attributes, fw_token} to test it's valid or not, but populate_cache_leaves() will only reset LLC's type, so we won't try to re-setup LLC's type and leave it CACHE_TYPE_NOCACHE and won't export it through sysfs. This patch tries to fix this by not re-populating the cache leaves if the LLC is valid. Fixes: 5944ce092b97 ("arch_topology: Build cacheinfo from primary CPU") Signed-off-by: Yicong Yang --- drivers/base/cacheinfo.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index f6573c335f4c..d65f169d36dd 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -473,6 +473,13 @@ int detect_cache_attributes(unsigned int cpu) return ret; populate_leaves: + /* + * If LLC is valid the cache leaves were already populated so just go to + * update the cpu map. + */ + if (last_level_cache_is_valid(cpu)) + goto update_cpu_map; + /* * populate_cache_leaves() may completely setup the cache leaves and * shared_cpu_map or it may leave it partially setup. @@ -481,6 +488,7 @@ int detect_cache_attributes(unsigned int cpu) if (ret) goto free_ci; +update_cpu_map: /* * For systems using DT for cache hierarchy, fw_token * and shared_cpu_map will be set up here only if they are -- 2.24.0