Re: [git] CFS-devel, group scheduler, fixes

From: Tong Li
Date: Mon Sep 24 2007 - 12:48:23 EST


On Mon, 24 Sep 2007, Peter Zijlstra wrote:

On Mon, 24 Sep 2007 13:22:14 +0200 Mike Galbraith <efault@xxxxxx> wrote:

On Mon, 2007-09-24 at 12:42 +0200, Mike Galbraith wrote:
On Mon, 2007-09-24 at 12:24 +0200, Peter Zijlstra wrote:

how about something like:

s64 delta = (s64)(vruntime - min_vruntime);
if (delta > 0)
min_vruntime += delta;

That would rid us of most of the funny conditionals there.

That still left me with negative min_vruntimes. The pinned hogs didn't
lock my box up, but I quickly got the below, so hastily killed it.

Shouldn't the max() in place_entity() be the max_vruntime() that my
lysdexia told me it was when I looked at it earlier? ;-)


probably, my tree doesn't have that max anymore so I'm not sure.


Last time I looked, I thought the max() in place_entity() was fine and the problem seemed to be in set_task_cpu() that was causing the negative vruntimes:

if (likely(new_rq->cfs.min_vruntime))
p->se.vruntime -= old_rq->cfs.min_vruntime -
new_rq->cfs.min_vruntime;

I think it's fine we get rid of sync_vruntime(). I need to think more about how to make global fairness work based on this--it seems to be more complicated than if we had sync_vruntime().

tong
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/