"interrupt storm..."; seems associated with an0 NIC
M. Warner Losh
imp at bsdimp.com
Tue Dec 9 16:30:42 UTC 2008
In message: <20081209141908.GA15845 at artx.ru>
Ilya Orehov <elias at artx.ru> writes:
: +------- M. Warner Losh, 2008-12-05 -------
: | Thanks. Grump. Will have to back out and try again.
:
: Hello!
:
: I see storm too, but with 32-bit cards.
:
: Thinkpad 600X, two cardbus cards: xl0 and ath0.
:
: Since pccbb.c 1.176 and pccbb_pci.c 1.30
: after rebooting with card(s) inserted or inserting any card
: I see "interrupt storm...throttling..." messages about 1 per second.
: Laptop remains usable, cards working.
: Storm don't stop even if I eject all cards.
: During storm, vmstat -i shows rate ~500 on cbb.
: No messages appeared if laptop rebooted without cards
: (until any card inserted).
:
: Later revisions ( pccbb.c 1.178 and pccbb_pci.c 1.31)
: didn't bring any visible changes.
:
: But this hack helped.
: No storm detected, vmstat -i shows rate 0 or 1 on cbb.
:
: diff -up xxx/pccbb_pci.c ./pccbb_pci.c
: --- xxx/pccbb_pci.c 2008-12-06 11:56:00.000000000 +0300
: +++ ./pccbb_pci.c 2008-12-09 14:08:03.000000000 +0300
: @@ -689,6 +689,7 @@ cbb_pci_filt(void *arg)
: struct cbb_softc *sc = arg;
: uint32_t sockevent;
: int retval = FILTER_STRAY;
: + int ack = 0;
:
: /*
: * Read the socket event. Sometimes, the theory goes, the PCI
: @@ -722,6 +723,7 @@ cbb_pci_filt(void *arg)
: sc->cardok = 0;
: cbb_disable_func_intr(sc);
: wakeup(&sc->intrhand);
: + ack = 1;
: }
: /*
: * If we get a power interrupt, wakeup anybody that might
: @@ -732,7 +734,10 @@ cbb_pci_filt(void *arg)
: cbb_set(sc, CBB_SOCKET_EVENT, CBB_SOCKET_EVENT_POWER);
: sc->powerintr++;
: wakeup((void *)&sc->powerintr);
: + ack = 1;
: }
: + if (!ack)
: + cbb_set(sc, CBB_SOCKET_EVENT, sockevent);
: retval = FILTER_HANDLED;
: }
: /*
:
: Do you need dmesg or some other info?
Can you please do the following:
+ if (!ack) {
+ printf("Need to ack %#x\n", sockevent);
+ cbb_set(sc, CBB_SOCKET_EVENT, sockevent);
+ }
And let me know what it says?
Warner
More information about the freebsd-current
mailing list