Subject: Re: [PATCH net] xen-netback: respect user provided max_queues

From: David Vrabel <[email-masked]>
Date: Wed, 9 Sep 2015 11:12:44 +0100

On 09/09/15 11:09, Wei Liu wrote:
> Originally that parameter was always reset to num_online_cpus during
> module initialisation, which renders it useless.
> 
> The fix is to only set max_queues to num_online_cpus when user has not
> provided a value.
[...]
> --- a/drivers/net/xen-netback/netback.c
> +++ b/drivers/net/xen-netback/netback.c
> @@ -67,7 +67,7 @@ module_param(rx_drain_timeout_msecs, uint, 0444);
>  unsigned int rx_stall_timeout_msecs = 60000;
>  module_param(rx_stall_timeout_msecs, uint, 0444);
>  
> -unsigned int xenvif_max_queues;
> +unsigned int xenvif_max_queues = 0;

You don't need this.

Otherwise,

Reviewed-by: David Vrabel <[email-masked]>

Is an equivalent fix needed in netfront?

David

>  module_param_named(max_queues, xenvif_max_queues, uint, 0644);
>  MODULE_PARM_DESC(max_queues,
>  		 "Maximum number of queues per virtual interface");
> @@ -2105,8 +2105,11 @@ static int __init netback_init(void)
>  	if (!xen_domain())
>  		return -ENODEV;
>  
> -	/* Allow as many queues as there are CPUs, by default */
> -	xenvif_max_queues = num_online_cpus();
> +	/* Allow as many queues as there are CPUs if user has not
> +	 * specified a value.
> +	 */
> +	if (xenvif_max_queues == 0)
> +		xenvif_max_queues = num_online_cpus();
>  
>  	if (fatal_skb_slots < XEN_NETBK_LEGACY_SLOTS_MAX) {
>  		pr_info("fatal_skb_slots too small (%d), bump it to XEN_NETBK_LEGACY_SLOTS_MAX (%d)\n",
>