Re: [PATCH] virtio_blk: allow 0 as num_request_queues

From: Max Gurtovoy
Date: Sun Oct 24 2021 - 10:19:57 EST



On 10/24/2021 4:54 PM, Michael S. Tsirkin wrote:
The default value is 0 meaning "no limit". However if 0
is specified on the command line it is instead silently
converted to 1. Further, the value is already validated
at point of use, there's no point in duplicating code
validating the value when it is set.

Simplify the code while making the behaviour more consistent
by using plain module_param.

Fixes: 1a662cf6cb9a ("virtio-blk: add num_request_queues module parameter")
Cc: Max Gurtovoy <mgurtovoy@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
---
drivers/block/virtio_blk.c | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 6318134aab76..c336d9bb9105 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -30,20 +30,8 @@
#define VIRTIO_BLK_INLINE_SG_CNT 2
#endif
-static int virtblk_queue_count_set(const char *val,
- const struct kernel_param *kp)
-{
- return param_set_uint_minmax(val, kp, 1, nr_cpu_ids);
-}
-
-static const struct kernel_param_ops queue_count_ops = {
- .set = virtblk_queue_count_set,
- .get = param_get_uint,
-};
-
static unsigned int num_request_queues;
-module_param_cb(num_request_queues, &queue_count_ops, &num_request_queues,
- 0644);
+module_param(num_request_queues, uint, 0644);

Not the best solution.

You can set the param to 1024 but in practice nr_cpu_ids can be 32 for example.


MODULE_PARM_DESC(num_request_queues,
"Limit the number of request queues to use for blk device. "
"0 for no limit. "