Message ID | 1441793395-25537-1-git-send-email-wei.liu2@citrix.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
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 <david.vrabel@citrix.com> 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", > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Sep 09, 2015 at 11:12:44AM +0100, David Vrabel wrote: > 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 <david.vrabel@citrix.com> > > Is an equivalent fix needed in netfront? > I think so. I will address your comment and send both fixes (front and back) in a series. Wei. > 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", > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2015-09-09 at 11:16 +0100, Wei Liu wrote: > On Wed, Sep 09, 2015 at 11:12:44AM +0100, David Vrabel wrote: > > 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 <david.vrabel@citrix.com> > > > > Is an equivalent fix needed in netfront? > > > > I think so. > > I will address your comment With that: Acked-by: Ian Campbell <ian.campbell@citrix.com> > and send both fixes (front and back) in a > series. > > Wei. > > > 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", > > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 42569b9..b219a80 100644 --- 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; 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",
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. Reported-by: Johnny Strom <johnny.strom@linuxsolutions.fi> Signed-off-by: Wei Liu <wei.liu2@citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com> --- Cc: Johnny Strom <johnny.strom@linuxsolutions.fi> Cc: David Vrabel <david.vrabel@citrix.com> --- drivers/net/xen-netback/netback.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)