From nobody@FreeBSD.org Tue Jan 15 19:26:44 2008 Return-Path: Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D41BE16A421 for ; Tue, 15 Jan 2008 19:26:44 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id CFA1113C458 for ; Tue, 15 Jan 2008 19:26:44 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m0FJPRmx039847 for ; Tue, 15 Jan 2008 19:25:27 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.2/8.14.1/Submit) id m0FJPRZM039846; Tue, 15 Jan 2008 19:25:27 GMT (envelope-from nobody) Message-Id: <200801151925.m0FJPRZM039846@www.freebsd.org> Date: Tue, 15 Jan 2008 19:25:27 GMT From: Sven Berkvens-Matthijsse To: freebsd-gnats-submit@FreeBSD.org Subject: ral device causes massive interrupt storm sometimes X-Send-Pr-Version: www-3.1 X-GNATS-Notify: >Number: 119696 >Category: kern >Synopsis: [irq] [ral] ral device causes massive interrupt storm sometimes >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Jan 15 19:30:01 UTC 2008 >Closed-Date: >Last-Modified: Tue Feb 19 00:00:07 UTC 2008 >Originator: Sven Berkvens-Matthijsse >Release: FreeBSD 7.0-PRERELEASE #5: Thu Jan 10 18:27:04 CET 2008 amd64 >Organization: De Kattenfabriek >Environment: FreeBSD paws.berkvens.net 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #5: Thu Jan 10 18:27:04 CET 2008 sven@paws.berkvens.net:/usr/obj/usr/src/sys/PAWS amd64 >Description: In some environments, like my home, my ral WiFi device works like a charm. No problems whatsoever. But in some environments, like my office, it causes a massive interrupt storm (in the order of 70000 interrupts per second) to occur. I have the following device in my laptop (output of pciconf -l -v): ral0@pci0:5:9:0: class=0x028000 card=0xb8331462 chip=0x03021814 rev=0x00 hdr=0x00 vendor = 'Ralink Technology, Corp' device = 'RT2525 2.4GHz transceiver + RT2560 MAC/BBP wireless a/b' class = network In my office environment, the device does not detect any networks at all. My colleague's laptop, which has a recent Intel chipset-based WiFi card (and also runs the same version of FreeBSD), has no problems with the environment, and in fact it detects more than ten networks. Stopping the interface with "/etc/rc.d/netif stop ral0" causes the interrupt storm to stop. Starting the interface again (it's configured for DHCP and WPA by the way in /etc/rc.conf) causes the interrupt storm to resume as before. But even if the device is not up, it produces around 30 interrupts per second. No idea is that's normal or not, though. >How-To-Repeat: I don't know how other people could reproduce the problem. I know how to reproduce it in my two described environments, though, so if anyone wants me to test anything (custom patches, etc are no problem) in either environment, that's certainly possible. >Fix: I'm not sure what the problem is, let alone a solution. >Release-Note: >Audit-Trail: From: Robert Jenssen To: bug-followup@freebsd.org Cc: Subject: Re:kern/119696: [irq] [ral] ral device causes massive interrupt storm sometimes Date: Tue, 29 Jan 2008 09:54:06 +1100 Hi, For two years I have been successfully using an Ralink Wireless Ethernet card with a Belkin F1PI241EGau wireless router under FreeBSD 6. After upgrading to FreeBSD 7 RC1 the card doesn't reliably connect to the router at bootup. Perhaps the problem is related to this PR? I am not sure how to diagnose an "interrupt storm". There is nothing relevant in /var/log/messages. Rebooting (sometimes multiple times) fixes the problem. As you can see in the following example, simply restarting ral0 is not sufficient. I have not seen this problem when booting into Win2K. Regards, Rob Jenssen For example (SSID blanked): # uname -a FreeBSD kraken.wollstonecraft 7.0-RC1 FreeBSD 7.0-RC1 #0: Mon Jan 28 18:24:20 EST 2008 root@kraken.wollstonecraft:/usr/obj/usr/src/sys/KRAKEN i386 # dmesg | grep ral0 ral0: mem 0xf2004000-0xf2005fff irq 22 at device 6.0 on pci2 ral0: MAC/BBP RT2560 (rev 0x04), RF RT2525 ral0: Ethernet address: 00:11:50:63:cd:47 ral0: [ITHREAD] # pciconf -lv . . ral0@pci0:2:6:0: class=0x028000 card=0x700a1799 chip=0x02011814 rev=0x01 hdr=0x00 vendor = 'Ralink Technology, Corp' device = '0x03011814 Zonet ZEW1601 (Ralink Chipset) 802.11b/g WLAN Card' class = network # ifconfig ral0 list scan SSID BSSID CHAN RATE S:N INT CAPS Ear########... 00:12:bf:25:34:6b 10 54M -63:-95 100 EPS WPA # sudo /etc/rc.d/netif restart ral0 Starting wpa_supplicant. ral0: no link .............. giving up ral0: flags=8843 metric 0 mtu 1500 ether 00:11:50:63:cd:47 media: IEEE 802.11 Wireless Ethernet autoselect (DS/1Mbps) status: no carrier ssid Ear##################### channel 10 (2457 Mhz 11g) authmode WPA privacy ON deftxkey UNDEF txpower 50 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi11g 7 roam:rate11g 5 protmode CTS roaming MANUAL From: Robert Jenssen To: bug-followup@freebsd.org Cc: Subject: Re:kern/119696: [irq] [ral] ral device causes massive interrupt storm sometimes Date: Sun, 3 Feb 2008 20:20:33 +1100 To follow-up my previous message, I am seeing the following in /var/log/messages: smbd[1503]: read_data: read failure for 4 bytes to client 192.168.0.2. Error = Operation timed out At the same time pinging 192.168.0.2 fails. After restarting /etc/rc.d/netif ping and samba appear to work again. Rob Jenssen From: Ernst Peter Stein To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/119696: [irq] [ral] ral device causes massive interrupt storm sometimes Date: Tue, 19 Feb 2008 02:47:31 +0300 Hi, I can confirm this bug running 7.0-RC2-p1 with a Conceptronic C54Ri =20 Revision 2.0 pci card. The card works fine with Windows XP and Linux. =20 Restarting the interface or rebooting the pc _never_ fixed the problem =20 over here. The manufacturer tells on his website (conceptronic.net) =20 which card version is using which chipset: C54RC and C54Ri: Ralink RT2560F + RT2525L C54RC and C54Ri Version 2.0: Ralink RT2501 Turbo Chipset =3D=3D Ralink =20 RT2561T +RT2527L C54RC version 2.0 without ROHS logo: RT2560F + RT2525L C54RC version 2.0 with ROHS logo: RT2561T +RT2527L Pciconf output seems to be wrong... Related to this problem you will find some postings on a couple of =20 boards and mailinglists, e.g.: http://www.mail-archive.com/freebsd-stable@freebsd.org/msg91872.html http://www.mail-archive.com/freebsd-stable@freebsd.org/msg91912.html My details: regenbogen# uname -a FreeBSD regenbogen.local 7.0-RC2-p1 FreeBSD 7.0-RC2-p1 #0: Tue Feb 12 =20 22:23:33 UTC 2008 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386 regenbogen# dmesg | grep ral0 ral0: mem 0xe1000000-0xe1007fff irq 10 at =20 device 16.0 on pci0 ral0: MAC/BBP RT2561C, RF RT2527 ral0: Ethernet address: 00:80:5a:4d:55:3a ral0: [ITHREAD] regenbogen# pciconf -lv [...] ral0@pci0:0:16:0: class=3D0x028000 card=3D0x3c241948 chip=3D0x03021814= =20 rev=3D0x00 hdr=3D0x00 vendor =3D 'Ralink Technology, Corp' device =3D 'RT2525 2.4GHz transceiver + RT2560 MAC/BBP wireless a/b= ' class =3D network [...] regenbogen# ifconfig ral0 ral0: flags=3D8802 metric 0 mtu 1500 ether 00:80:5a:4d:55:3a media: IEEE 802.11 Wireless Ethernet autoselect (autoselect) status: no carrier ssid "" channel 1 (2412 Mhz 11b) authmode OPEN privacy OFF txpower 50 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi11b 7 roam:rate11b 1 bintva= l 0 regenbogen# ifconfig ral0 up scan interrupt storm detected on "irq10:"; throttling interrupt source [...] interrupt storm detected on "irq10:"; throttling interrupt source ^C regenbogen# reboot [...] regenbogen# sysctl -a net.wlan.debug=3D-1 net.wlan.debug: 0 -> -1 regenbogen# sysctl -a net.wlan.0.debug=3D-1 net.wlan.0.debug: 0 -> -1 regenbogen# ifconfig ral0 up scan ral0: ieee80211_newstate: INIT -> SCAN ral0: ieee80211_check_scan: active scan, duration 2147483647, desired =20 mode auto, flush ral0: ieee80211_start_scan: active scan, duration 2147483647, desired =20 mode auto, flush ral0: scan set 1g, 6g, 11g, 7g, 13g, 2g, 3g, 4g, 5g, 8g, 9g, 10g, 12g, =20 14g dwell min 20 max 200 ral0: ieee80211_start_scan: active scan already in progress ral0: scan_next: chan 1b -> 1g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 1 ral0: scan_next: chan 1g -> 6g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 6 ral0: scan_next: chan 6g -> 11g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 11 ral0: scan_next: chan 11g -> 7g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 7 ral0: scan_next: chan 7g -> 13g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 13 ral0: scan_next: chan 13g -> 2g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 2 ral0: scan_next: chan 2g -> 3g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 3 ral0: scan_next: chan 3g -> 4g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 4 ral0: scan_next: chan 4g -> 5g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 5 ral0: scan_next: chan 5g -> 8g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 8 ral0: scan_next: chan 8g -> 9g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 9 ral0: scan_next: chan 9g -> 10g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 10 ral0: scan_next: chan 10g -> 12g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 12 ral0: scan_next: chan 12g -> 14g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 14 interrupt storm detected on "irq10:"; throttling interrupt source ral0: sta_pick_bss: no scan candidate ral0: scan_next: done, restart [ticks 184533, dwell min 20 scanend 214766529= 8] ral0: scan_next: chan 14g -> 1g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 1 ral0: scan_next: chan 1g -> 6g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 6 ral0: scan_next: chan 6g -> 11g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 11 ral0: scan_next: chan 11g -> 7g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 7 ral0: scan_next: chan 7g -> 13g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 13 ral0: scan_next: chan 13g -> 2g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 2 ral0: scan_next: chan 2g -> 3g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 3 ral0: scan_next: chan 3g -> 4g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 4 ral0: scan_next: chan 4g -> 5g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 5 ral0: scan_next: chan 5g -> 8g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 8 ral0: scan_next: chan 8g -> 9g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 9 ral0: scan_next: chan 9g -> 10g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 10 ral0: scan_next: chan 10g -> 12g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 12 ral0: scan_next: chan 12g -> 14g [active, dwell min 20 max 200] ral0: ieee80211_ref_node (ieee80211_send_probereq:1461) =20 0xc2f30000<00:80:5a:4d:55:3a> refcnt 3 ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 14 interrupt storm detected on "irq10:"; throttling interrupt source [...] Yours -- Ernst Peter Stein >Unformatted: