Re: [PATCH] [3/6] scheduler: Do devirtualization for sched_fair

Andi Kleen
2007-10-08T12:34:01Z

> hm, i'm not convinced about this one. It increases the code size a bit

Tiny bit (<200 bytes) and the wait_for/sleep_on refactor patch in the series
saves over 1K so I should have some room for code size increase. Overall
it will be still considerable smaller.

> and it's a sched.c local hack. If then this should be done on a generic
> infrastructure level - lots of other code (VFS, networking, etc.) could
> benefit from it i suspect - and then should be .configurable as well.

Unfortunately not -- for this to work (especially for inlining) requires to
#include files implementing the sub calls. Except for the scheduler that
is pretty uncommon unfortunately. Also the situation regarding which
call target is the common one is typically much less clear than with
sched_fair / other scheduling classes.

I considered making it generic, but I don't think it would make sense
at the current time.

Also most paths are not as time critical as the scheduler.

> Then the benefit might become measurable too.

It might have been measurable if the context switch was measurable at all.
Unfortunately the lmbench3 lat_ctx test I tired fluctuated by itself
over 50%. Ok I suppose it would be possible to instrument the kernel itself
to measure cycles. Would that convince you?

-Andi