[Macchiato] [EXT] Network driver crash

Stefan Chulski stefanc at marvell.com
Sun Mar 4 13:30:31 GMT 2018



From: Marcin Wojtas [mailto:mw at semihalf.com]
Sent: Sunday, March 04, 2018 3:18 PM
To: Stefan Chulski <stefanc at marvell.com>
Cc: Steve McIntyre <steve at einval.com>; macchiato at lists.einval.com
Subject: Re: [Macchiato] [EXT] Network driver crash

Hi Stefan,

2018-03-04 13:35 GMT+01:00 Stefan Chulski <stefanc at marvell.com<mailto:stefanc at marvell.com>>:
> >IRQ requested during interface open procedure.
> >So you should do "ifconfig eth2 up".
> >I don't have mainline code right now, but should be something like this:
> ># ifconfig eth2 up
> ># cat /proc/interrupts | grep eth2
> >134:          1          0          0          0       ICU 129 Level     f4000000.ppv22.eth2.link
> >135:          0          0          0          0       ICU  39 Level     f4000000.ppv22.eth2.cpu0
> >136:          0          0          0          0       ICU  43 Level     f4000000.ppv22.eth2.cpu1
> >137:          0          0          0          0       ICU  47 Level     f4000000.ppv22.eth2.cpu2
> >138:          0          0          0          0       ICU  51 Level     f4000000.ppv22.eth2.cpu3
>
> Nope, not seeing that here:
>
> steve at mjolnir:~$ sudo ifconfig eth2 up
> steve at mjolnir:~$ cat /proc/interrupts | grep eth2
>  70:          0          0          0          0     GICv2 294 Level     eth2

Packet processor use ICU interrupts...

Could you please share your dtb file, boot log and ifconfig -a output.


The DTB that Stuart was running, use older binding (ICU -> GIC mapping basing on the ATF configuration). Do you think it can matter?

Yes. Look like it cause issue.
Each TX done interrupt mapped to specific CPU by smp_affinity and without IRQ balancing. Look like with old dtb interrupt raised on wrong CPU’s.
You can work around this issue by disabling TX Done interrupts in mvpp2_port_has_tx_irqs

         for (i = 0; i < 5; i++) {
                     ret = of_property_match_string(port_node, "interrupt-names",
                                                                irqs[i]);
                     if (ret < 0)
                                 return false;
          }
-       return true;
+      return false;

Stefan,
Best Regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.einval.com/pipermail/macchiato/attachments/20180304/adcb588f/attachment-0001.html>


More information about the Macchiato mailing list