Re: [2.6.35-rc1] page alloc failure order:1, mode:0x4020

From: Eric Dumazet
Date: Sun Sep 05 2010 - 16:25:31 EST


Le dimanche 05 septembre 2010 Ã 08:51 -0700, Nikhil Sethi (ààààà àààà) a
Ãcrit :
> This came back. Here is the dmesg output. It might be the problem only
> happens if I have wmm_enabled=1 in my hostapd.conf. That is the only
> thing that I changed yesterday, and today I saw these messages in my
> logs. I will try to conform this.
>
>
> I am running 2.6.35.4 with this patch:
>
>
> *** 225,234 ****
> int error = 0, i;
> u32 size;
>
> !
> ! common->rx_bufsize = roundup(IEEE80211_MAX_MPDU_LEN +
> ! ah->caps.rx_status_len,
> ! min(common->cachelsz, (u16)64));
>
> ath9k_hw_set_rx_bufsize(ah, common->rx_bufsize -
> ah->caps.rx_status_len);
> --- 225,234 ----
> int error = 0, i;
> u32 size;
>
> ! size = roundup(IEEE80211_MAX_MPDU_LEN + ah->caps.rx_status_len,
> ! min(common->cachelsz, (u16)64));
> ! common->rx_bufsize = min_t(u32, size,
> ! SKB_MAX_ORDER(NET_SKB_PAD +
> common->cachelsz, 0));
>
> ath9k_hw_set_rx_bufsize(ah, common->rx_bufsize -
> ah->caps.rx_status_len);
>
>
> dmesg output:
>
>
> skbuff alloc of size 3872 failed
> ps: page allocation failure. order:1, mode:0x4020
> Pid: 16022, comm: ps Tainted: G W 2.6.35.4 #1
> Call Trace:
> [<c0243bfe>] ? __alloc_pages_nodemask+0x3e6/0x513
> [<c025be97>] ? slob_new_pages+0xc/0x23

Unfortunately you use SLOB, and it seems to ask order-1 pages, while
we want less than a page.

Please try SLAB or SLUB

> [<c025c0a1>] ? __kmalloc_node+0x39/0x72
> [<c03338d8>] ? __alloc_skb+0x5c/0x105
> [<d09fa01a>] ? ath_rxbuf_alloc+0x1a/0x78 [ath]
> [<d0ab7109>] ? ath_rx_tasklet+0x2fb/0x808 [ath9k]
> [<c030fd49>] ? scsi_next_command+0x27/0x34
> [<d0ab53c5>] ? ath9k_tasklet+0xcc/0x107 [ath9k]
> [<c02193c3>] ? tasklet_action+0x5f/0x65
> [<c0219677>] ? __do_softirq+0x60/0xc6
> [<c021970b>] ? do_softirq+0x2e/0x30
> [<c02197fd>] ? irq_exit+0x53/0x55
> [<c020392c>] ? do_IRQ+0x3a/0x72
> [<c0202be9>] ? common_interrupt+0x29/0x30
> [<c0247874>] ? __remove_mapping+0x4b/0x8d
> [<c023ea9f>] ? try_to_release_page+0x20/0x30
> [<c0247d36>] ? shrink_page_list+0x2b8/0x46c
> [<c03158ea>] ? sd_prep_fn+0x1a5/0x92b
> [<c024816b>] ? shrink_inactive_list+0x281/0x552
> [<c02445d9>] ? determine_dirtyable_memory+0xc/0x12
> [<c024462c>] ? get_dirty_limits+0x18/0x2b0
> [<c032875e>] ? ata_bmdma_port_intr+0x21/0xcd
> [<c0248683>] ? shrink_zone+0x247/0x38f
> [<c021968c>] ? __do_softirq+0x75/0xc6
> [<c0247114>] ? shrink_slab+0x13c/0x186
> [<c0248f25>] ? try_to_free_pages+0x1ab/0x2be
> [<c0248f25>] ? try_to_free_pages+0x1ab/0x2be
> [<c0243acf>] ? __alloc_pages_nodemask+0x2b7/0x513
> [<c025be97>] ? slob_new_pages+0xc/0x23
> [<c025c038>] ? kmem_cache_alloc_node+0x23/0x53
> [<c0264b20>] ? getname+0x19/0xae
> [<c0266d00>] ? user_path_at+0x11/0x64
> [<c0250949>] ? access_process_vm+0xe0/0x1e7
> [<c0250a08>] ? access_process_vm+0x19f/0x1e7
> [<c02603d2>] ? vfs_fstatat+0x25/0x63
> [<c02604a9>] ? vfs_stat+0x10/0x12
> [<c02604ba>] ? sys_stat64+0xf/0x23
> [<c025e86b>] ? fput+0x88/0x191
> [<c026ab3b>] ? dput+0x92/0xd4
> [<c025e8ff>] ? fput+0x11c/0x191
> [<c026ebec>] ? mntput_no_expire+0x13/0x60
> [<c025c398>] ? filp_close+0x3b/0x54
> [<c025c403>] ? sys_close+0x52/0x72
> [<c038ad3d>] ? syscall_call+0x7/0xb
> [<c0380000>] ? unix_dgram_sendmsg+0x258/0x3c1
> Mem-Info:



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/