From: Peter Zijlstra <email@example.com> To: Douglas Raillard <firstname.lastname@example.org> Cc: email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com Subject: Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware Date: Fri, 18 Oct 2019 14:07:19 +0200 Message-ID: <20191018120719.GH2328@hirez.programming.kicks-ass.net> (raw) In-Reply-To: <firstname.lastname@example.org> On Fri, Oct 18, 2019 at 12:46:25PM +0100, Douglas Raillard wrote: > > What I don't see is how that that difference makes sense as input to: > > > > cost(x) : (1 + x) * cost_j > > The actual input is: > x = (EM_COST_MARGIN_SCALE/SCHED_CAPACITY_SCALE) * (util - util_est) > > Since EM_COST_MARGIN_SCALE == SCHED_CAPACITY_SCALE == 1024, this factor of 1 > is not directly reflected in the code but is important for units > consistency. But completely irrelevant for the actual math and conceptual understanding. Just because computers suck at real numbers, and floats are expensive, doesn't mean we have to burden ourselves with fixed point when writing equations. Also, as a physicist I'm prone to normalizing everything to 1, because that's lazy. > > I suppose that limits the additional OPP to twice the previously > > selected cost / efficiency (see the confusion from that other email). > > But given that efficency drops (or costs rise) for higher OPPs that > > still doesn't really make sense.. > Yes, this current limit to +100% freq boosting is somehow arbitrary and > could probably benefit from being tunable in some way (Kconfig option > maybe). When (margin > 0), we end up selecting an OPP that has a higher cost > than the one strictly required, which is expected. The goal is to speed > things up at the expense of more power consumed to achieve the same work, > hence at a lower efficiency (== higher cost). No, no Kconfig knobs. > That's the main reason why this boosting apply a margin on the cost of the > selected OPP rather than just inflating the util. This allows controlling > directly how much more power (battery life) we are going to spend to achieve > some work that we know could be achieved with less power. But you're not; the margin is relative to the OPP, it is not absolute. Or rather, the only actual limit is in relation to the max OPP. So you have very little actual control over how much more energy you're spending. > > So while I agree that 2) is a reasonable signal to work from, everything > > that comes after is still much confusing me. > "When applying these boosting rules on the runqueue util signals ...": > Assuming the set of enqueued tasks stays the same between 2 observations > from schedutil, if we see the rq util_avg increase above its > util_est.enqueued, that means that at least one task had its util_avg go > above util_est.enqueued. We might miss some boosting opportunities if some > (util - util_est) compensates: > TASK_1(util - util_est) = - TASK_2(util - util_est) > but working on the aggregated value is much easier in schedutil, to avoid > crawling the list of entities. That still does not explain why 'util - util_est', when >0, makes for a sensible input into an OPP relative function. I agree that 'util - util_est', when >0, indicates utilization is increasing (for the aperiodic blah blah blah). But after that I'm still confused.
next prev parent reply index Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-11 13:44 Douglas RAILLARD 2019-10-11 13:44 ` [RFC PATCH v3 1/6] PM: Introduce em_pd_get_higher_freq() Douglas RAILLARD 2019-10-17 8:57 ` Dietmar Eggemann 2019-10-17 9:58 ` Dietmar Eggemann 2019-10-17 11:09 ` Douglas Raillard 2019-10-11 13:44 ` [RFC PATCH v3 2/6] sched/cpufreq: Attach perf domain to sugov policy Douglas RAILLARD 2019-10-17 8:57 ` Dietmar Eggemann 2019-10-17 10:22 ` Douglas Raillard 2019-10-11 13:44 ` [RFC PATCH v3 3/6] sched/cpufreq: Hook em_pd_get_higher_power() into get_next_freq() Douglas RAILLARD 2019-10-11 13:44 ` [RFC PATCH v3 4/6] sched/cpufreq: Introduce sugov_cpu_ramp_boost Douglas RAILLARD 2019-10-14 14:33 ` Peter Zijlstra 2019-10-14 15:32 ` Douglas Raillard 2019-10-17 8:57 ` Dietmar Eggemann 2019-10-17 11:19 ` Douglas Raillard 2019-10-11 13:44 ` [RFC PATCH v3 5/6] sched/cpufreq: Boost schedutil frequency ramp up Douglas RAILLARD 2019-10-17 9:21 ` Dietmar Eggemann 2019-10-11 13:45 ` [RFC PATCH v3 6/6] sched/cpufreq: Add schedutil_em_tp tracepoint Douglas RAILLARD 2019-10-14 14:53 ` [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware Peter Zijlstra 2019-10-14 15:50 ` Douglas Raillard 2019-10-17 9:50 ` Peter Zijlstra 2019-10-17 11:11 ` Quentin Perret 2019-10-17 14:11 ` Peter Zijlstra 2019-10-18 7:44 ` Dietmar Eggemann 2019-10-18 7:59 ` Peter Zijlstra 2019-10-18 17:24 ` Douglas Raillard 2019-10-18 8:11 ` Peter Zijlstra 2019-10-17 14:23 ` Douglas Raillard 2019-10-17 14:53 ` Peter Zijlstra 2019-10-17 19:07 ` Peter Zijlstra 2019-10-18 11:46 ` Douglas Raillard 2019-10-18 12:07 ` Peter Zijlstra [this message] 2019-10-18 14:44 ` Douglas Raillard 2019-10-18 15:15 ` Vincent Guittot 2019-10-18 16:03 ` Douglas Raillard 2019-10-18 15:20 ` Vincent Guittot
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191018120719.GH2328@hirez.programming.kicks-ass.net \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-PM Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-pm/0 linux-pm/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-pm linux-pm/ https://lore.kernel.org/linux-pm \ firstname.lastname@example.org public-inbox-index linux-pm Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-pm AGPL code for this site: git clone https://public-inbox.org/public-inbox.git