Re: [ck] Re: SD still better than CFS for 3d ?(was Re: 2.6.23-rc1)

Ingo Molnar
2007-07-31T14:19:24Z

* Matthew Hawkins <darthmdh@gmail.com> wrote:

> On 7/31/07, Ingo Molnar <mingo@elte.hu> wrote:
> > * Kenneth Prugh <ken69267@gmail.com> wrote:
> > > CFS generally seemed a lot smoother as the load increased, while
> > > SD broke down to a highly unstable fps count that fluctuated
> > > massively around the third loop. Seems like I will stick to CFS
> > > for gaming now.
>
> My experience was quite similar. I noticed after launching the second
> loop that the FPS stuck down to 15 for about 20 seconds, then climbed
> back up to 48. After that it went rapidly downhill. This is similar
> to other benchmarks I've done of SD versus CFS in the past. At a
> "normal" load they're fairly similar but SD breaks down under
> pressure.

ok, thanks for testing it!

> The only other thing of interest is that the -ck kernel had the WM
> menus appear in about 3 seconds rather than 5-8 under the other two.

under what load is that - 10 loops? There's no disk or network IO going
on during a WM menu appearance, correct?

This could be a time-slicing difference perhaps - if you have
CONFIG_HZ=100 could you change it to 1000 (or if you have it at 1000,
could you change it to 100) - does it show any sensitivity to that?

the other difference could be SCHED_FEAT_START_DEBIT, does that WM menu
latency go down if you clear it from sched_features, i.e. to subtract 16
from sched_features:

echo 15 > /proc/sys/kernel/sched_features

to restore the default, do:

echo 31 > /proc/sys/kernel/sched_features

(if you have CONFIG_SCHED_DEBUG=y). You might also want to try changing
/proc/sys/kernel/sched_granularity_ns. Boundary conditions: make sure
that if you change the sched_granularity value you also set
/proc/sys/kernel/sched_runtime_limit_ns to 2*sched_granularity and set
/proc/sys/kernel/sched_wakeup_granularity_ns to sched_granularity/2.

Other interesting bits to experiment with in sched_features would be
SCHED_FEAT_FAIR_SLEEPERS (mask '1' in the bitmask) and
SCHED_FEAT_SKIP_INITIAL (mask '32' in the bitmask).

Ingo