Re: [PATCH 2/2] ublk: Make ublks_max configurable

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

 



On 10/3/23 10:47 AM, Ming Lei wrote:
> On Sun, Oct 01, 2023 at 01:54:48PM -0500, Mike Christie wrote:
>> We are converting tcmu applications to ublk, but have systems with up
>> to 1k devices. This patch allows us to configure the ublks_max from
>> userspace with the ublks_max modparam.
>>
>> Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx>
>> ---
>>  drivers/block/ublk_drv.c | 31 ++++++++++++++++++++++++++++++-
>>  1 file changed, 30 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
>> index 18e352f8cd6d..2833a81e05c0 100644
>> --- a/drivers/block/ublk_drv.c
>> +++ b/drivers/block/ublk_drv.c
>> @@ -2940,7 +2940,36 @@ static void __exit ublk_exit(void)
>>  module_init(ublk_init);
>>  module_exit(ublk_exit);
>>  
>> -module_param(ublks_max, int, 0444);
>> +static int ublk_set_max_ublks(const char *buf, const struct kernel_param *kp)
>> +{
>> +	unsigned int max;
>> +	int ret;
>> +
>> +	ret = kstrtouint(buf, 10, &max);
>> +	if (ret)
>> +		return ret;
>> +
>> +	if (max > UBLK_MAX_UBLKS) {
>> +		pr_warn("Invalid ublks_max. Max supported is %d\n",
>> +			UBLK_MAX_UBLKS);
>> +		return -EINVAL;
>> +	}
>> +
>> +	ublks_max = max;
>> +	return ret;
> 
> It might be nice to reuse builtin helper:
> 
> 	return param_set_uint_minmax(buf, kp, 0, UBLK_MAX_UBLKS);
> 

Was looking for something like that but missed it. Will
use.


>> +}
>> +
>> +static int ublk_get_max_ublks(char *buf, const struct kernel_param *kp)
>> +{
>> +	return sysfs_emit(buf, "%d\n", ublks_max);
>> +}
>> +
>> +static const struct kernel_param_ops ublk_max_ublks_ops = {
>> +	.set = ublk_set_max_ublks,
>> +	.get = ublk_get_max_ublks,
> 
> Same with above, '.get    = param_get_int,' could be better.
> 

Will do.




[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