* Bill Davidsen <davidsen@xxxxxxx> wrote:Doing this slows down the display rates, but doesn't significantly help the smoothness of the gears.
I've taken mainline git tree (freshly integrated CFS!) out for a multimedia spin. I tested watching movies and listenign to music in the presence of various sleep/burn loads, pure burn loads, and mixed loads. All was peachy here.. I saw no frame drops or sound skips or other artifacts under any load where the processor could possibly meet demand.I would agree with preliminary testing, save that if you get a lot of processes updating the screen at once, there seems to be a notable case of processes getting no CPU for 100-300ms, followed by a lot of CPU.
I see this clearly with the "glitch1" test with four scrolling xterms and glxgears, but also watching videos with little busy processes on the screen. The only version where I never see this in test or with real use is cfs-v13.
just as a test, does this go away if you:
renice -20 pidof `Xorg`
i.e. is this connected to the way X is scheduled?
Another thing to check would be whether it goes away if you set the granularity to some really finegrained value:I didn't test this with standard Xorg priority, I should go back and try that. But it didn't really make much difference. The gears and scrolling xterms ran slower with Xorg at -20 with any sched settings. I'll do that as soon as a build finishes and I can reboot.
echo 0 > /proc/sys/kernel/sched_wakeup_granularity_ns
echo 500000 > /proc/sys/kernel/sched_granularity_ns
this really pushes things - but it tests the theory whether this is related to granularity.
Ingo