Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp7797831ybi; Thu, 6 Jun 2019 01:31:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqz5xZRQL2rtE6SGTwyQmkef0be9SmPF5MrZ0MRz5RAHcy7uI7wZt/xIAbYsBsE2BI93Ft4J X-Received: by 2002:a63:1b22:: with SMTP id b34mr2310180pgb.382.1559809874758; Thu, 06 Jun 2019 01:31:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559809874; cv=none; d=google.com; s=arc-20160816; b=zJDLZTpN+pQuYgW5xzrE8r7ApypT5OhpRYo9KSMgKz5yviCQrxgZfdm8XDb072ByCw Cq69QBbdi9LLD4RzkM+k06wrbs0B7PExJFk/b2NFretBTlfERPy72l8bc2ev6WUBzKbv siG9ugZIeiaOqCgQn3yobfZifVLPyDgeTleftx0ZFXqCWs6eT9b1nmdYwVROaQd41fve d9XoBqqfgCl4E3C6gyabQGLVE2nNGZL26h7u0El7x5Ol6yG8JOF5F70ZyLu31vtQnh+5 mewp/uFPeUz+bzJg7gzq36C/J+Xgk5s3gOzJAr/4Jb7y8vp6a23M0EQsDu3Yc2dvOQfT VJgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=IFnF4OWnXg0SGxn9AJutomU0YZ1xrDBsFRRZ6DovknU=; b=N0Gi5F2HryN5saz2Tlw5GNOCA4B986fmHY0i1FYYaUu8lkrJTSTp3ssotbfqtkmZ6d sTda+/Y4nTWBoS7nbDf4Q/DJoTP03viPjS1DI9sqxg3Fyuvj1Be0Z6FRxBFnAzMSM8hq FsoZTghIezXk//zmC0ENfjkqCRZa2H2XeagJWHyx5/IIp6I4yRKFUwHjPXpTexzOcNSP rmSMDSCME/9ZmkUtvx8dE/R5JJpVpknUnbTQ/fvxxP/CFniu+VsWTHHH55WgOI6geQ2P Wv5cr+dSlYRFaPlOb8or3v4mtA3n5p44s3FPJ/mPCeKDcWBGBQaWo61BieVCJ/WIBZBI Th7Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i11si1207334plt.92.2019.06.06.01.30.57; Thu, 06 Jun 2019 01:31:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727245AbfFFI3a (ORCPT + 99 others); Thu, 6 Jun 2019 04:29:30 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:42604 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725782AbfFFI33 (ORCPT ); Thu, 6 Jun 2019 04:29:29 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1E8DA341; Thu, 6 Jun 2019 01:29:29 -0700 (PDT) Received: from queper01-ThinkPad-T460s (unknown [10.37.8.11]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3ED423F690; Thu, 6 Jun 2019 01:29:26 -0700 (PDT) Date: Thu, 6 Jun 2019 09:29:24 +0100 From: Quentin Perret To: Vincent Guittot Cc: Stephen Boyd , Amit Kucheria , Andy Gross , Matthias Kaehlcke , David Brown , Rob Herring , Mark Rutland , linux-arm-msm , "open list:ARM/QUALCOMM SUPPORT" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , LKML , Douglas Anderson , Rajendra Nayak , morten.rasmussen@arm.com Subject: Re: [PATCH] arm64: dts: sdm845: Add CPU topology Message-ID: <20190606082922.3q2lnn2jeu72nipx@queper01-ThinkPad-T460s> References: <20190114184255.258318-1-mka@chromium.org> <155786856719.14659.2902538189660269078@swboyd.mtv.corp.google.com> <5cdf2dc8.1c69fb81.521c8.9339@mx.google.com> <20190605172048.ahzusevvdxrpnebk@queper01-ThinkPad-T460s> <20190606074921.43mbinemk3j565yu@queper01-ThinkPad-T460s> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20171215 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org +CC Morten who had an interest in this On Thursday 06 Jun 2019 at 10:20:12 (+0200), Vincent Guittot wrote: > On Thu, 6 Jun 2019 at 09:49, Quentin Perret wrote: > > > > Hi Vincent, > > > > On Thursday 06 Jun 2019 at 09:05:16 (+0200), Vincent Guittot wrote: > > > Hi Quentin, > > > > > > On Wed, 5 Jun 2019 at 19:21, Quentin Perret wrote: > > > > > > > > On Friday 17 May 2019 at 14:55:19 (-0700), Stephen Boyd wrote: > > > > > Quoting Amit Kucheria (2019-05-16 04:54:45) > > > > > > (cc'ing Andy's correct email address) > > > > > > > > > > > > On Wed, May 15, 2019 at 2:46 AM Stephen Boyd wrote: > > > > > > > > > > > > > > Quoting Amit Kucheria (2019-05-13 04:54:12) > > > > > > > > On Mon, May 13, 2019 at 4:31 PM Amit Kucheria wrote: > > > > > > > > > > > > > > > > > > On Tue, Jan 15, 2019 at 12:13 AM Matthias Kaehlcke wrote: > > > > > > > > > > > > > > > > > > > > The 8 CPU cores of the SDM845 are organized in two clusters of 4 big > > > > > > > > > > ("gold") and 4 little ("silver") cores. Add a cpu-map node to the DT > > > > > > > > > > that describes this topology. > > > > > > > > > > > > > > > > > > This is partly true. There are two groups of gold and silver cores, > > > > > > > > > but AFAICT they are in a single cluster, not two separate ones. SDM845 > > > > > > > > > is one of the early examples of ARM's Dynamiq architecture. > > > > > > > > > > > > > > > > > > > Signed-off-by: Matthias Kaehlcke > > > > > > > > > > > > > > > > > > I noticed that this patch sneaked through for this merge window but > > > > > > > > > perhaps we can whip up a quick fix for -rc2? > > > > > > > > > > > > > > > > > > > > > > > > > And please find attached a patch to fix this up. Andy, since this > > > > > > > > hasn't landed yet (can we still squash this into the original patch?), > > > > > > > > I couldn't add a Fixes tag. > > > > > > > > > > > > > > > > > > > > > > I had the same concern. Thanks for catching this. I suspect this must > > > > > > > cause some problem for IPA given that it can't discern between the big > > > > > > > and little "power clusters"? > > > > > > > > > > > > Both EAS and IPA, I believe. It influences the scheduler's view of the > > > > > > the topology. > > > > > > > > > > And EAS and IPA are OK with the real topology? I'm just curious if > > > > > changing the topology to reflect reality will be a problem for those > > > > > two. > > > > > > > > FWIW, neither EAS nor IPA depends on this. Not the upstream version of > > > > EAS at least (which is used in recent Android kernels -- 4.19+). > > > > > > > > But doing this is still required for other things in the scheduler (the > > > > so-called 'capacity-awareness' code). So until we have a better > > > > solution, this patch is doing the right thing. > > > > > > I'm not sure to catch what you mean ? > > > Which so-called 'capacity-awareness' code are you speaking about ? and > > > what is the problem ? > > > > I'm talking about the wake-up path. ATM select_idle_sibling() is totally > > unaware of capacity differences. In its current form, this function > > basically assumes that all CPUs in a given sd_llc have the same > > capacity, which would be wrong if we had a single MC level for SDM845. > > So, until select_idle_sibling() is 'fixed' to be capacity-aware, we need > > two levels of sd for asymetric systems (including DynamIQ) so the > > wake_cap() story actually works. > > > > I hope that clarifies it :) > > hmm... does this justifies this wrong topology ? > select_idle_sibling() is called only when system is overloaded and > scheduler disables the EAS path > In this case, the scheduler looks either for an idle cpu or for evenly > spreading the loads Yeah but a big task can end up being placed on a little CPU even if a big CPU is idle. So, it's definitely sub-optimal. > This is maybe not always optimal and should probably be fixed but > doesn't justifies a wrong topology description IMHO I totally agree, the proper fix is to get select_idle_sibling() capacity aware. And actually, it is true the DT should represent the HW, so perhaps Amit's fix is the right thing to do so we don't let those hacky topologies creep into mainline ... I just want to make sure we are fully aware and OK with the fact that the performance on this platform might be a little inconsistent until select_idle_sibling() is fixed. Thanks, Quentin