Return-path: Received: from mtiwmhc11.worldnet.att.net ([204.127.131.115]:41027 "EHLO mtiwmhc11.worldnet.att.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754759AbYLOOxN (ORCPT ); Mon, 15 Dec 2008 09:53:13 -0500 Message-ID: <49466F56.6060805@lwfinger.net> (sfid-20081215_155333_334257_2E0375A5) Date: Mon, 15 Dec 2008 08:53:10 -0600 From: Larry Finger MIME-Version: 1.0 To: Chr CC: wireless Subject: Memory errors from p54usb Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: Christian, While stressing p54usb with a 'ping -f -i 0.2 AP' to my router as well as running normal operations, I encountered the following errors: kernel: thunderbird-bin: page allocation failure. order:1, mode:0x4020 kernel: Pid: 3341, comm: thunderbird-bin Not tainted 2.6.28-rc8-wl #52 kernel: Call Trace: kernel: [] __alloc_pages_internal+0x41c/0x43e kernel: [] alloc_pages_current+0xbe/0xc6 kernel: [] new_slab+0xd5/0x28d kernel: [] ? unfreeze_slab+0x4c/0xbb kernel: [] __slab_alloc+0x215/0x43e kernel: [] ? dev_alloc_skb+0x16/0x2c kernel: [] ? __slab_alloc+0x3af/0x43e kernel: [] __kmalloc_node_track_caller+0x90/0xe4 kernel: [] ? dev_alloc_skb+0x16/0x2c kernel: [] __alloc_skb+0x6f/0x135 kernel: [] dev_alloc_skb+0x16/0x2c kernel: [] p54u_rx_cb+0xad/0x1c8 [p54usb] kernel: [] usb_hcd_giveback_urb+0x7e/0xb1 [usbcore] kernel: [] ehci_urb_done+0xca/0xdf [ehci_hcd] kernel: [] qh_completions+0xaa/0x346 [ehci_hcd] kernel: [] ehci_work+0xce/0x80a [ehci_hcd] kernel: [] ehci_irq+0x1a6/0x1d9 [ehci_hcd] kernel: [] usb_hcd_irq+0x38/0x94 [usbcore] kernel: [] handle_IRQ_event+0x20/0x55 kernel: [] handle_fasteoi_irq+0x91/0xd1 kernel: [] do_IRQ+0xfc/0x173 kernel: [] ret_from_intr+0x0/0xf kernel: <6>Mem-Info: kernel: Node 0 DMA per-cpu: kernel: CPU 0: hi: 0, btch: 1 usd: 0 kernel: CPU 1: hi: 0, btch: 1 usd: 0 kernel: Node 0 DMA32 per-cpu: kernel: CPU 0: hi: 186, btch: 31 usd: 66 kernel: CPU 1: hi: 186, btch: 31 usd: 126 kernel: Active_anon:72288 active_file:171922 inactive_anon:19872 kernel: inactive_file:186277 unevictable:8 dirty:6 writeback:0 unstable:0 kernel: free:26292 slab:261910 mapped:21357 pagetables:2878 bounce:0 kernel: Node 0 DMA free:3556kB min:4kB low:4kB high:4kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB present:2368kB pages_scanned:0 all_unreclaimable? yes kernel: lowmem_reserve[]: 0 2927 2927 2927 kernel: Node 0 DMA32 free:101612kB min:6916kB low:8644kB high:10372kB active_anon:289152kB inactive_anon:79488kB active_file:687688kB inactive_file:745108kB unevictable:32kB present:2997292kB pages_scanned:0 all_unreclaimable? no kernel: lowmem_reserve[]: 0 0 0 0 kernel: Node 0 DMA: 3*4kB 1*8kB 3*16kB 3*32kB 3*64kB 3*128kB 3*256kB 0*512kB 2*1024kB 0*2048kB 0*4096kB = 3556kB kernel: Node 0 DMA32: 25211*4kB 0*8kB 0*16kB 2*32kB 0*64kB 0*128kB 1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 101676kB kernel: 358944 total pagecache pages kernel: 582 pages in swap cache kernel: Swap cache stats: add 1457, delete 875, find 41242/41313 kernel: Free swap = 2100852kB kernel: Total swap = 2104444kB kernel: 769872 pages RAM kernel: 20217 pages reserved kernel: 260581 pages shared kernel: 518529 pages non-shared 5 minutes later: kernel: swapper: page allocation failure. order:1, mode:0x4020 kernel: Pid: 0, comm: swapper Not tainted 2.6.28-rc8-wl #52 kernel: Call Trace: kernel: [] __alloc_pages_internal+0x41c/0x43e kernel: [] alloc_pages_current+0xbe/0xc6 kernel: [] new_slab+0xd5/0x28d kernel: [] ? unfreeze_slab+0x4c/0xbb kernel: [] __slab_alloc+0x215/0x43e kernel: [] ? dev_alloc_skb+0x16/0x2c kernel: [] ? __slab_alloc+0x3af/0x43e kernel: [] __kmalloc_node_track_caller+0x90/0xe4 kernel: [] ? dev_alloc_skb+0x16/0x2c kernel: [] __alloc_skb+0x6f/0x135 kernel: [] dev_alloc_skb+0x16/0x2c kernel: [] p54u_rx_cb+0xad/0x1c8 [p54usb] kernel: [] usb_hcd_giveback_urb+0x7e/0xb1 [usbcore] kernel: [] ehci_urb_done+0xca/0xdf [ehci_hcd] kernel: [] qh_completions+0xaa/0x346 [ehci_hcd] kernel: [] ehci_work+0xce/0x80a [ehci_hcd] kernel: [] ehci_irq+0x1a6/0x1d9 [ehci_hcd] kernel: [] ? ktime_get_ts+0x49/0x4e kernel: [] usb_hcd_irq+0x38/0x94 [usbcore] kernel: [] handle_IRQ_event+0x20/0x55 kernel: [] handle_fasteoi_irq+0x91/0xd1 kernel: [] do_IRQ+0xfc/0x173 kernel: [] ret_from_intr+0x0/0xf kernel: [] ? tick_broadcast_oneshot_control+0x1a/0x109 kernel: [] ? default_idle+0x30/0x4a kernel: [] ? default_idle+0x2e/0x4a kernel: [] ? c1e_idle+0xd5/0xfc kernel: [] ? atomic_notifier_call_chain+0xf/0x11 kernel: [] ? cpu_idle+0x4f/0x90 kernel: [] ? rest_init+0x61/0x63 kernel: Mem-Info: kernel: Node 0 DMA per-cpu: kernel: CPU 0: hi: 0, btch: 1 usd: 0 kernel: CPU 1: hi: 0, btch: 1 usd: 0 kernel: Node 0 DMA32 per-cpu: kernel: CPU 0: hi: 186, btch: 31 usd: 114 kernel: CPU 1: hi: 186, btch: 31 usd: 91 kernel: Active_anon:70899 active_file:172447 inactive_anon:19852 kernel: inactive_file:188543 unevictable:8 dirty:391 writeback:0 unstable:0 kernel: free:25567 slab:261175 mapped:22336 pagetables:2929 bounce:0 kernel: Node 0 DMA free:3556kB min:4kB low:4kB high:4kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB present:2368kB pages_scanned:0 all_unreclaimable? yes kernel: lowmem_reserve[]: 0 2927 2927 2927 kernel: Node 0 DMA32 free:98712kB min:6916kB low:8644kB high:10372kB active_anon:283596kB inactive_anon:79408kB active_file:689788kB inactive_file:754172kB unevictable:32kB present:2997292kB pages_scanned:0 all_unreclaimable? no kernel: lowmem_reserve[]: 0 0 0 0 kernel: Node 0 DMA: 3*4kB 1*8kB 3*16kB 3*32kB 3*64kB 3*128kB 3*256kB 0*512kB 2*1024kB 0*2048kB 0*4096kB = 3556kB kernel: Node 0 DMA32: 24463*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 98620kB kernel: 361741 total pagecache pages kernel: 587 pages in swap cache kernel: Swap cache stats: add 1474, delete 887, find 41242/41313 kernel: Free swap = 2100784kB kernel: Total swap = 2104444kB kernel: 769872 pages RAM kernel: 20217 pages reserved kernel: 262368 pages shared kernel: 519070 pages non-shared These errors continued until I removed p54usb. My kernel is wireless-testing 2.6.28-rc8-wl (x86_64) with the "move statistics timer update", "update ACK failure counter", "remove free on tx" and "more accurate rssi to dBm" p54 patches applied. The call that fails in p54u_rx_cb() is in this code block: if (p54_rx(dev, skb)) { skb = dev_alloc_skb(priv->common.rx_mtu + 32); if (unlikely(!skb)) { /* TODO check rx queue length and refill *somewhere* */ return; } If I read this correctly, there are no 8KB DMA32 pages available. Normally, I would have suspected a memory management problem in the kernel; however, rtl8187 passes this ping test successfully. I suspect a memory leak in p54usb. I will continue to investigate this problem, but I wanted to give you a warning that there is a problem. Larry