Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp998315ybh; Mon, 13 Jul 2020 06:55:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZhihSz29AMvUbNKZb5BKysw6E5GXyxR2dTfhtkHHFYCPvhyQpCKLE7t0AIEv9lzYKR5tL X-Received: by 2002:a17:906:1b45:: with SMTP id p5mr72978591ejg.51.1594648512125; Mon, 13 Jul 2020 06:55:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594648512; cv=none; d=google.com; s=arc-20160816; b=XRQ4RhruXweE1A2ybSVnuP3j52X7YvI0DUuXL/hwUhuMZCaQl6D0irB8bP6ljDKFyA hUskOgdB7JxT8Iq1UEDlEdFv0IEdSS9F4LQ7ESKh9NeDpMjLLskIbb+6tti6M7exqroA lZyt3BNOfzZAyl5n4UcaDlCY4C4InPttOXbD2pwhufIk82hz3yBuyffpAfcvgsrlPQtt S49jxONizQSAHpyCNXg0X5wjDx28/eSM32NLtlEeN0ZBdBeVv5tpzq6yKXvERNXXoE/V cTt+VkM0Tq2sz9bA2Cz7YYrs1eeoLpjji/TPqCJ9Yyof3G9H+/CYi2dqvFFfWxWkgoen csOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:in-reply-to :subject:cc:to:from:user-agent:references; bh=hwnQVrS92nmFO5bgLHItZMb1koTKbCCRTtegsa3F98M=; b=Bq+v6WOgB3fQhwIhpRw6tYbIIXawBCVKPNHTDYFRi+Yo5N/oXKnvqpnlGfKXGRDO8Q t5iRn0p1mEmkR6TejF3koad/VP/HE8gyuDXWIPRVLeX1gIlCU4/yA8+avna2TkCX5AFc jKT664FrSPcsc076yhjhR7xCd0RCDu+pfI1gBXPgp2rF7mm5hd9pc6h+S+3J10Kdf8Hk gLP2bYwnnFiQ/oAWEf+Pl0QbMxLdeuLV73CKDja5OQRFE0aX0gb6U313CHtPq8jx69+B WHNTukGoLfV9rGYk0R0gGJT+4Dy/z6ExtbtAPw82r57ZZ2PRTqYsXQOBWobhHqQc7VIp iz3w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u17si9677861ejj.13.2020.07.13.06.54.48; Mon, 13 Jul 2020 06:55:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729838AbgGMNwm (ORCPT + 99 others); Mon, 13 Jul 2020 09:52:42 -0400 Received: from foss.arm.com ([217.140.110.172]:36156 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729457AbgGMNwm (ORCPT ); Mon, 13 Jul 2020 09:52:42 -0400 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 8A3EC30E; Mon, 13 Jul 2020 06:52:41 -0700 (PDT) Received: from e113632-lin (e113632-lin.cambridge.arm.com [10.1.194.46]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A387E3F7BB; Mon, 13 Jul 2020 06:52:40 -0700 (PDT) References: <20200701190656.10126-1-valentin.schneider@arm.com> <20200701190656.10126-8-valentin.schneider@arm.com> <20200713125543.GJ10769@hirez.programming.kicks-ass.net> <20200713134347.GL10769@hirez.programming.kicks-ass.net> User-agent: mu4e 0.9.17; emacs 26.3 From: Valentin Schneider To: Peter Zijlstra Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, morten.rasmussen@arm.com Subject: Re: [PATCH v3 7/7] sched/topology: Use prebuilt SD flag degeneration mask In-reply-to: <20200713134347.GL10769@hirez.programming.kicks-ass.net> Date: Mon, 13 Jul 2020 14:52:38 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13/07/20 14:43, Peter Zijlstra wrote: > On Mon, Jul 13, 2020 at 02:28:29PM +0100, Valentin Schneider wrote: >> >> On 13/07/20 13:55, Peter Zijlstra wrote: >> > On Wed, Jul 01, 2020 at 08:06:55PM +0100, Valentin Schneider wrote: >> >> Leverage SD_DEGENERATE_GROUPS_MASK in sd_degenerate() and >> >> sd_degenerate_parent(). >> >> >> >> Note that this changes sd_degenerate() somewhat: I'm using the negation of >> >> SD_DEGENERATE_GROUPS_MASK as the mask of flags not requiring groups, which >> >> is equivalent to: >> >> >> >> SD_WAKE_AFFINE | SD_SERIALIZE | SD_NUMA >> >> >> >> whereas the current mask for that is simply >> >> >> >> SD_WAKE_AFFINE >> >> >> >> I played with a few toy NUMA topologies on QEMU and couldn't cause a >> >> different degeneration than what mainline does currently. If that is deemed >> >> too risky, we can go back to using SD_WAKE_AFFINE explicitly. >> > >> > Arguably SD_SERIALIZE needs groups, note how we're only having that >> > effective for machines with at least 2 nodes. It's a bit shit how we end >> > up there, but IIRC that's what it ends up as. >> > >> >> Right, AFAICT we get SD_SERIALIZE wherever we have SD_NUMA, which is any >> level above NODE. > > Oh, right, I forgot we have NODE, d'0h. But in that case these lines: > > if (nr_node_ids == 1) > pflags &= ~SD_SERIALIZE; > > are dead code, right? > Uuuuh right, that does sound like something made obsolete by having NODE; we didn't have it back then: 5436499e6098 ("sched: fix sd_parent_degenerate on non-numa smp machine") I'll fold that in (and test it, just to be sure :-)). >> > SD_NUMA is descriptive, and not marking a group as degenerates because >> > it has SD_NUMA seems a bit silly. >> >> It does, although we can still degenerate it, see below. >> >> > But then, it would be the top domain >> > and would survive anyway? >> >> So from what I've tested we still get rid of those via >> sd_parent_degenerate(): child and parent have the same flags and same span, >> so parent goes out. >> >> That happens in the middle of the NUMA topology levels on that borked >> topology with weird distances, aka >> >> node distances: >> node 0 1 2 3 >> 0: 10 12 20 22 >> 1: 12 10 22 24 >> 2: 20 22 10 12 >> 3: 22 24 12 10 >> >> which ought to look something like (+local distance to end result) >> >> 2 10 2 >> 1 <---> 0 <---> 2 <---> 3 >> >> We end up with the following NUMA levels (i.e. deduplicated distances) >> NUMA (<= 12) >> NUMA (<= 20) >> NUMA (<= 22) >> NUMA (<= 24) >> >> For e.g. any CPU of node1, NUMA(<=20) is gonna have the same span as >> NUMA(<=12), so we'll degenerate it. > > Man, that's horrible :-) It is :( > OK, fair enough, keep it as is, we'll see what > if anything breaks.