Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1722134 > unrolled thread
| Started by | Pavan Kondeti <pkondeti@codeaurora.org> |
|---|---|
| First post | 2017-08-29 06:40 +0200 |
| Last post | 2017-09-04 13:20 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [RFC 1/3] sched/fair: add util_est on top of PELT Pavan Kondeti <pkondeti@codeaurora.org> - 2017-08-29 06:40 +0200
Re: [RFC 1/3] sched/fair: add util_est on top of PELT Patrick Bellasi <patrick.bellasi@arm.com> - 2017-09-04 13:20 +0200
| From | Pavan Kondeti <pkondeti@codeaurora.org> |
|---|---|
| Date | 2017-08-29 06:40 +0200 |
| Subject | Re: [RFC 1/3] sched/fair: add util_est on top of PELT |
| Message-ID | <ujGtI-6nZ-3@gated-at.bofh.it> |
Hi Patrick, On Fri, Aug 25, 2017 at 3:50 PM, Patrick Bellasi <patrick.bellasi@arm.com> wrote: > The util_avg signal computed by PELT is too variable for some use-cases. > For example, a big task waking up after a long sleep period will have its > utilization almost completely decayed. This introduces some latency before > schedutil will be able to pick the best frequency to run a task. > > The same issue can affect task placement. Indeed, since the task > utilization is already decayed at wakeup, when the task is enqueued in a > CPU, this can results in a CPU running a big task as being temporarily > represented as being almost empty. This leads to a race condition where > other tasks can be potentially allocated on a CPU which just started to run > a big task which slept for a relatively long period. > > Moreover, the utilization of a task is, by PELT definition, a continuously > changing metrics. This contributes in making almost instantly outdated some > decisions based on the value of the PELT's utilization. > > For all these reasons, a more stable signal could probably do a better job > of representing the expected/estimated utilization of a SE/RQ. Such a > signal can be easily created on top of PELT by still using it as an > estimator which produces values to be aggregated once meaningful events > happens. > > This patch adds a simple implementation of util_est, a new signal built on > top of PELT's util_avg where: > > util_est(se) = max(se::util_avg, f(se::util_avg@dequeue_times)) > I don't see any wrapper function in this patch that implements this signal. You want to use this signal in the task placement path as a replacement of task_util(), right? Thanks, Pavan -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
[toc] | [next] | [standalone]
| From | Patrick Bellasi <patrick.bellasi@arm.com> |
|---|---|
| Date | 2017-09-04 13:20 +0200 |
| Message-ID | <ulXA5-4OA-5@gated-at.bofh.it> |
| In reply to | #1722134 |
On 29-Aug 10:06, Pavan Kondeti wrote: > Hi Patrick, > > On Fri, Aug 25, 2017 at 3:50 PM, Patrick Bellasi > <patrick.bellasi@arm.com> wrote: > > The util_avg signal computed by PELT is too variable for some use-cases. > > For example, a big task waking up after a long sleep period will have its > > utilization almost completely decayed. This introduces some latency before > > schedutil will be able to pick the best frequency to run a task. > > > > The same issue can affect task placement. Indeed, since the task > > utilization is already decayed at wakeup, when the task is enqueued in a > > CPU, this can results in a CPU running a big task as being temporarily > > represented as being almost empty. This leads to a race condition where > > other tasks can be potentially allocated on a CPU which just started to run > > a big task which slept for a relatively long period. > > > > Moreover, the utilization of a task is, by PELT definition, a continuously > > changing metrics. This contributes in making almost instantly outdated some > > decisions based on the value of the PELT's utilization. > > > > For all these reasons, a more stable signal could probably do a better job > > of representing the expected/estimated utilization of a SE/RQ. Such a > > signal can be easily created on top of PELT by still using it as an > > estimator which produces values to be aggregated once meaningful events > > happens. > > > > This patch adds a simple implementation of util_est, a new signal built on > > top of PELT's util_avg where: > > > > util_est(se) = max(se::util_avg, f(se::util_avg@dequeue_times)) > > > > I don't see any wrapper function in this patch that implements this > signal. You want to use this signal in the task placement path as a > replacement of task_util(), right? You right, I should update this changelog which is a bit misleading. What I'm writing above is the way we combine a task's estimated utilization with its util_avg. That's what you find in the code of the following patches, but strictly speacking we do not have a wrapper function. > Thanks, > Pavan Cheers Patrick -- #include <best/regards.h> Patrick Bellasi
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web