Re: [PATCH 9/9] loop: allow user to set the queue depth

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bart,

On 6/22/21 4:27 PM, Bart Van Assche wrote:
> On 6/22/21 4:19 PM, Chaitanya Kulkarni wrote:
>> Instead of hardcoding queue depth allow user to set the hw queue depth
>> using module parameter. Set default value to 128 to retain the existing
>> behavior.
>>
>> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx>
>> ---
>>  drivers/block/loop.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/block/loop.c b/drivers/block/loop.c
>> index 6fc3cfa87598..c0d54ffd6ef3 100644
>> --- a/drivers/block/loop.c
>> +++ b/drivers/block/loop.c
>> @@ -1942,6 +1942,9 @@ module_param(max_loop, int, 0444);
>>  MODULE_PARM_DESC(max_loop, "Maximum number of loop devices");
>>  module_param(max_part, int, 0444);
>>  MODULE_PARM_DESC(max_part, "Maximum number of partitions per loop device");
>> +static int hw_queue_depth = 128;
>> +module_param_named(hw_queue_depth, hw_queue_depth, int, 0444);
>> +MODULE_PARM_DESC(hw_queue_depth, "Queue depth for each hardware queue. Default: 128");
>>  MODULE_LICENSE("GPL");
>>  MODULE_ALIAS_BLOCKDEV_MAJOR(LOOP_MAJOR);
>>  
>> @@ -2094,7 +2097,7 @@ static int loop_add(struct loop_device **l, int i)
>>  	err = -ENOMEM;
>>  	lo->tag_set.ops = &loop_mq_ops;
>>  	lo->tag_set.nr_hw_queues = 1;
>> -	lo->tag_set.queue_depth = 128;
>> +	lo->tag_set.queue_depth = hw_queue_depth;
>>  	lo->tag_set.numa_node = NUMA_NO_NODE;
>>  	lo->tag_set.cmd_size = sizeof(struct loop_cmd);
>>  	lo->tag_set.flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_STACKING;
> Is there any use case for which the performance improves by using
> another queue depth than the default?

Unfortunately I don't have access to all the applications so I can come
up with
quantitative data, I can try synthetic applications such as fio.

This patch is more on the side of allowing user to change the qd value
so they can
experiment, making loop qd flexible like other block drivers which loop
lacks right now.

> Thanks,
>
> Bart.
>
>
>





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux