Re: "interrupt storm..."; seems associated with an0 NIC

From: Ilya Orehov <elias_at_artx.ru>
Date: Wed, 10 Dec 2008 13:19:33 +0300
+------- M. Warner Losh, 2008-12-09 -------
| Thanks!  This helps a lot.  The fact that xl works also is an
| important hint for me for another problem I'm chasing...
| 
| does this patch cause the printfs we've added to not be hit?

With patch printf still hit, but in different places,
and mask is different now: 6 during startup (later then without patch), 
and 0 or 6 after card insertion.
Tried (insert/eject) several times, sequence hardly repeatable,
but maybe it depends on timings :
if card inserted quickly after eject, mask=0.

That puzzled me, so I went to single user.

In single user, if rebooted without card:
card inserted -> no message,
card ejected -> "Need to ack 0x1, mask=00000006"

In single user too:
card inserted -> no message,
IP set with ifconfig xl0 -> "Need to ack 0x1, mask=00000006"
card ejected -> no message

Then i reverted patch to check in single user:

Reboot without card, single user.
Card inserted -> "Need to ack 0x1, mask=00000001"
IP set with ifconfig -> no message
card ejected -> no message

Reboot with card, 
Card initialized -> "Need to ack 0x1, mask=00000007"

regards,
Ilya.

| 
| Warner
| 
| Index: pccbb.c
| ===================================================================
| --- pccbb.c	(revision 185750)
| +++ pccbb.c	(working copy)
| _at__at_ -514,7 +514,7 _at__at_
|  		 * a chance to run.
|  		 */
|  		mtx_lock(&sc->mtx);
| -		cbb_setb(sc, CBB_SOCKET_MASK, CBB_SOCKET_MASK_CD | CBB_SOCKET_MASK_CSTS);
| +		cbb_setb(sc, CBB_SOCKET_MASK, CBB_SOCKET_MASK_CD);
|  		msleep(&sc->intrhand, &sc->mtx, 0, "-", 0);
|  		err = 0;
|  		while (err != EWOULDBLOCK &&
| 
| 
| In message: <20081209204404.GA17018_at_artx.ru>
|             Ilya Orehov <elias_at_artx.ru> writes:
| : +------- M. Warner Losh, 2008-12-09 -------
| : | In message: <20081209192439.GA16703_at_artx.ru>
| : |             Ilya Orehov <elias_at_artx.ru> writes:
| : | : Need to ack 0x1
| : | 
| : | What happens if you also print the current mask register?  CBB_SOCKET_MASK?
| : 
| : Rebooted with xl0 card inserted,
| : first time (after initialization) mask=7,
| : after eject/insert xl0 mask=1.
| : 
| : ...
| : xl0: Ethernet address: 00:60:08:d2:38:56
| : xl0: [ITHREAD]
| : Need to ack 0x1, mask=00000007
| : acd0: CDROM <TOSHIBA CD-ROM XM-1902B/1717> at ata1-master PIO4
| : Trying to mount root from ufs:/dev/ad0s2a
| : WARNING: attempt to net_add_domain(bluetooth) after domainfinalize()
| : xl0: reset didn't complete
| : xl0: command never completed!
| : xl0: command never completed!
| : xl0: command never completed!
| : tdkphy0: detached
| : miibus0: detached
| : xl0: detached
| : Need to ack 0x1, mask=00000001
| : xl0: <3Com 3c575TX Fast Etherlink XL> port 0x1000-0x103f irq 11 at device 0.0 on cardbus1
| : miibus0: <MII bus> on xl0
| : ...
| : 
| : Rebooted once more, without card.
| : After card (xl0) inserted, mask=1.
| : 
| : Rebooted with same card inserted in second slot.
| : First time (after initialization) mask=7,
| : after eject/insert into same slot xl0 mask=1,
| : after eject card was inserted into first slot, mask=1,
| : 
| : code was:
| : if (!ack) {
| : 	mask = cbb_get(sc, CBB_SOCKET_MASK);
| : 	printf("Need to ack %#x, mask=%08x\n", sockevent, mask);
| : 	cbb_set(sc, CBB_SOCKET_EVENT, sockevent);
| : }
| : 
| : regards,
| : Ilya.
| : 
| : 
| : | 
| : | Warner
| : | 
| : +-----------------------------
| : 
| : 
| 
+-----------------------------
Received on Wed Dec 10 2008 - 09:19:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:38 UTC