linux-stable-rt/block
Vivek Goyal 450adcbe51 blk-throttle: Do not use kblockd workqueue for throtl work
o Dominik Klein reported a system hang issue while doing some blkio
  throttling testing.

  https://lkml.org/lkml/2011/2/24/173

o Some tracing revealed that CFQ was not dispatching any more jobs as
  queue unplug was not happening. And queue unplug was not happening
  because unplug work was not being called as there was one throttling
  work on same cpu which as not finished yet. And throttling work had not
  finished as it was tyring to dispatch a bio to CFQ but all the request
  descriptors were consume to it was put to sleep.

o So basically it is a cyclic dependecny between CFQ unplug work and
  throtl dispatch work. Tejun suggested that use separate workqueue for
  such cases.

o This patch uses a separate workqueue for throttle related work and
  does not rely on kblockd workqueue anymore.

Cc: stable@kernel.org
Reported-by: Dominik Klein <dk@in-telegence.net>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2011-03-01 13:41:53 -05:00
..
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Kconfig.iosched
Makefile
blk-cgroup.c blk-cgroup: Allow creation of hierarchical cgroups 2010-11-15 19:37:36 +01:00
blk-cgroup.h
blk-core.c blk-throttle: Do not use kblockd workqueue for throtl work 2011-03-01 13:41:53 -05:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c block: Clean up exit_io_context() source code. 2010-12-21 15:07:45 +01:00
blk-iopoll.c
blk-lib.c
blk-map.c block: check for proper length of iov entries earlier in blk_rq_map_user_iov() 2010-11-29 10:04:50 +01:00
blk-merge.c Merge branch 'for-2.6.38/core' of git://git.kernel.dk/linux-2.6-block 2011-01-13 10:45:01 -08:00
blk-settings.c block: max hardware sectors limit wrapper 2010-12-17 08:36:01 +01:00
blk-softirq.c
blk-sysfs.c block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead 2010-12-17 08:35:53 +01:00
blk-tag.c
blk-throttle.c blk-throttle: Do not use kblockd workqueue for throtl work 2011-03-01 13:41:53 -05:00
blk-timeout.c
blk.h
bsg.c [SCSI] bsg: correct fault if queue object removed while dev_t open 2010-12-09 09:41:14 -06:00
cfq-iosched.c cfq-iosched: Don't wait if queue already has requests. 2011-02-09 14:22:36 +01:00
cfq.h
compat_ioctl.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
deadline-iosched.c
elevator.c block: remove REQ_HARDBARRIER 2010-11-10 14:54:09 +01:00
genhd.c Fix over-zealous flush_disk when changing device size. 2011-02-24 17:25:47 +11:00
ioctl.c block: fix refcounting in BLKBSZSET 2011-02-24 08:54:21 -08:00
noop-iosched.c
scsi_ioctl.c block: take care not to overflow when calculating total iov length 2010-11-10 14:40:42 +01:00