Re: [accounting regression since rc1] scheduler updates

Christian Borntraeger
2007-08-22T07:52:30Z

Am Dienstag, 21. August 2007 schrieben Sie:
> could you try the patch below, does it work any better?

I looked again at the scheduler code and things are getting better when I run
the patch below on top of your patch and with our sched_clock prototype. I
guess there is a reason why you want rq->clock advanced by at least one tick?

We discussed calling scheduler_tick with virtual time as well.
Would it have the same result?
What would be the impact on latency?

After looking at the current s390 timer code, it seems that this kind of
change is not trivial enough to be rc3+ ready.
I personally think, that for 2.6.23 we should use the patch against
fs/proc/array.c and everything else for 2.6.24?

Christian

---
kernel/sched.c | 6 ------
1 file changed, 6 deletions(-)

Index: linux-2.6/kernel/sched.c
===================================================================
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -3321,15 +3321,9 @@ void scheduler_tick(void)
int cpu = smp_processor_id();
struct rq *rq = cpu_rq(cpu);
struct task_struct *curr = rq->curr;
- u64 next_tick = rq->tick_timestamp + TICK_NSEC;

spin_lock(&rq->lock);
__update_rq_clock(rq);
- /*
- * Let rq->clock advance by at least TICK_NSEC:
- */
- if (unlikely(rq->clock < next_tick))
- rq->clock = next_tick;
rq->tick_timestamp = rq->clock;
update_cpu_load(rq);
if (curr != rq->idle) /* FIXME: needed? */