Re: [patch 00/16] CFS Bandwidth Control v7

Ingo Molnar
2011-07-05T08:53:19Z

* Ingo Molnar <mingo@elte.hu> wrote:

>
> * Hu Tao <hutao@cn.fujitsu.com> wrote:
>
> > perf diff output:
> >
> > # Baseline Delta Shared Object Symbol
> > # ........ .......... ................. ...........................
> > #
> > 0.00% +10.07% [kernel.kallsyms] [k] __lock_acquire
> > 0.00% +5.90% [kernel.kallsyms] [k] lock_release
> > 0.00% +4.86% [kernel.kallsyms] [k] trace_hardirqs_off_caller
> > 0.00% +4.06% [kernel.kallsyms] [k] debug_smp_processor_id
> > 0.00% +4.00% [kernel.kallsyms] [k] lock_acquire
> > 0.00% +3.81% [kernel.kallsyms] [k] lock_acquired
> > 0.00% +3.71% [kernel.kallsyms] [k] lock_is_held
> > 0.00% +3.04% [kernel.kallsyms] [k] validate_chain
> > 0.00% +2.68% [kernel.kallsyms] [k] check_chain_key
> > 0.00% +2.41% [kernel.kallsyms] [k] trace_hardirqs_off
> > 0.00% +2.01% [kernel.kallsyms] [k] trace_hardirqs_on_caller
>
> Oh, please measure with lockdep (CONFIG_PROVE_LOCKING) turned off. No
> production kernel has it enabled and it has quite some overhead (as
> visible in the profile), skewing results.
>
> > 2.04% -0.09% pipe-test-100k [.] main
> > 0.00% +1.79% [kernel.kallsyms] [k] add_preempt_count
>
> I'd also suggest to turn off CONFIG_PREEMPT_DEBUG.

The best way to get a good 'reference config' to measure scheduler
overhead on do something like:

make defconfig
make localyesconfig

The first step will configure a sane default kernel, the second one
will enable all drivers that are needed on that box. You should be
able to boot the resulting bzImage and all drivers should be built-in
and are easily profilable.

Thanks,

Ingo