Messages in this thread | | | Date | Wed, 16 Nov 2016 21:01:40 +0000 | From | Brian Starkey <> | Subject | Re: Regression: Failed boots bisected to 4cd13c21b207 "softirq: Let ksoftirqd do its job" |
| |
On Wed, Nov 16, 2016 at 10:49:06AM -0800, Eric Dumazet wrote: >On Wed, Nov 16, 2016 at 10:01 AM, Brian Starkey <brian.starkey@arm.com> wrote: > >> >> The smc91x driver does seem to have some trickiness around softirqs. >> I'm not familiar with net drivers, but I'll see if I can figure >> anything out there. > >Oh this code looks ugly :( > >Do you have CONFIG_SMP=y or not ?
Yeah CONFIG_SMP=y (and CONFIG_PREEMPT=y too, fwiw).
I did try forcing it into the no-op locking (as though config SMP wasn't set), it didn't help (and it doesn't look like that would be safe with CONFIG_PREEMPT=y either).
The bit in smc_hardware_send_pkt looks like skipping softirq invocation when there's already one running wouldn't give the same behaviour as before:
if (!smc_special_trylock(&lp->lock, flags)) { netif_stop_queue(dev); tasklet_schedule(&lp->tx_task); return; }
... that said, I've no idea if that matters.
Of course I also don't know if the network driver is even to blame :-(
Cheers, -Brian
| |