[dm-devel] blk-mq request allocation stalls

Mike Snitzer snitzer at redhat.com
Mon Jan 12 18:19:49 UTC 2015


On Mon, Jan 12 2015 at 12:04pm -0500,
Bart Van Assche <bart.vanassche at sandisk.com> wrote:

> On 01/12/15 17:34, Jens Axboe wrote:
> > 
> > So that does look a bit off, we have (supposedly) 9 active requests, but 
> > nothing allocated. When the mkfs is done and things are idle, can you 
> > try and cat the 'active' file in the mq directory? I want to see if it 
> > drops to zero or stays elevated.
> 
> Hello Jens,
> 
> Sorry that I hadn't been more clear but the __bt_get() data in the
> previous e-mail was gathered when multipathd started instead of when
> mkfs was started. That was the time at which Mike's debug patch reported
> for the first time that __bt_get() returned -1. What is also remarkable
> is that all "__bt_get() returned -1" reports that I checked referred to
> the /dev/dm-0 device and none to any of the underlying devices
> (/dev/sd[cd]).

That cannot be, considering the request-based DM device (dm-0) isn't a
blk-mq device (so it never calls into __bt_get).

How did you draw that conclusion?

> The tag state after having stopped multipathd (systemctl stop
> multipathd) is as follows:
> # dmsetup table /dev/dm-0
> 0 256000 multipath 3 queue_if_no_path pg_init_retries 50 0 1 1
> service-time 0 2 2 8:48 1 1 8:32 1 1
> # ls -l /dev/sd[cd]
> brw-rw---- 1 root disk 8, 32 Jan 12 17:47 /dev/sdc
> brw-rw---- 1 root disk 8, 48 Jan 12 17:47 /dev/sdd
> # for d in sdc sdd dm-0; do echo ==== $d; (cd /sys/block/$d/mq &&
>   find|cut -c3-|grep active|xargs grep -aH ''); done
> ==== sdc
> 0/active:10
> 1/active:14
> 2/active:7
> 3/active:13
> 4/active:6
> 5/active:10
> ==== sdd
> 0/active:17
> 1/active:8
> 2/active:9
> 3/active:13
> 4/active:5
> 5/active:10
> ==== dm-0
> -bash: cd: /sys/block/dm-0/mq: No such file or directory

Confirms dm-0 isn't blk-mq device.  Making request-based DM use blk-mq
is certainly something I intend to look at.  But the current
dm-multipath is using old request-based queue (dm-0) in front of
underlying blk-mq devices (sdc, sdd) as the first step.




More information about the dm-devel mailing list