[GIT PULL] async changes for 3.9-rc1

From: Tejun Heo
Date: Tue Feb 19 2013 - 13:07:31 EST

Hello, Linus.

These are followups for the earlier deadlock issue involving async
ending up waiting for itself through block requesting module[1]. The
following changes are made by these commits.

* Instead of requesting default elevator on each request_queue init,
block now requests it once early during boot.

* Kmod triggers warning if invoked from an async worker.

* Async synchronization implementation has been reimplemented. It's a
lot simpler now.

This branch depends on wq/for-3.9 for current_is_async() and this pull
request assumes that wq/for-3.9 is already pulled in. It also
contains a pull from 3.8-rc4 to base async synchronization
reimplementation on top of async fixes there.

The changes are available in the following git branch

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

for you to fetch changes up to a0327ff0eda915be623658babacef706099c11a8:

async: initialise list heads to fix crash (2013-01-25 09:14:48 -0800)

James Hogan (1):
async: initialise list heads to fix crash

Tejun Heo (8):
init, block: try to load default elevator module early during boot
block: don't request module during elevator init
async, kmod: warn on synchronous request_module() from async workers
Merge branch 'master' into for-3.9-async
async: bring sanity to the use of words domain and running
async: use ULLONG_MAX for infinity cookie value
async: keep pending tasks on async_domain and remove async_pending
async: replace list of active domains with global list of pending items

block/elevator.c | 35 +++++++--
include/linux/async.h | 10 +--
include/linux/elevator.h | 5 ++
include/linux/init.h | 1 +
init/do_mounts_initrd.c | 3 +
init/initramfs.c | 8 +-
init/main.c | 16 ++++
kernel/async.c | 167 ++++++++++++++++++-----------------------
kernel/kmod.c | 9 +++
kernel/sched/core.c | 2 +-
kernel/workqueue.c | 178 +++++++++++++++++---------------------------
kernel/workqueue_internal.h | 66 ++++++++++++++++
kernel/workqueue_sched.h | 9 ---
13 files changed, 280 insertions(+), 229 deletions(-)
create mode 100644 kernel/workqueue_internal.h
delete mode 100644 kernel/workqueue_sched.h



[1] http://thread.gmane.org/gmane.linux.kernel/1420814
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/