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

From: Tejun Heo
Date: Wed Dec 10 2014 - 11:41:26 EST


Hello,

Work items which may be involved in memory reclaim path may be
executed by the rescuer under memory pressure. When a rescuer gets
activated, it processes whatever are on the pending list and then goes
back to sleep until the manager kicks it again which involves 100ms
delay. This is problematic for self-requeueing work items or the ones
running on ordered workqueues as there always is only one work item on
the pending list when the rescuer kicks in. The execution of that
work item produces more to execute but the rescuer won't see them
until after the said 100ms has passed, so such workqueues would only
execute one work item every 100ms under prolonged memory pressure,
which BTW may be being prolonged due to the slow execution.

Neil wrote up a patch which fixes this issue by keeping the rescuer
working as long as the target workqueue is busy but doesn't have
enough workers.

Thanks.

The following changes since commit cac7f2429872d3733dc3f9915857b1691da2eb2f:

Linux 3.18-rc2 (2014-10-26 16:48:41 -0700)

are available in the git repository at:

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

for you to fetch changes up to 008847f66c38712f2819cd956969519006ebc11d:

workqueue: allow rescuer thread to do more work. (2014-12-08 12:39:16 -0500)

----------------------------------------------------------------
NeilBrown (1):
workqueue: allow rescuer thread to do more work.

Tejun Heo (2):
workqueue: cosmetic update in rescuer_thread()
workqueue: invert the order between pool->lock and wq_mayday_lock

kernel/workqueue.c | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)

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