linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V4 0/5] block: don't acquire .sysfs_lock before removing mq & iosched kobjects
@ 2019-08-27 11:01 Ming Lei
  2019-08-27 11:01 ` [PATCH V4 1/5] block: Remove blk_mq_register_dev() Ming Lei
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Ming Lei @ 2019-08-27 11:01 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Ming Lei, Christoph Hellwig, Hannes Reinecke,
	Greg KH, Mike Snitzer, Bart Van Assche, Damien Le Moal

Hi,

The 1st 3 patches cleans up current uses on q->sysfs_lock.

The 4th patch adds one helper for checking if queue is registered.

The last patch splits .sysfs_lock into two locks: one is only for
sync .store/.show from sysfs, the other one is for pretecting kobjects
registering/unregistering. Meantime avoid to acquire .sysfs_lock when
removing mq & iosched kobjects, so that the reported deadlock can
be fixed.

V4:
	- address comments from Bart
	- update comments, add comments about releasing sysfs_lock in elevator_switch_mq
	- fix a race in blk_register_queue by holding sysfs_lock for
	  emitting KOBJ_ADD
	- only the 5th patch is updated

V3:
	- drop the 4th patch in V2, which is wrong, meantime not necesary
	  for fixing this deadlock
	- replace comment with one WARN_ON_ONCE() in patch 2
	- add reviewed-by tag

V2:
	- remove several uses on .sysfs_lock
	- Remove blk_mq_register_dev()
	- add one helper for checking queue registered
	- split .sysfs_lock into two locks


Bart Van Assche (1):
  block: Remove blk_mq_register_dev()

Ming Lei (4):
  block: don't hold q->sysfs_lock in elevator_init_mq
  blk-mq: don't hold q->sysfs_lock in blk_mq_map_swqueue
  block: add helper for checking if queue is registered
  block: split .sysfs_lock into two locks

 block/blk-core.c       |  1 +
 block/blk-mq-sysfs.c   | 23 ++++----------
 block/blk-mq.c         |  7 -----
 block/blk-sysfs.c      | 50 +++++++++++++++++------------
 block/blk-wbt.c        |  2 +-
 block/blk.h            |  2 +-
 block/elevator.c       | 71 +++++++++++++++++++++++++++++++-----------
 include/linux/blk-mq.h |  1 -
 include/linux/blkdev.h |  2 ++
 9 files changed, 94 insertions(+), 65 deletions(-)

Cc: Christoph Hellwig <hch@infradead.org>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: Damien Le Moal <damien.lemoal@wdc.com>

-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-08-27 16:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-27 11:01 [PATCH V4 0/5] block: don't acquire .sysfs_lock before removing mq & iosched kobjects Ming Lei
2019-08-27 11:01 ` [PATCH V4 1/5] block: Remove blk_mq_register_dev() Ming Lei
2019-08-27 11:01 ` [PATCH V4 2/5] block: don't hold q->sysfs_lock in elevator_init_mq Ming Lei
2019-08-27 11:01 ` [PATCH V4 3/5] blk-mq: don't hold q->sysfs_lock in blk_mq_map_swqueue Ming Lei
2019-08-27 11:01 ` [PATCH V4 4/5] block: add helper for checking if queue is registered Ming Lei
2019-08-27 11:01 ` [PATCH V4 5/5] block: split .sysfs_lock into two locks Ming Lei
2019-08-27 16:37   ` Bart Van Assche
2019-08-27 16:40 ` [PATCH V4 0/5] block: don't acquire .sysfs_lock before removing mq & iosched kobjects Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).