Messages in this thread |  | | From | Pavan Kondeti <> | Date | Tue, 29 Aug 2017 10:06:44 +0530 | Subject | Re: [RFC 1/3] sched/fair: add util_est on top of PELT |
| |
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
|  |