On Mon, 01 Feb, at 09:37:06AM, Mel Gorman wrote:
> Changelog since V2
> o Print stats that are not related to schedstat
> o Reintroduce a static inline for update_stats_dequeue
> 
> Changelog since V1
> o Introduce schedstat_enabled and address Ingo's feedback
> o More schedstat-only paths eliminated, particularly ttwu_stat
> 
> schedstats is very useful during debugging and performance tuning but it
> incurs overhead. As such, even though it can be disabled at build time,
> it is often enabled as the information is useful.  This patch adds a
> kernel command-line and sysctl tunable to enable or disable schedstats on
> demand. It is disabled by default as someone who knows they need it can
> also learn to enable it when necessary.
> 
> The benefits are workload-dependent but when it gets down to it, the
> difference will be whether cache misses are incurred updating the shared
> stats or not. These measurements were taken from a 48-core 2-socket machine
> with Xeon(R) E5-2670 v3 cpus although they were also tested on a single
> socket machine 8-core machine with Intel i7-3770 processors.
 
[...]
 
> The gain is small but it'll depend on the CPU and the workload whether
> this patch makes a different.  However, it stands to reason that doing
> less work in the scheduler is a good thing. The downside is that the
> lack of schedstats and tracepoints will be surprising to experts doing
> performance analysis until they find the existance of the schedstats=
> parameter or schedstats sysctl.
> 
> Signed-off-by: Mel Gorman <[email protected]>
> ---
>  Documentation/kernel-parameters.txt |   5 ++
>  Documentation/sysctl/kernel.txt     |   8 +++
>  include/linux/sched/sysctl.h        |   4 ++
>  kernel/sched/core.c                 |  62 +++++++++++++++++++++-
>  kernel/sched/debug.c                | 102 
> +++++++++++++++++++-----------------
>  kernel/sched/fair.c                 |  90 +++++++++++++++++++------------
>  kernel/sched/sched.h                |   1 +
>  kernel/sched/stats.h                |   8 +--
>  kernel/sysctl.c                     |  11 ++++
>  9 files changed, 204 insertions(+), 87 deletions(-)

Reviewed-by: Matt Fleming <[email protected]>

Reply via email to