Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp3260172lfo; Mon, 23 May 2022 00:12:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweEmlMpfmfFtC51FdICD2fiXshNtoqOU3V3JApeKD5nbaCeeeeMeCCTJ5BfNDJGDnDL0kh X-Received: by 2002:a63:f0a:0:b0:3c6:e825:2431 with SMTP id e10-20020a630f0a000000b003c6e8252431mr18979182pgl.166.1653289953084; Mon, 23 May 2022 00:12:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653289953; cv=none; d=google.com; s=arc-20160816; b=0iGadKtxyPVq0DoWs8k0w+CA2acfsZ+c6AnHGy3eu5pFtg7Jn2u9I89jmoSUQVX3+d MaXxeI8GFg6wcbVSCK8HZmrSaBKhNlXTNW7aPFO1a8pSZtIZM7f9Xd/OAgS2W4eWe7I7 eeHBAcAeObND7O72AKBu3ShwJznCbWOJ0nSBCjznmHUXmuw4qIAPc/8eNyExaYHE6+tw LcIURoeeIuZyFcJ7TNGaZtdNtobi5GhqIOoYDWTPIYLmUky7NvQahnn5Cq+Xjn01DApR eB4b1go8mpSchvG1ZDwMcNmoTQLaluHVxrenPdzsgUtco5hW3YJoU1U/utj5YMgRyftF pXXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=fk5yMPavPBLSTAGEdFyRHUmaNwRbTV+hg3et2nsUBr4=; b=pVUMRyx1U+GlVrUS6G/sDEh0BIBfBjxB/vh39gV5Ug0NWAlggefMJVlTJjuuLtDvMh 8BO3A9zueB9EusrCjwbsePJE/Z/o9lKt7e9uZ8hkWe6r9zLGUhukQ54oxISf+Xi6TwZ1 6VvGZXMVlCyWmyA/4V45b9WA7A3u5GQwLej7VYNFerXF7R7rOFlmkYGY7rtsc+NlwLKP kMB/wz77dJfsTYx87B5Lnlyky8goAuRC8P0GaNQ2DS3aUKloo5dNq7eS3MMuCj5QPf6v 8H3qkk553lq8sOpaE/ZZrwDNtc3R9memQyCzTuEF2wKA6V6sBIcmH5eqflDmHb391HfB 6FPA== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id u15-20020a170902e80f00b0015a30ec2f9bsi10295502plg.55.2022.05.23.00.12.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 00:12:33 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 84DDB7379D; Sun, 22 May 2022 23:31:23 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349519AbiETMd6 (ORCPT + 99 others); Fri, 20 May 2022 08:33:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349362AbiETMde (ORCPT ); Fri, 20 May 2022 08:33:34 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C2D8E163F6C for ; Fri, 20 May 2022 05:33:31 -0700 (PDT) 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 3916A1477; Fri, 20 May 2022 05:33:31 -0700 (PDT) Received: from [172.29.1.145] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 629363F718; Fri, 20 May 2022 05:33:28 -0700 (PDT) Message-ID: <26f39a9d-1a02-b77d-5c89-88a1fb0e4eac@arm.com> Date: Fri, 20 May 2022 14:33:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v2 3/8] arch_topology: Set cluster identifier in each core/thread from /cpu-map Content-Language: en-US To: Ionela Voinescu , Sudeep Holla Cc: Atish Patra , linux-kernel@vger.kernel.org, Atish Patra , Vincent Guittot , Morten Rasmussen , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring References: <20220518093325.2070336-1-sudeep.holla@arm.com> <20220518093325.2070336-4-sudeep.holla@arm.com> From: Dietmar Eggemann In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE 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 On 19/05/2022 18:55, Ionela Voinescu wrote: > Hi, > > As said before, this creates trouble for CONFIG_SCHED_CLUSTER=y. > The output below is obtained from Juno. > > When cluster_id is populated, a new CLS level is created by the scheduler > topology code. In this case the clusters in DT determine that the cluster > siblings and llc siblings are the same so the MC scheduler domain will > be removed and, for Juno, only CLS and DIE will be kept. [...] > To be noted that we also get a new flag SD_PREFER_SIBLING for the CLS > level that is not appropriate. We usually remove it for the child of a > SD_ASYM_CPUCAPACITY domain, but we don't currently redo this after some > levels are degenerated. This is a fixable issue. > > But looking at the bigger picture, a good question is what is the best > thing to do when cluster domains and llc domains span the same CPUs? > > Possibly it would be best to restrict clusters (which are almost an > arbitrary concept) to always span a subset of CPUs of the llc domain, > if llc siblings can be obtained? If those clusters are not properly set > up in DT to respect this condition, cluster_siblings would need to be > cleared (or set to the current CPU) so the CLS domain is not created at > all. > > Additionally, should we use cluster information from DT (cluster_id) to > create an MC level if we don't have llc information, even if > CONFIG_SCHED_CLUSTER=n? > > I currently don't have a very clear picture of how cluster domains and > llc domains would "live" together in a variety of topologies. I'll try > other DT topologies to see if there are others that can lead to trouble. This would be an issue. Depending on CONFIG_SCHED_CLUSTER we would get two different systems from the viewpoint of the scheduler. To me `cluster_id/_sibling` don't describe a certain level of CPU grouping (e.g. one level above core or one level below package). They were introduced to describe one level below LLC (e.g. Kunpeng920 L3 (24 CPUs LLC) -> L3 tag (4 CPUs) or x86 Jacobsville L3 -> L2), (Commit ^^^^^^ ^^ c5e22feffdd7 ("topology: Represent clusters of CPUs within a die")). The Ampere Altra issue already gave us a taste of the possible issues of this definition, commit db1e59483dfd ("topology: make core_mask include at least cluster_siblings"). If we link `cluster_id/_sibling` against (1. level) cpu-map cluster nodes plus using llc and `cluster_sibling >= llc_sibling` we will run into these issues.