i have noticed on several boxes here, that if there is only 32 or 24 of physical memory available on the box - for example i have seen this bug on RB532 - MIPS LE arch - with 32MB or RAM, also on old some old celeron machines, then madwifi sometimes get into state from which it will not recover itself.
Scenario is :
link where one side is madwifi powered box in AP mode and other side is madwifi powered box in STA mode - that RB, old i386 machine with <=32MB of memory , no encryption, 5Ghz band - both machines have usually more than one atheros cards, but important for this is only the one , some machines where i observed this had only one atheros card and another cards were prism, ralinks and etc.
now someone connected to machine, which is on STA side of link start creating many many connections - for example searching some file on highly populated DC hub - then STA mode machine stop responding to ping from AP mode machine - but is still reacheble on other interfaces - for sure on non-atheros ones, dunno yet about other atheros interfaces. But, card is still connected , wlanconfig on AP side shows station. After putting atheros cards on AP side down and up or using another mean to force STA mode station to reassociate, all works well again.
I have seen this on i386 and MIPS archs, on at least two kinds od atheros based cards with various chipsets - CM9 and CM10 - on various svn revisions - the one which follows is rather old revision but also seen it on more recent ones
Possible workaround is to increase /proc/sys/vm/min_free_kbytes, but, it only cures symptoms - and not in all cases, depends how much connections and how fast "the evil user" opens
Please see following snapshot from syslog of one - that RB532 MIPS - machine, it seems to me that the ath_uapsd_processtriggers: no skbuff is the key. I also suspect that this sometimes happens - but very rarely - even on boxes equiped with lot of memory. I will study it more and report as usuall.
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
kswapd0: page allocation failure. order:0, mode:0x20
Call Trace:
[<8010956c>] dump_stack+0x8/0x34
[<8015e4a0>] __alloc_pages+0x2a0/0x348
[<8017f364>] cache_alloc_refill+0x340/0x7bc
[<8017fa38>] __kmalloc+0xd8/0x108
[<802f51f0>] pskb_expand_head+0x5c/0x22c
[<8032d900>] ip_forward+0x128/0x358
[<8032b75c>] ip_rcv+0x340/0x7a4
[<802fe674>] netif_receive_skb+0x460/0x784
[<802de5b0>] rc32434_poll+0x46c/0x538
[<802fed70>] net_rx_action+0xdc/0x2c0
[<8012ed98>] __do_softirq+0x8c/0x134
[<8012eecc>] do_softirq+0x8c/0xb8
[<80104278>] do_IRQ+0x24/0x34
[<80102880>] ret_from_irq+0x0/0x8
[<80165878>] shrink_zone+0xa88/0x1a2c
[<80166db0>] kswapd+0x2d8/0x450
[<801435ac>] kthread+0x284/0x2cc
[<801049f0>] kernel_thread_helper+0x10/0x18
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:3208 inactive:537 dirty:63 writeback:0 unstable:0 free:68 slab:2573 mapped:1155 pagetables:47
DMA free:272kB min:720kB low:900kB high:1080kB active:12832kB inactive:2148kB present:32512kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 272kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 147160kB
Total swap = 147160kB
Free swap: 147160kB
8191 pages of RAM
0 pages of HIGHMEM
1179 reserved pages
3761 pages shared
0 pages swap cached
ath_uapsd_processtriggers: no skbuff
ath_uapsd_processtriggers: no skbuff
ath_uapsd_processtriggers: no skbuff