[PATCH v2 0/7] net: mvneta: Switch to per-CPU irq and make rxq_def useful

Gregory CLEMENT gregory.clement at free-electrons.com
Fri Sep 25 09:09:31 PDT 2015


Hi,

As stated in the first version: "this patchset reworks the Marvell
neta driver in order to really support its per-CPU interrupts, instead
of faking them as SPI, and allow the use of any RX queue instead of
the hardcoded RX queue 0 that we have currently."

Following the review which has been done, Maxime started adding the
CPU hotplug support. I continued his work a few weeks ago and here is
the result.

Since the 1st version the main change is this CPU hotplug support, in
order to validate it I powered up and down the CPUs while performing
iperf. I ran the tests during hours: the kernel didn't crash and the
network interfaces were still usable. Of course it impacted the
performance, but continuously power down and up the CPUs is not
something we usually do.

I also reorganized the series, the 3 first patches should go through
the irq subsystem, whereas the 4 others should go to the network
subsystem.

However, there is a runtime dependency between the two parts. Patch 5
depend on the patch 3 to be able to use the percpu irq.

Thanks,

Gregory

PS: Thanks to Willy who gave me some pointers on how to deal with the
NAPI.

Maxime Ripard (7):
  genirq: Fix the documentation of request_percpu_irq
  irq: Export per-cpu irq allocation and de-allocation functions
  irqchip: armada-370-xp: Rework per-cpu interrupts handling
  net: mvneta: Fix CPU_MAP registers initialisation
  net: mvneta: Handle per-cpu interrupts
  net: mvneta: Allow different queues
  net: mvneta: Statically assign queues to CPUs

 drivers/irqchip/irq-armada-370-xp.c   |  14 +-
 drivers/net/ethernet/marvell/mvneta.c | 316 +++++++++++++++++++++++-----------
 kernel/irq/manage.c                   |   9 +-
 3 files changed, 226 insertions(+), 113 deletions(-)

-- 
2.1.0




More information about the linux-arm-kernel mailing list