new NAPI interface broken for POWER architecture?

Christoph Raisch RAISCH at
Wed Sep 12 23:10:08 EST 2007

David Miller <davem at> wrote on 12.09.2007 14:50:04:

> From: Jan-Bernd Themann <ossthema at>
> Date: Fri, 7 Sep 2007 11:37:02 +0200
> > 2) On SMP systems: after netif_rx_complete has been called on CPU1
> >    (+interruts enabled), netif_rx_schedule could be called on CPU2
> >    (irq handler) before net_rx_action on CPU1 has checked
> >    In that case the device would be added to poll lists of CPU1 and
> >    as net_rx_action would see NAPI_STATE_SCHED set.
> >    This must not happen. It will be caught when netif_rx_complete is
> >    called the second time (BUG() called)
> >
> > This would mean we have a problem on all SMP machines right now.
> This is not a correct statement.
> Only on your platform do network device interrupts get moved
> around, no other platform does this.
> Sparc64 doesn't, all interrupts stay in one location after
> the cpu is initially choosen.
> x86 and x86_64 specifically do not move around network
> device interrupts, even though other device types do
> get dynamic IRQ cpu distribution.
> That's why you are the only person seeing this problem.
> I agree that it should be fixed, but we should also fix the IRQ
> distribution scheme used on powerpc platforms which is totally
> broken in these cases.

This is definitely not something we can change in the HEA device driver
It could also affect any other networking cards on POWER (e1000,s2io...).

Paul, Michael, Arndt, what is your opinion here?

Gruss / Regards
Christoph Raisch

More information about the Linuxppc-dev mailing list