RE: [PATCH V2] UIO: make maximum memory and port regions configurable

From: suqiang (C)
Date: Wed Mar 18 2020 - 23:11:42 EST


Dear Greg,
Thanks a lot for suggestion. I will add more information in these help texts and send PATCH V3 soon.
Furthermore, of cause it is better to make these values dynamic and grow as needed by the system. A possible way is to manage memory and port resource by a dynamic list instead of a static array.
But it costs more time to design and implement a better scheme. I will try it later and push patchs when it's finished.
This patch is a temporary way better than nothing, and I hope it could be accept.

thanks,
Qiang Su

-----Original Message-----
From: Greg KH [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
Sent: Wednesday, March 18, 2020 7:34 PM
To: suqiang (C) <suqiang4@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH V2] UIO: make maximum memory and port regions configurable

On Sat, Mar 07, 2020 at 04:10:08PM +0800, Qiang Su wrote:
> Now each uio device can only support 5 memory regions and
> 5 port regions. It is far from enough for some big system.
> On the other hand, the hard-coded style is not flexible.
>
> Consider the marco is used as array index, so a range for the config
> is set in menuconfig. The range is set as 1 to 512.
> The default value is still set as 5 to keep consistent with current
> code.
>
> Signed-off-by: Qiang Su <suqiang4@xxxxxxxxxx>
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> ---
> Changes since v1:
> - also make port regions configurable in menuconfig.
> - fix kbuild errors.
> ---
> drivers/uio/Kconfig | 18 ++++++++++++++++++
> include/linux/uio_driver.h | 4 ++--
> 2 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/uio/Kconfig b/drivers/uio/Kconfig index
> 202ee81cfc2b..cee7d93cfea2 100644
> --- a/drivers/uio/Kconfig
> +++ b/drivers/uio/Kconfig
> @@ -165,4 +165,22 @@ config UIO_HV_GENERIC
> to network and storage devices from userspace.
>
> If you compile this as a module, it will be called uio_hv_generic.
> +
> +config MAX_UIO_MAPS
> + depends on UIO
> + int "Maximum of memory nodes each uio device support(1-512)"
> + range 1 512
> + default 5
> + help
> + make the max number of memory regions in uio device configurable.
> +
> +config MAX_UIO_PORT_REGIONS
> + depends on UIO
> + int "Maximum of port regions each uio device support(1-512)"
> + range 1 512
> + default 5
> + help
> + make the max number of port regions in uio device configurable.


Can you provide a lot more information in these help texts? Explain why you would ever want to change these values, and that if you do not understand, just take the default ones.

Or, better yet, can we just make these values dynamic and grow as needed by the system? Why are they "fixed"?

thanks,

greg k-h