From owner-freebsd-current@FreeBSD.ORG Tue Dec 9 16:30:42 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C396A1065670 for ; Tue, 9 Dec 2008 16:30:42 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 80F568FC2E for ; Tue, 9 Dec 2008 16:30:42 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id mB9GRUkf095798; Tue, 9 Dec 2008 09:27:30 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Tue, 09 Dec 2008 09:27:39 -0700 (MST) Message-Id: <20081209.092739.35219831.imp@bsdimp.com> To: elias@artx.ru From: "M. Warner Losh" In-Reply-To: <20081209141908.GA15845@artx.ru> References: <20081205174838.GA22652@albert.catwhisker.org> <20081205.120056.255409238.imp@bsdimp.com> <20081209141908.GA15845@artx.ru> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: current@freebsd.org Subject: Re: "interrupt storm..."; seems associated with an0 NIC X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Dec 2008 16:30:42 -0000 In message: <20081209141908.GA15845@artx.ru> Ilya Orehov 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