Re: [PATCH v3 6/6] nbd: add nr_hw_queues module parameter for pre-created devices

yangerkun <[email protected]>
Newsgroups org.kernel.vger.linux-block
Message-ID <[email protected]>

在 2026/7/22 11:53, yu kuai 写道:
> Hi,
> 
> 在 2026/7/13 14:56, Yang Erkun 写道:
>> Previous commit can help remove all freeze for netlink newly created nbd
>> device. But for the devices pre-created at module load(nbds_max default
>> as 16), the nr_hw_queues was setting default as 1, then ioctl/netlink
>> path will set the real connection count, and blk_mq_update_nr_hw_queues
>> in nbd_start_device will introduce freeze.
>>
>> Add an nr_hw_queues module parameter so that users who know their
>> expected connection count can pre-created devices with the right queue
>> count to avoid this freeze too.
> 
> I'm fine with this, but this is misleading. Please also add comment to
> emphasize this module parameter is just to avoid queue freeze if user configure
> the exact number of socks as this new module parameter. Otherwise, the real
> nr_hw_queues is still depend on the real number of user configured socks.

OK, will add this comment in next version! Thanks a lot for your careful 
review!

> 
>>
>> Signed-off-by: Yang Erkun <[email protected]>
>> ---
>>    drivers/block/nbd.c | 8 +++++++-
>>    1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
>> index 2c7b09c70da2..f918c9efa9b2 100644
>> --- a/drivers/block/nbd.c
>> +++ b/drivers/block/nbd.c
>> @@ -166,6 +166,7 @@ static struct dentry *nbd_dbg_dir;
>>    
>>    static unsigned int nbds_max = 16;
>>    static int max_part = 16;
>> +static int nr_hw_queues = 1;
>>    static int part_shift;
>>    
>>    static int nbd_dev_dbg_init(struct nbd_device *nbd);
>> @@ -2752,8 +2753,10 @@ static int __init nbd_init(void)
>>    	}
>>    	nbd_dbg_init();
>>    
>> +	if (nr_hw_queues < 1)
>> +		nr_hw_queues = 1;
>>    	for (i = 0; i < nbds_max; i++)
>> -		nbd_dev_add(i, 1, 1);
>> +		nbd_dev_add(i, 1, nr_hw_queues);
>>    	return 0;
>>    }
>>    
>> @@ -2814,3 +2817,6 @@ module_param(nbds_max, int, 0444);
>>    MODULE_PARM_DESC(nbds_max, "number of network block devices to initialize (default: 16)");
>>    module_param(max_part, int, 0444);
>>    MODULE_PARM_DESC(max_part, "number of partitions per device (default: 16)");
>> +module_param(nr_hw_queues, int, 0444);
>> +MODULE_PARM_DESC(nr_hw_queues,
>> +"number of hardware queues for devices pre-created at module load (default: 1). ");
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.