[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1236615158.8389.705.camel@laptop>
Date: Mon, 09 Mar 2009 17:12:38 +0100
From: Peter Zijlstra <a.p.zijlstra@...llo.nl>
To: Mike Galbraith <efault@....de>
Cc: Ingo Molnar <mingo@...e.hu>, Balazs Scheidler <bazsi@...abit.hu>,
linux-kernel@...r.kernel.org, Willy Tarreau <w@....eu>
Subject: Re: [patch] Re: scheduler oddity [bug?]
On Mon, 2009-03-09 at 16:30 +0100, Mike Galbraith wrote:
> +static void put_prev_task(struct rq *rq, struct task_struct *prev)
> +{
> + if (prev->state == TASK_RUNNING) {
> + u64 runtime = prev->se.sum_exec_runtime;
> +
> + runtime -= prev->se.prev_sum_exec_runtime;
> + runtime = min_t(u64, runtime, 2*sysctl_sched_migration_cost);
> +
> + /*
> + * In order to avoid avg_overlap growing stale when we are
> + * indeed overlapping and hence not getting put to sleep, grow
> + * the avg_overlap on preemption.
> + */
> + update_avg(&prev->se.avg_overlap, runtime);
> + }
> + prev->sched_class->put_prev_task(rq, prev);
> +}
Right, so we both found it worked quite well, I'm still slightly puzzled
but it.
If something gets preempted a lot and will therefore have short runtimes
it will be seen as sync even though it might not at all be.
Then again, it its preempted that much, it won't be likely to obtain a
large cache footprint either...
hohumm
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists