I mean how CPU time is distributed not only in the case of CPU hogs. For example, when 2 tasks do cyclic 1 byte transfer via pipe. one of them is awake, while another goes to sleep.I did this to the scheduler last year - see
http://marc.theaimsgroup.com/?l=linux-kernel&m=111404726721747&w=2
It's really interesting!
Have you tested fairness of your solution and it's performance overhead?
What do you mean by fairness, exactly?
As for its overhead, I just got it working inside UML. I tried it onIt's a pity... :( We have fair CPU scheduler in OpenVZ project, so it's quite an interesting approach for us.
x86_64, but something was wrong with the low-level switching stuff,
and the machine hung whenever a guest scheduler process tried to run.
So, I never got any real measurements.