[tg_shares_up rewrite v2 00/11] reducing overhead for tg->shares distribution

From: Paul Turner
Date: Wed Nov 10 2010 - 22:56:06 EST


This is v2 of the tg_shares_up re-write previously posted at:
http://lkml.org/lkml/2010/10/16/17

The key idea behind this patchset is an idea of Peter Zijlstra to compute
global loads as a function of local averages avoiding the cpu-cpu interactions
which previously plagued tg_shares_up.

Not much 'material' has changed since v1 since results seem favourable/stable.
The only functional change is a bug fix in the wake_affine path where the v1
was using the waking task's group shares at all levels instead of the per-level
task_group.

Changes:
sched-rework-tg_shares_up.patch
- use owning tg->shares value in effective_load
- remove redundant cfs_rq_of() in {enqueue,dequeue}_entity

sched-tg-add-shares_window_sysctl.patch
- update comment on sysctl interpretation

sched-tg-fix-update_cfs_load.patch
- update comment to reflect periods instead of foldings (more intuitive)

Some motivation again:
24 thread Intel box, 150 active cgroups, multiple threads/group, system load at ~90% (sample size=10s):
tip:
2.64% [k] tg_shares_up <!>
0.15% [k] __set_se_shares

patched:
0.02% [k] update_cfs_load
0.01% [k] update_cpu_load
0.00% [k] update_cfs_shares

Fairness coverage for the above at: http://rs5.risingnet.net/~pjt/patches/shares_data_v1.txt

Thanks,

- Paul

--

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/