Messages in this thread | | | Date | Fri, 3 Jul 2015 16:46:24 +0200 | From | Thomas Petazzoni <> | Subject | Re: [PATCH 6/6] net: mvneta: Statically assign queues to CPUs |
| |
Maxime,
On Fri, 3 Jul 2015 16:25:51 +0200, Maxime Ripard wrote:
> +static void mvneta_percpu_enable(void *arg) > +{ > + struct mvneta_port *pp = arg; > + > + enable_percpu_irq(pp->dev->irq, IRQ_TYPE_NONE); > +} > + > static int mvneta_open(struct net_device *dev) > { > struct mvneta_port *pp = netdev_priv(dev); > @@ -2655,6 +2662,19 @@ static int mvneta_open(struct net_device *dev) > goto err_cleanup_txqs; > } > > + /* > + * Even though the documentation says that request_percpu_irq > + * doesn't enable the interrupts automatically, it actually > + * does so on the local CPU. > + * > + * Make sure it's disabled. > + */ > + disable_percpu_irq(pp->dev->irq); > + > + /* Enable per-CPU interrupt on the one CPU we care about */ > + smp_call_function_single(rxq_def % num_online_cpus(), > + mvneta_percpu_enable, pp, true);
What happens if that CPU goes offline through CPU hotplug?
Thanks!
Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
| |