Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp893725imm; Fri, 12 Oct 2018 08:21:18 -0700 (PDT) X-Google-Smtp-Source: ACcGV60D8Ff3YbhpDd+KHYDf1b9Anq+/wkewwtxEgeX2lDVHvZxl6VHWa0PGR131yYn3EhkVQUKo X-Received: by 2002:a62:5d89:: with SMTP id n9-v6mr6704770pfj.54.1539357678755; Fri, 12 Oct 2018 08:21:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539357678; cv=none; d=google.com; s=arc-20160816; b=Dti6ZLJzHqNRji5cO4Cp9LFNyE+5EvcE6klsm8a1ZMzQrPCu4KzCw285a7dbtYKHAN C+UJCzpE87C3nphPf4pXVrM1ge/LrSguvFT7gS3Mmph2FkOTv5JdzqApRfwVxublWOBj Wkgcvdtm61825kBPRumlFC4gwsAk9thqarcDx/KUKrWnTh3NnKNwRPXT8lZTRwG7aUOz uASbZfWpZgLCZeHqM3u29ejz5gbZgcX0sPh1gwRQi3OUlbo0n+PJ28csB4A/PzO4bESW IBDlVw8h0bd8MvInyAeuVJocx4lMtt9ZGNPL77E9Y1sUHRuKmbsC1UO6afS1MrFFx07f fb0Q== 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:dmarc-filter:dkim-signature:dkim-signature; bh=qOv4wC+TQWX4rOtXnSb8qazJcGIgcJDaRsmNoxlucUc=; b=pBvnXaTQvh8NHpAPM7idyFCzTFe9jX3ItxqoczgaJ3AOoOt+A/2wt058hvLfy6DJ3X RGjZUqL7Rc2wqGAsdSOgguzE4qUKv4Ll2rT+oDZyVpx7EQlnBNzy8j6Fin7doSClPI/V 6LTr+EbxgtgP6Fs1Ocr8aPI0jN8N/hAS2J/5VET+Irx59Os1qVulUiAdoqja1qf5azp+ BoQVPGVrlrtrSUTvJPBMr8SkZ3ofcYuJHXipV4TOAnDYdFXNCSKF7cvnjj5601/08oOT 3+cif+2CcVO/rSIWKqmC0/seeleAkIZLhtpm4GUSvXTVtsoIn070qbJsVdkSQkP0KSZe vgAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=UnrpZntS; dkim=pass header.i=@codeaurora.org header.s=default header.b=LB7juICt; 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 y40-v6si1435499pla.331.2018.10.12.08.21.03; Fri, 12 Oct 2018 08:21:18 -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; dkim=pass header.i=@codeaurora.org header.s=default header.b=UnrpZntS; dkim=pass header.i=@codeaurora.org header.s=default header.b=LB7juICt; 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 S1729097AbeJLWxT (ORCPT + 99 others); Fri, 12 Oct 2018 18:53:19 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:56000 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728182AbeJLWxT (ORCPT ); Fri, 12 Oct 2018 18:53:19 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 516BC6031A; Fri, 12 Oct 2018 15:20:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539357622; bh=58AkvfzkjzHqpHYyqte5HT+X6XxbqL2cnbSzSKbVZ5A=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UnrpZntSqtP21OjkbA4TLOHWcz8gL0CW07REqMDs7M6+yjFG9haRMDHyVt/tuEnhv dTZZcoeoSzra3kxURHEI7hTO/6TcKTHjCeN2irTJ5mCP/IWcXNlZaHCXQIPJjCLc4t DXA72u5w3PFZyiBr0F9rZykEoZVzZqkiEGwV9Z88= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED autolearn=no autolearn_force=no version=3.4.0 Received: from localhost (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: ilina@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 8AA156014B; Fri, 12 Oct 2018 15:20:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1539357620; bh=58AkvfzkjzHqpHYyqte5HT+X6XxbqL2cnbSzSKbVZ5A=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LB7juICtnd84FnyiLvVzXOYVcet0m2ILMLMQegto2OuAGgFa8RauTC0cTLIqZ62bJ d+8t8NJ0MZ7sibrdGyl9eWlD2A0HAbQKDSIOkSIzEj86uTeXx/4kS6Y1q9O5bVsPV3 bKe4u+Cj+5CjsOH563EUKUCWaaa1GYWuDmUkCUfk= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8AA156014B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=ilina@codeaurora.org Date: Fri, 12 Oct 2018 09:20:19 -0600 From: Lina Iyer To: "Rafael J. Wysocki" Cc: "Rafael J. Wysocki" , rplsssn@codeaurora.org, Andy Gross , david.brown@linaro.org, Ulf Hansson , Kevin Hilman , linux-arm-msm , linux-soc@vger.kernel.org, "Nayak, Rajendra" , bjorn.andersson@linaro.org, Linux Kernel Mailing List , Linux PM , "devicetree@vger.kernel.org" , Stephen Boyd , evgreen@chromium.org, Doug Anderson , Matthias Kaehlcke Subject: Re: [PATCH RFC v1 2/8] kernel/cpu_pm: Manage runtime PM in the idle path for CPUs Message-ID: <20181012152019.GF2371@codeaurora.org> References: <1539206455-29342-1-git-send-email-rplsssn@codeaurora.org> <1539206455-29342-3-git-send-email-rplsssn@codeaurora.org> <8161939.SRDo8Qx48D@aspire.rjw.lan> <20181011220842.GE2371@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 12 2018 at 01:43 -0600, Rafael J. Wysocki wrote: >On Fri, Oct 12, 2018 at 12:08 AM Lina Iyer wrote: >> On Thu, Oct 11 2018 at 14:56 -0600, Rafael J. Wysocki wrote: >> >On Wednesday, October 10, 2018 11:20:49 PM CEST Raju P.L.S.S.S.N wrote: >> >> From: Ulf Hansson >> The cluster states should account for that additional latency. > >But even then, you need to be sure that the idle governor selected >"cluster" states for all of the CPUs in the cluster. It might select >WFI for one of them for reasons unrelated to the distance to the next >timer (so to speak), for example. > Well, if cpuidle chooses WFI, cpu_pm_enter() will not be called. So for that case we are okay with this approach. >> Just the CPU's power down states need not care about that. > >The meaning of this sentence isn't particularly clear to me. :-) > What I meant to say is that if cpuidle chooses a CPU only power down state, then, atleast in ARM architecture, we would not choose to power down the cluster in the firmware. To power down the cluster in the firmware, all CPUs need to choose a cluster state, which would account the additional latency of powering off and on the domain. How I ever thought that I could convey this point in that line is beyond me now. Sorry! >> But, it would be nice if the PM domain governor could be cognizant of >> the idle state chosen for each CPU, that way we dont configure the >> domain to be powered off when the CPUs have just chosen to power down >> (not chosen a cluster state). I think that is a whole different topic to >> discuss. > >This needs to be sorted out before the approach becomes viable, though. > We embarked on that discussion a few years ago, but realized that there is a lot more complexity involved in specifying that especially with DT. I believe ACPI has a way to specify this. But DT and driver code currently don't have a nice way to propagate this requirement to the domain governor. So we shelved it for the future. >Basically, the domain governor needs to track what the idle governor >did for all of the CPUs in the domain and only let the domain go off >if the latency matches all of the states selected by the idle >governor. Otherwise the idle governor's assumptions would be violated >and it would become essentially useless overhead. > Well, we kinda do that in the CPU PM domain governor. By looking at the next wakeup and the latency/QoS requirement of each CPU in the domain, we determine if the domain can be powered off. But, if we were to do this by correlating domain idle states to that of the required CPU idle state, then a lot needs to plumbed in to the cpuidle and driver model. The current approach is rather simple while meeting most of the requirement. Thanks, Lina