• Bart Van Assche's avatar
    loop: Improve the hw_queue_depth kernel module parameter implementation · e152a05f
    Bart Van Assche authored
    Make the following minor changes which were reported by colleagues
    while reviewing this code:
    - Remove the parentheses from around the LOOP_DEFAULT_HW_Q_DEPTH
      definition since these are superfluous.
    - Accept other number formats than decimal, e.g. hexadecimal.
    - Do not set hw_queue_depth to an out-of-range value, even if that value
      won't be used.
    - Use the LOOP_DEFAULT_HW_Q_DEPTH macro in the kernel module parameter
      description to prevent that the description gets out of sync.
    
    This patch has been tested as follows:
    
     # modprobe -r loop
     # modprobe loop hw_queue_depth=-1
     modprobe: ERROR: could not insert 'loop': Invalid argument
     # modprobe loop hw_queue_depth=0
     modprobe: ERROR: could not insert 'loop': Invalid argument
     # modprobe loop hw_queue_depth=1; cat /sys/module/loop/parameters/hw_queue_depth
     1
     # modprobe -r loop; modprobe loop; cat /sys/module/loop/parameters/hw_queue_depth hw_queue_depth=0x10
     16
     # modprobe -r loop; modprobe loop; cat /sys/module/loop/parameters/hw_queue_depth hw_queue_depth=128
     128
     # modprobe -r loop; modprobe loop hw_queue_depth=129; cat /sys/module/loop/parameters/hw_queue_depth
     129
     # modprobe -r loop; modprobe loop hw_queue_depth=$((1<<32))
     modprobe: ERROR: could not insert 'loop': Numerical result out of range
    
    See also commit ef44c508 ("loop: allow user to set the queue
    depth").
    
    Cc: Chaitanya Kulkarni <kch@nvidia.com>
    Cc: Himanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
    Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
    Link: https://lore.kernel.org/r/20230130211347.832110-1-bvanassche@acm.orgSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    e152a05f
loop.c 56.8 KB