All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <Bart.VanAssche@wdc.com>
To: "snitzer@redhat.com" <snitzer@redhat.com>,
	"axboe@kernel.dk" <axboe@kernel.dk>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"tom.leiming@gmail.com" <tom.leiming@gmail.com>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	"djeffery@redhat.com" <djeffery@redhat.com>
Subject: Re: [for-4.16 PATCH v5 0/4] block/dm: allow DM to defer blk_register_queue() until ready
Date: Mon, 15 Jan 2018 17:16:53 +0000	[thread overview]
Message-ID: <1516036612.10386.2.camel@wdc.com> (raw)
In-Reply-To: <20180112150606.6037-1-snitzer@redhat.com>

On Fri, 2018-01-12 at 10:06 -0500, Mike Snitzer wrote:
> I'm submitting this v5 with more feeling now ;)

Hello Mike,

Have these patches been tested with lockdep enabled? The following appeared in
the kernel log when after I started testing Jens' for-next tree of this morning:

======================================================
WARNING: possible circular locking dependency detected
4.15.0-rc7-dbg+ #1 Not tainted
------------------------------------------------------
02-mq/1211 is trying to acquire lock:
 (&q->sysfs_lock){+.+.}, at: [<000000008b65bdad>] queue_attr_store+0x35/0x80

but task is already holding lock:
 (kn->count#213){++++}, at: [<000000007a18ad18>] kernfs_fop_write+0xe5/0x190

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (kn->count#213){++++}:
       kernfs_remove+0x1a/0x30
       kobject_del.part.3+0xe/0x40
       blk_unregister_queue+0xa7/0xe0
       del_gendisk+0x12f/0x260
       sd_remove+0x58/0xc0 [sd_mod]
       device_release_driver_internal+0x15a/0x220
       bus_remove_device+0xf4/0x170
       device_del+0x12f/0x330
       __scsi_remove_device+0xef/0x120 [scsi_mod]
       scsi_forget_host+0x1b/0x60 [scsi_mod]
       scsi_remove_host+0x6f/0x110 [scsi_mod]
       0xffffffffc09ed6e4
       process_one_work+0x21c/0x6d0
       worker_thread+0x35/0x380
       kthread+0x117/0x130
       ret_from_fork+0x24/0x30

-> #0 (&q->sysfs_lock){+.+.}:
       __mutex_lock+0x6c/0x9e0
       queue_attr_store+0x35/0x80
       kernfs_fop_write+0x109/0x190
       __vfs_write+0x1e/0x130
       vfs_write+0xb9/0x1b0
       SyS_write+0x40/0xa0
       entry_SYSCALL_64_fastpath+0x23/0x9a

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(kn->count#213);
                               lock(&q->sysfs_lock);
                               lock(kn->count#213);
  lock(&q->sysfs_lock);

 *** DEADLOCK ***

3 locks held by 02-mq/1211:
 #0:  (sb_writers#6){.+.+}, at: [<00000000afdb61d3>] vfs_write+0x17f/0x1b0
 #1:  (&of->mutex){+.+.}, at: [<00000000b291cabb>] kernfs_fop_write+0xdd/0x190
 #2:  (kn->count#213){++++}, at: [<000000007a18ad18>] kernfs_fop_write+0xe5/0x190

stack backtrace:
CPU: 2 PID: 1211 Comm: 02-mq Not tainted 4.15.0-rc7-dbg+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
Call Trace:
 dump_stack+0x85/0xbf
 print_circular_bug.isra.35+0x1d7/0x1e4
 __lock_acquire+0x12af/0x1370
 ? lock_acquire+0xa8/0x230
 lock_acquire+0xa8/0x230
 ? queue_attr_store+0x35/0x80
 ? queue_attr_store+0x35/0x80
 __mutex_lock+0x6c/0x9e0
 ? queue_attr_store+0x35/0x80
 ? kernfs_fop_write+0xdd/0x190
 ? __mutex_lock+0x6c/0x9e0
 ? __mutex_lock+0x3d0/0x9e0
 ? lock_acquire+0xa8/0x230
 ? __lock_is_held+0x55/0x90
 ? queue_attr_store+0x35/0x80
 queue_attr_store+0x35/0x80
 kernfs_fop_write+0x109/0x190
 __vfs_write+0x1e/0x130
 ? rcu_read_lock_sched_held+0x66/0x70
 ? rcu_sync_lockdep_assert+0x23/0x50
 ? __sb_start_write+0x152/0x1f0
 ? __sb_start_write+0x168/0x1f0
 vfs_write+0xb9/0x1b0
 SyS_write+0x40/0xa0
 entry_SYSCALL_64_fastpath+0x23/0x9a
RIP: 0033:0x7fab8be8d054
RSP: 002b:00007ffd39f0def8 EFLAGS: 00000246

Thanks,

Bart.

WARNING: multiple messages have this Message-ID (diff)
From: Bart Van Assche <Bart.VanAssche@wdc.com>
To: "snitzer@redhat.com" <snitzer@redhat.com>,
	"axboe@kernel.dk" <axboe@kernel.dk>
Cc: "dm-devel@redhat.com" <dm-devel@redhat.com>,
	"hare@suse.de" <hare@suse.de>,
	"tom.leiming@gmail.com" <tom.leiming@gmail.com>,
	"djeffery@redhat.com" <djeffery@redhat.com>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Subject: Re: [for-4.16 PATCH v5 0/4] block/dm: allow DM to defer blk_register_queue() until ready
Date: Mon, 15 Jan 2018 17:16:53 +0000	[thread overview]
Message-ID: <1516036612.10386.2.camel@wdc.com> (raw)
In-Reply-To: <20180112150606.6037-1-snitzer@redhat.com>

T24gRnJpLCAyMDE4LTAxLTEyIGF0IDEwOjA2IC0wNTAwLCBNaWtlIFNuaXR6ZXIgd3JvdGU6DQo+
IEknbSBzdWJtaXR0aW5nIHRoaXMgdjUgd2l0aCBtb3JlIGZlZWxpbmcgbm93IDspDQoNCkhlbGxv
IE1pa2UsDQoNCkhhdmUgdGhlc2UgcGF0Y2hlcyBiZWVuIHRlc3RlZCB3aXRoIGxvY2tkZXAgZW5h
YmxlZD8gVGhlIGZvbGxvd2luZyBhcHBlYXJlZCBpbg0KdGhlIGtlcm5lbCBsb2cgd2hlbiBhZnRl
ciBJIHN0YXJ0ZWQgdGVzdGluZyBKZW5zJyBmb3ItbmV4dCB0cmVlIG9mIHRoaXMgbW9ybmluZzoN
Cg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQpXQVJOSU5HOiBwb3NzaWJsZSBjaXJjdWxhciBsb2NraW5nIGRlcGVuZGVuY3kgZGV0ZWN0ZWQN
CjQuMTUuMC1yYzctZGJnKyAjMSBOb3QgdGFpbnRlZA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQowMi1tcS8xMjExIGlzIHRyeWluZyB0byBh
Y3F1aXJlIGxvY2s6DQogKCZxLT5zeXNmc19sb2NrKXsrLisufSwgYXQ6IFs8MDAwMDAwMDA4YjY1
YmRhZD5dIHF1ZXVlX2F0dHJfc3RvcmUrMHgzNS8weDgwDQoNCmJ1dCB0YXNrIGlzIGFscmVhZHkg
aG9sZGluZyBsb2NrOg0KIChrbi0+Y291bnQjMjEzKXsrKysrfSwgYXQ6IFs8MDAwMDAwMDA3YTE4
YWQxOD5dIGtlcm5mc19mb3Bfd3JpdGUrMHhlNS8weDE5MA0KDQp3aGljaCBsb2NrIGFscmVhZHkg
ZGVwZW5kcyBvbiB0aGUgbmV3IGxvY2suDQoNCg0KdGhlIGV4aXN0aW5nIGRlcGVuZGVuY3kgY2hh
aW4gKGluIHJldmVyc2Ugb3JkZXIpIGlzOg0KDQotPiAjMSAoa24tPmNvdW50IzIxMyl7KysrK306
DQogICAgICAga2VybmZzX3JlbW92ZSsweDFhLzB4MzANCiAgICAgICBrb2JqZWN0X2RlbC5wYXJ0
LjMrMHhlLzB4NDANCiAgICAgICBibGtfdW5yZWdpc3Rlcl9xdWV1ZSsweGE3LzB4ZTANCiAgICAg
ICBkZWxfZ2VuZGlzaysweDEyZi8weDI2MA0KICAgICAgIHNkX3JlbW92ZSsweDU4LzB4YzAgW3Nk
X21vZF0NCiAgICAgICBkZXZpY2VfcmVsZWFzZV9kcml2ZXJfaW50ZXJuYWwrMHgxNWEvMHgyMjAN
CiAgICAgICBidXNfcmVtb3ZlX2RldmljZSsweGY0LzB4MTcwDQogICAgICAgZGV2aWNlX2RlbCsw
eDEyZi8weDMzMA0KICAgICAgIF9fc2NzaV9yZW1vdmVfZGV2aWNlKzB4ZWYvMHgxMjAgW3Njc2lf
bW9kXQ0KICAgICAgIHNjc2lfZm9yZ2V0X2hvc3QrMHgxYi8weDYwIFtzY3NpX21vZF0NCiAgICAg
ICBzY3NpX3JlbW92ZV9ob3N0KzB4NmYvMHgxMTAgW3Njc2lfbW9kXQ0KICAgICAgIDB4ZmZmZmZm
ZmZjMDllZDZlNA0KICAgICAgIHByb2Nlc3Nfb25lX3dvcmsrMHgyMWMvMHg2ZDANCiAgICAgICB3
b3JrZXJfdGhyZWFkKzB4MzUvMHgzODANCiAgICAgICBrdGhyZWFkKzB4MTE3LzB4MTMwDQogICAg
ICAgcmV0X2Zyb21fZm9yaysweDI0LzB4MzANCg0KLT4gIzAgKCZxLT5zeXNmc19sb2NrKXsrLisu
fToNCiAgICAgICBfX211dGV4X2xvY2srMHg2Yy8weDllMA0KICAgICAgIHF1ZXVlX2F0dHJfc3Rv
cmUrMHgzNS8weDgwDQogICAgICAga2VybmZzX2ZvcF93cml0ZSsweDEwOS8weDE5MA0KICAgICAg
IF9fdmZzX3dyaXRlKzB4MWUvMHgxMzANCiAgICAgICB2ZnNfd3JpdGUrMHhiOS8weDFiMA0KICAg
ICAgIFN5U193cml0ZSsweDQwLzB4YTANCiAgICAgICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRo
KzB4MjMvMHg5YQ0KDQpvdGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOg0K
DQogUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86DQoNCiAgICAgICBDUFUwICAgICAg
ICAgICAgICAgICAgICBDUFUxDQogICAgICAgLS0tLSAgICAgICAgICAgICAgICAgICAgLS0tLQ0K
ICBsb2NrKGtuLT5jb3VudCMyMTMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2soJnEtPnN5c2ZzX2xvY2spOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2so
a24tPmNvdW50IzIxMyk7DQogIGxvY2soJnEtPnN5c2ZzX2xvY2spOw0KDQogKioqIERFQURMT0NL
ICoqKg0KDQozIGxvY2tzIGhlbGQgYnkgMDItbXEvMTIxMToNCiAjMDogIChzYl93cml0ZXJzIzYp
ey4rLit9LCBhdDogWzwwMDAwMDAwMGFmZGI2MWQzPl0gdmZzX3dyaXRlKzB4MTdmLzB4MWIwDQog
IzE6ICAoJm9mLT5tdXRleCl7Ky4rLn0sIGF0OiBbPDAwMDAwMDAwYjI5MWNhYmI+XSBrZXJuZnNf
Zm9wX3dyaXRlKzB4ZGQvMHgxOTANCiAjMjogIChrbi0+Y291bnQjMjEzKXsrKysrfSwgYXQ6IFs8
MDAwMDAwMDA3YTE4YWQxOD5dIGtlcm5mc19mb3Bfd3JpdGUrMHhlNS8weDE5MA0KDQpzdGFjayBi
YWNrdHJhY2U6DQpDUFU6IDIgUElEOiAxMjExIENvbW06IDAyLW1xIE5vdCB0YWludGVkIDQuMTUu
MC1yYzctZGJnKyAjMQ0KSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsg
UElJWCwgMTk5NiksIEJJT1MgMS4wLjAtcHJlYnVpbHQucWVtdS1wcm9qZWN0Lm9yZyAwNC8wMS8y
MDE0DQpDYWxsIFRyYWNlOg0KIGR1bXBfc3RhY2srMHg4NS8weGJmDQogcHJpbnRfY2lyY3VsYXJf
YnVnLmlzcmEuMzUrMHgxZDcvMHgxZTQNCiBfX2xvY2tfYWNxdWlyZSsweDEyYWYvMHgxMzcwDQog
PyBsb2NrX2FjcXVpcmUrMHhhOC8weDIzMA0KIGxvY2tfYWNxdWlyZSsweGE4LzB4MjMwDQogPyBx
dWV1ZV9hdHRyX3N0b3JlKzB4MzUvMHg4MA0KID8gcXVldWVfYXR0cl9zdG9yZSsweDM1LzB4ODAN
CiBfX211dGV4X2xvY2srMHg2Yy8weDllMA0KID8gcXVldWVfYXR0cl9zdG9yZSsweDM1LzB4ODAN
CiA/IGtlcm5mc19mb3Bfd3JpdGUrMHhkZC8weDE5MA0KID8gX19tdXRleF9sb2NrKzB4NmMvMHg5
ZTANCiA/IF9fbXV0ZXhfbG9jaysweDNkMC8weDllMA0KID8gbG9ja19hY3F1aXJlKzB4YTgvMHgy
MzANCiA/IF9fbG9ja19pc19oZWxkKzB4NTUvMHg5MA0KID8gcXVldWVfYXR0cl9zdG9yZSsweDM1
LzB4ODANCiBxdWV1ZV9hdHRyX3N0b3JlKzB4MzUvMHg4MA0KIGtlcm5mc19mb3Bfd3JpdGUrMHgx
MDkvMHgxOTANCiBfX3Zmc193cml0ZSsweDFlLzB4MTMwDQogPyByY3VfcmVhZF9sb2NrX3NjaGVk
X2hlbGQrMHg2Ni8weDcwDQogPyByY3Vfc3luY19sb2NrZGVwX2Fzc2VydCsweDIzLzB4NTANCiA/
IF9fc2Jfc3RhcnRfd3JpdGUrMHgxNTIvMHgxZjANCiA/IF9fc2Jfc3RhcnRfd3JpdGUrMHgxNjgv
MHgxZjANCiB2ZnNfd3JpdGUrMHhiOS8weDFiMA0KIFN5U193cml0ZSsweDQwLzB4YTANCiBlbnRy
eV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MjMvMHg5YQ0KUklQOiAwMDMzOjB4N2ZhYjhiZThkMDU0
DQpSU1A6IDAwMmI6MDAwMDdmZmQzOWYwZGVmOCBFRkxBR1M6IDAwMDAwMjQ2DQoNClRoYW5rcywN
Cg0KQmFydC4=

  parent reply	other threads:[~2018-01-15 17:16 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-12 15:06 [for-4.16 PATCH v5 0/4] block/dm: allow DM to defer blk_register_queue() until ready Mike Snitzer
2018-01-12 15:06 ` [for-4.16 PATCH v5 1/4] block: only bdi_unregister() in del_gendisk() if !GENHD_FL_HIDDEN Mike Snitzer
2018-01-12 15:06 ` [for-4.16 PATCH v5 2/4] block: properly protect the 'queue' kobj in blk_unregister_queue Mike Snitzer
2018-01-12 15:17   ` Ming Lei
2018-01-12 15:29     ` Mike Snitzer
2018-01-12 16:03   ` [for-4.16 PATCH v6 " Mike Snitzer
2018-01-13 12:57     ` Ming Lei
2018-01-12 15:06 ` [for-4.16 PATCH v5 3/4] block: allow gendisk's request_queue registration to be deferred Mike Snitzer
2018-01-12 15:06 ` [for-4.16 PATCH v5 4/4] dm: fix incomplete request_queue initialization Mike Snitzer
2018-01-12 16:13 ` [for-4.16 PATCH v5 0/4] block/dm: allow DM to defer blk_register_queue() until ready Mike Snitzer
2018-01-15 17:16 ` Bart Van Assche [this message]
2018-01-15 17:16   ` Bart Van Assche
2018-01-15 17:29   ` Mike Snitzer
2018-01-15 17:36     ` Bart Van Assche
2018-01-15 17:36       ` Bart Van Assche
2018-01-15 17:48       ` Mike Snitzer
2018-01-15 17:51         ` Bart Van Assche
2018-01-15 17:51           ` Bart Van Assche
2018-01-15 17:57           ` Mike Snitzer
2018-01-15 22:15   ` Mike Snitzer
2018-01-15 22:51     ` Bart Van Assche
2018-01-15 22:51       ` Bart Van Assche
2018-01-15 23:10       ` Mike Snitzer
2018-01-15 23:13         ` Mike Snitzer
2018-01-16  2:21           ` Ming Lei
2018-01-16 18:19           ` Bart Van Assche
2018-01-16 18:19             ` Bart Van Assche

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1516036612.10386.2.camel@wdc.com \
    --to=bart.vanassche@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=djeffery@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=linux-block@vger.kernel.org \
    --cc=snitzer@redhat.com \
    --cc=tom.leiming@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.