Discussion:
[linux-lvm] how to set higher then 128 nr_requests on LV's
Pankaj Agarwal
2018-05-14 00:47:11 UTC
Permalink
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
#

Thanks,

Pankaj
Zdenek Kabelac
2018-05-14 14:21:38 UTC
Permalink
Post by Pankaj Agarwal
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
#
Hi

Lvm2 is 'logical volume manager' - so it really is just managing your metadata.

So you basically ask how you change this value for 'DM' device (managed by lvm2).

And IMHO my answer would be - you can't change this setting for DM device as
you use whatever comes from the layer bellow DM - so i.e. if you use PV as
/dev/sdb - you need to set this setting for your /dev/sdb device.

Regards

Zdenek
Mike Snitzer
2018-05-14 16:13:12 UTC
Permalink
On Sun, May 13 2018 at 8:47pm -0400,
Post by Pankaj Agarwal
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.

Mike
Mike Snitzer
2018-05-14 17:53:54 UTC
Permalink
On Mon, May 14 2018 at 12:13pm -0400,
Post by Mike Snitzer
On Sun, May 13 2018 at 8:47pm -0400,
Post by Pankaj Agarwal
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.
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:

[***@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
[***@thegoat ~]# cat /sys/block/nullb0/queue/nr_requests
128
[***@thegoat ~]# cat /sys/block/dm-0/queue/nr_requests
128
[***@thegoat ~]# echo 64 > /sys/block/nullb0/queue/nr_requests
[***@thegoat ~]# cat /sys/block/nullb0/queue/nr_requests
64
[***@thegoat ~]# cat /sys/block/dm-0/queue/nr_requests
128
[***@thegoat ~]# dmsetup suspend foo
[***@thegoat ~]# dmsetup resume foo
[***@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?
Pankaj Agarwal
2018-05-14 23:57:48 UTC
Permalink
Hannes,

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

thanks,

Pankaj
Post by Mike Snitzer
On Mon, May 14 2018 at 12:13pm -0400,
Post by Mike Snitzer
On Sun, May 13 2018 at 8:47pm -0400,
Post by Pankaj Agarwal
Hi,
How do i set the nr_request value for LV's as it's not writable
like other
Post by Mike Snitzer
Post by Pankaj Agarwal
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.
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
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nullb0 253:0 0 250G 0 disk
└─foo 252:0 0 250G 0 dm
128
128
64
128
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?
Mike Snitzer
2018-05-15 00:22:32 UTC
Permalink
_______________________________________________
linux-lvm mailing list
linux-***@redhat.com
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

Continue reading on narkive:
Search results for '[linux-lvm] how to set higher then 128 nr_requests on LV's' (Questions and Answers)
11
replies
How did the the Internet get started?
started 2007-02-11 06:06:14 UTC
trivia
Loading...