[linux-lvm] how to set higher then 128 nr_requests on LV's

Pankaj Agarwal pankaj at releasemanager.in
Mon May 14 23:57:48 UTC 2018


Hannes,

While you are working on the feature code, is there a sequence of system
commands I can use ?

thanks,

Pankaj



On Mon, May 14, 2018 at 1:53 PM, Mike Snitzer <snitzer at redhat.com> wrote:

> On Mon, May 14 2018 at 12:13pm -0400,
> Mike Snitzer <snitzer at redhat.com> wrote:
>
> > On Sun, May 13 2018 at  8:47pm -0400,
> > Pankaj Agarwal <pankaj at releasemanager.in> wrote:
> >
> > >    Hi,
> > >    How do i set the nr_request value for LV's as it's not writable
> like other
> > >    drives on a linux system.
> > >    LV's are set as dm-0 and dm-1 on my system.
> > >     #cat /sys/block/dm-0/queue/nr_requests
> > >    128
> > >    # echo 256 > /sys/block/dm-0/queue/nr_requests
> > >    -bash: echo: write error: Invalid argument
> >
> > In the block layer, bio-based devices cannot have their nr_requests
> > changed, see: block/blk-sysfs.c:queue_requests_store()
> >
> > So any bio-based DM device (e.g. linear target) won't be allowed to
> > change nr_requests.
> >
> > The only way to change this would be from the bottom up:
> > 1) change the underlying request-based device(s) (e.g. /dev/sda)
> > 2) dmsetup suspend + dmsetup resume any bio-based DM device(s) that are
> >    stacked ontop of the request-based device(s) you changed in 1)
> >    -- this will restack the queue_limits from the bottom up; so the DM
> >    device will then reflect the underlying devices' limits.
>
> I was mistaken.  DM core (in the kernel) will only restack the
> queue_limits (nr_requests included) if a new DM table is loaded.
>
> So a simple suspend+resume will _not_ change the bio-based DM device's
> queue_limits:
>
> [root at thegoat ~]# lsblk /dev/nullb0
> NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
> nullb0 253:0    0  250G  0 disk
> └─foo  252:0    0  250G  0 dm
> [root at thegoat ~]# cat /sys/block/nullb0/queue/nr_requests
> 128
> [root at thegoat ~]# cat /sys/block/dm-0/queue/nr_requests
> 128
> [root at thegoat ~]# echo 64 > /sys/block/nullb0/queue/nr_requests
> [root at thegoat ~]# cat /sys/block/nullb0/queue/nr_requests
> 64
> [root at thegoat ~]# cat /sys/block/dm-0/queue/nr_requests
> 128
> [root at thegoat ~]# dmsetup suspend foo
> [root at thegoat ~]# dmsetup resume foo
> [root at thegoat ~]# cat /sys/block/dm-0/queue/nr_requests
> 128
>
> There was some related work started in this area by Hannes (now cc'd)
> during LSF last month.  He added a chain-notifier to DM devices so that
> if any underlying devices (devices referenced in a DM device's table)
> were changed then the enture device stack would have its limits
> reloaded.
>
> Not sure where Hannes ended up with that.  Would love to get it polished
> now and staged for 4.18 inclusion.
>
> Hannes?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/linux-lvm/attachments/20180514/76688208/attachment.htm>


More information about the linux-lvm mailing list