Subject: Re: [BUG] linux-2.6.28-rc3 regression: IRQ smp_affinities not respected

From: "Michael Chan" <[email-masked]>
Date: Wed, 26 Nov 2008 09:14:52 -0800

On Wed, 2008-11-26 at 01:01 -0800, Eric Dumazet wrote:
> Eric Dumazet a écrit :
> > Michael Chan a écrit :
> >> I believe this may be the patch that broke it:
> >>
> >> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ce6fce4295ba727b36fdc73040e444bd1aae64cd 
> >>
> >>
> >> I don't remember all the details, but the Broadcom 5708 chip is
> >> affected because it does not support MSI per-vector masking.
> >>
> >> One way to get around is to disable MSI with bnx2 parameter
> >> disable_msi=1.
> >>
> 
> > 
> > I tried this MSI disabling and yes, it now works.
> > 
> > 16:      42726        128        105        106         89         
> > 89        145        152   IO-APIC-fasteoi   uhci_hcd:usb1, eth0, eth1
> > 
> 
> I believe the bnx2 driver doesnt work at all if !disable_msi (default setting)
> 
> Doing a "echo 0 >/sys/devices/system/cpu/cpu1/online" just freeze network
> 
> No messages logged
> 
> If loaded with disable_msi=1, the cpu unplug works as expected.
> 
> Thats a pretty serious issue.
>
Yes, that's the same issue and it is serious.  If MSI is being delivered
to CPU 1 and you then take CPU 1 offline, the MSI will not be delivered
to another CPU.

I think I can detect this problem in bnx2_timer() and try to recover.
I'll post a patch when I have something ready.  Thanks.