Re: [PATCH] sched/cputime: Mitigate performance regression in times()/clock_gettime()

From: Peter Zijlstra
Date: Tue Aug 02 2016 - 06:38:32 EST


On Tue, Jul 26, 2016 at 04:07:14PM +0200, Giovanni Gherdovich wrote:

> Signed-off-by: Mike Galbraith <mgalbraith@xxxxxxx>
> Signed-off-by: Giovanni Gherdovich <ggherdovich@xxxxxxx>

SoB chain is borken. Either Mike wrote the patch in which case you're
missing a From: Mike header someplace, or you wrote it and Mike needs to
be a Ack/Reviewed or somesuch.

> ---
> kernel/sched/core.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 51d7105..0ef1e69 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -2998,6 +2998,10 @@ unsigned long long task_sched_runtime(struct task_struct *p)
> * thread, breaking clock_gettime().
> */
> if (task_current(rq, p) && task_on_rq_queued(p)) {
> +#if defined(CONFIG_FAIR_GROUP_SCHED)

This here wants a comment on why we're doing this. Because I'm sure that
if someone were to read this code in a few weeks they'd go WTF!?

Also, is there a possibility of manual CSE we should do?

> + prefetch((&p->se)->cfs_rq->curr);
> + prefetch(&(&p->se)->cfs_rq->curr->exec_start);
> +#endif
> update_rq_clock(rq);
> p->sched_class->update_curr(rq);
> }
> --
> 2.6.6
>