Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS]

Andi Kleen
2007-04-16T21:21:58Z

> actually, i designed the CFS code assuming a per-CPU TSC (with no global
> synchronization), not assuming any globally sync TSC. In fact i wrote it

That already worked in the old scheduler (just in a hackish way)

> on such systems: a CoreDuo2 box that has stops the TSC in C3 and the
> different cores have wildly different TSC values and a dual-core
> Athlon64 that quickly drifts its TSC. So i'll keep the sched_clock()
> change for now.

The problem is not CPU synchronized TSC, but TSC with varying frequency
on a single CPU like on the A64.

The old implementation can lose really badly on that because it mixes
measurements at different frequencies together without individual scaling.

The error gets worse the longer the system runs.

>> BTW with all this CPU time measurement it would be really nice to
>> report it to the user too. It seems a bit bizarre that the scheduler
>> keeps track of ns, but top only knows jiffies with large sampling
>> errors.

> yeah - i'll fix that too if someone doesnt beat me at it.

I've been pondering for some time if doubling the NMI watchdog as a
ring 0 counter for this is worth it. So far I'm still undecided
(and it's moot now since it's disabled by default :/)

-Andi