[GIT PULL] workqueue changes for v3.11-rc1

From: Tejun Heo
Date: Mon Jul 01 2013 - 10:18:04 EST


Hello, Linus.

Surprisingly, Lai and I didn't break too many things implementing
custom pools and stuff last time around and there aren't any follow-up
changes necessary at this point.

The only change in this pull request is Viresh's patches to make some
per-cpu workqueues to behave as unbound workqueues dependent on a boot
param whose default can be configured via a config option. This leads
to higher processing overhead / lower bandwidth as more work items are
bounced across CPUs; however, it can lead to noticeable powersave in
certain configurations - ~10% w/ idlish constant workload on a
big.LITTLE configuration according to Viresh.

This is because per-cpu workqueues interfere with how the scheduler
perceives whether or not each CPU is idle by forcing pinned tasks on
them, which makes the scheduler's power-aware scheduling decisions
less effective.

Its effectiveness is likely less pronounced on homogenous
configurations and this type of optimization can probably be made
automatic; however, the changes are pretty minimal and the affected
workqueues are clearly marked, so it's an easy gain for some
configurations for the time being with pretty unintrusive changes.

The above changes are available in the following branch

git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-3.11

for you to fetch changes up to a85f1a41f020bc2c97611060bcfae6f48a1db28d:

fbcon: queue work on power efficient wq (2013-05-14 10:50:07 -0700)

----------------------------------------------------------------
Viresh Kumar (5):
workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues
workqueue: Add system wide power_efficient workqueues
PHYLIB: queue work on system_power_efficient_wq
block: queue work on power efficient wq
fbcon: queue work on power efficient wq

Documentation/kernel-parameters.txt | 15 +++++++++++++++
block/blk-core.c | 3 ++-
block/blk-ioc.c | 3 ++-
block/genhd.c | 12 ++++++++----
drivers/net/phy/phy.c | 9 +++++----
drivers/video/console/fbcon.c | 2 +-
include/linux/workqueue.h | 35 +++++++++++++++++++++++++++++++++++
kernel/power/Kconfig | 20 ++++++++++++++++++++
kernel/workqueue.c | 26 +++++++++++++++++++++++++-
9 files changed, 113 insertions(+), 12 deletions(-)

Thanks.

--
tejun
--
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/