Skip to contentSkip to conversation

2.5.53-mm3: xmms: page allocation failure. order:5, mode:0x20

DISCUSSION khromy 3 participants 11 messages Dec 29, 2002 – Dec 30, 2002 2 messages not in the archive

Subsystems (2)
lore
Share & tools
lore

khromy

author
#0 lore raw

Running 2.5.53-mm3, I found the following in dmesg. I don't remember getting anything like this with 2.5.53-mm3.

xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:3, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20
xmms: page allocation failure. order:5, mode:0x20
xmms: page allocation failure. order:4, mode:0x20

Signature · 1 line
L1:	khromy		;khromy(at)lnuxlab.ath.cx
author
#1 lore raw
Quoted 2 lines · khromy

Running 2.5.53-mm3, I found the following in dmesg. I don't remember getting anything like this with 2.5.53-mm3.

									^^ 2.5.53-mm2
Signature · 1 line
L1:	khromy		;khromy(at)lnuxlab.ath.cx
#2 lore raw
In reply to khromy
Quoted 5 lines · khromy

Running 2.5.53-mm3, I found the following in dmesg. I don't remember getting anything like this with 2.5.53-mm3.

xmms: page allocation failure. order:5, mode:0x20

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

Could you please add this patch, and make sure that you have set CONFIG_KALLSYMS=y? This will find the culprit.

Thanks.

mm/page_alloc.c renamed from mm/page_alloc.c~a +1 -0
@@ -572,6 +572,7 @@ nopage:
 		printk("%s: page allocation failure."
 			" order:%d, mode:0x%x\n",
 			current->comm, order, gfp_mask);
+		dump_stack();
 	}
 	return NULL;
 }

_

author
#3 lore raw
Quoted 5 lines · Andrew Morton
Quoted 4 lines · khromy

Running 2.5.53-mm3, I found the following in dmesg. I don't remember getting anything like this with 2.5.53-mm3.

Quoted 7 lines
Quoted 1 line

xmms: page allocation failure. order:5, mode:0x20

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

Could you please add this patch, and make sure that you have set CONFIG_KALLSYMS=y? This will find the culprit.

XFree86: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c0265066>] unix_poll+0x22/0x90
 [<c0224ce9>] sock_poll+0x1d/0x24
 [<c014d452>] do_select+0xfe/0x208
 [<c014d214>] __pollwait+0x0/0x98
 [<c014d8b6>] sys_select+0x332/0x46c
 [<c01089af>] syscall_call+0x7/0xb

XFree86: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c0265066>] unix_poll+0x22/0x90
 [<c0224ce9>] sock_poll+0x1d/0x24
 [<c014d452>] do_select+0xfe/0x208
 [<c014d214>] __pollwait+0x0/0x98
 [<c014d8b6>] sys_select+0x332/0x46c
 [<c01089af>] syscall_call+0x7/0xb

ENOMEM in journal_alloc_journal_head, retrying.
xmms: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c021dc2b>] es1371_poll+0xcf/0x20c
 [<c014d452>] do_select+0xfe/0x208
 [<c014d214>] __pollwait+0x0/0x98
 [<c014d8b6>] sys_select+0x332/0x46c
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c021dc2b>] es1371_poll+0xcf/0x20c
 [<c014d452>] do_select+0xfe/0x208
 [<c014d214>] __pollwait+0x0/0x98
 [<c014d8b6>] sys_select+0x332/0x46c
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c0265066>] unix_poll+0x22/0x90
 [<c0224ce9>] sock_poll+0x1d/0x24
 [<c014da35>] do_pollfd+0x45/0x84
 [<c014dad1>] do_poll+0x5d/0xc0
 [<c014dc48>] sys_poll+0x114/0x1cc
 [<c014d214>] __pollwait+0x0/0x98
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c0265066>] unix_poll+0x22/0x90
 [<c0224ce9>] sock_poll+0x1d/0x24
 [<c014da35>] do_pollfd+0x45/0x84
 [<c014dad1>] do_poll+0x5d/0xc0
 [<c014dc48>] sys_poll+0x114/0x1cc
 [<c014d214>] __pollwait+0x0/0x98
 [<c01089af>] syscall_call+0x7/0xb

kswapd0: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fcee>] balance_pgdat+0xba/0x130
 [<c012fe62>] kswapd+0xfe/0x104
 [<c012fd64>] kswapd+0x0/0x104
 [<c0115a54>] autoremove_wake_function+0x0/0x38
 [<c0115a54>] autoremove_wake_function+0x0/0x38
 [<c0106dfd>] kernel_thread_helper+0x5/0xc

kswapd0: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fcee>] balance_pgdat+0xba/0x130
 [<c012fe62>] kswapd+0xfe/0x104
 [<c012fd64>] kswapd+0x0/0x104
 [<c0115a54>] autoremove_wake_function+0x0/0x38
 [<c0115a54>] autoremove_wake_function+0x0/0x38
 [<c0106dfd>] kernel_thread_helper+0x5/0xc

bk: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c01322b7>] do_anonymous_page+0xf3/0x24c
 [<c0132448>] do_no_page+0x38/0x2d0
 [<c0132771>] handle_mm_fault+0x91/0x13c
 [<c0112ec2>] do_page_fault+0x132/0x414
 [<c0112d90>] do_page_fault+0x0/0x414
 [<c011d526>] update_wall_time+0x12/0x3c
 [<c01342db>] do_brk+0x10b/0x1dc
 [<c0133205>] sys_brk+0xad/0xd8
 [<c0109391>] error_code+0x2d/0x38

XFree86: page allocation failure. order:0, mode:0xd0

Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c01145ac>] do_schedule+0x268/0x2c8
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e3bc>] journal_alloc_journal_head+0x60/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120
 [<c0178fc6>] journal_dirty_data+0x4a/0x1bc
 [<c016cd5f>] journal_dirty_async_data+0x17/0x6c
 [<c016ca84>] walk_page_buffers+0x50/0x74
 [<c016d305>] ext3_writepage+0x261/0x33c
 [<c016cd48>] journal_dirty_async_data+0x0/0x6c
 [<c012f0b6>] shrink_list+0x2b6/0x4bc
 [<c0135bc1>] page_referenced+0xbd/0xcc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012fa48>] refill_inactive_zone+0x4b4/0x4dc
 [<c012e296>] __pagevec_release+0x1a/0x28
 [<c012f467>] shrink_cache+0x1ab/0x2d8
 [<c012fadc>] shrink_zone+0x6c/0x74
 [<c012fb4e>] shrink_caches+0x6a/0x94
 [<c012fbf4>] try_to_free_pages+0x7c/0xbc
 [<c012a33c>] __alloc_pages+0x1b4/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c014d247>] __pollwait+0x33/0x98
 [<c0265066>] unix_poll+0x22/0x90
 [<c0224ce9>] sock_poll+0x1d/0x24
 [<c014d452>] do_select+0xfe/0x208
 [<c014d214>] __pollwait+0x0/0x98
 [<c014d8b6>] sys_select+0x332/0x46c
 [<c01089af>] syscall_call+0x7/0xb
Signature · 1 line
L1:	khromy		;khromy(at)lnuxlab.ath.cx
#4 lore raw
Quoted 16 lines · khromy
Quoted 5 lines · Andrew Morton
Quoted 4 lines · khromy

Running 2.5.53-mm3, I found the following in dmesg. I don't remember getting anything like this with 2.5.53-mm3.

Quoted 7 lines
Quoted 1 line

xmms: page allocation failure. order:5, mode:0x20

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

Could you please add this patch, and make sure that you have set CONFIG_KALLSYMS=y? This will find the culprit.

XFree86: page allocation failure. order:0, mode:0xd0

Quoted 9 lines
Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120

oops, sorry. They're all expected. I'd like to know where the 5-order failure during xmms usage came from. Were you using a CDROM at the time??

This should tell us, thanks:

mm/page_alloc.c renamed from mm/page_alloc.c~a +2 -0
@@ -547,6 +547,8 @@ nopage:
 		printk("%s: page allocation failure."
 			" order:%d, mode:0x%x\n",
 			current->comm, order, gfp_mask);
+		if (order > 3)
+			dump_stack();
 	}
 	return NULL;
 }

_

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

author
#7 lore raw
Quoted 34 lines · Andrew Morton
Quoted 33 lines · khromy
Quoted 30 lines · Andrew Morton
Quoted 16 lines · khromy
Quoted 5 lines · Andrew Morton
Quoted 4 lines · khromy

Running 2.5.53-mm3, I found the following in dmesg. I don't remember getting anything like this with 2.5.53-mm3.

Quoted 7 lines
Quoted 1 line

xmms: page allocation failure. order:5, mode:0x20

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

Could you please add this patch, and make sure that you have set CONFIG_KALLSYMS=y? This will find the culprit.

XFree86: page allocation failure. order:0, mode:0xd0

Quoted 9 lines
Call Trace:
 [<c012a3dd>] __alloc_pages+0x255/0x264
 [<c012a414>] __get_free_pages+0x28/0x60
 [<c012c7e6>] cache_grow+0xb6/0x20c
 [<c012c9cf>] __cache_alloc_refill+0x93/0x220
 [<c012cb96>] cache_alloc_refill+0x3a/0x58
 [<c012cf1d>] kmem_cache_alloc+0x45/0xc8
 [<c017e36c>] journal_alloc_journal_head+0x10/0x68
 [<c017e458>] journal_add_journal_head+0x80/0x120

oops, sorry. They're all expected. I'd like to know where the 5-order failure during xmms usage came from. Were you using a CDROM at the time??

Quoted 5 lines
Quoted 3 lines

Nope, playing mp3s from a harddrive. I can reproduce it by doing some IO or compiling something and then switching back and forth through workspaces really fast at the same time..

Ah. Well could you please add the second patch? That'll find the source.

It didn't apply ontop of the one that you sent earlier so I compiled with only the second one..

I got this while applying the second one:
patching file mm/page_alloc.c
Hunk #1 succeeded at 572 (offset 25 lines).

And here is dmesg:

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

xmms: page allocation failure. order:5, mode:0x20

Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb
Signature · 1 line
L1:	khromy		;khromy(at)lnuxlab.ath.cx
#8 lore raw
Quoted 5 lines · khromy

...
And here is dmesg:

xmms: page allocation failure. order:5, mode:0x20

Quoted 11 lines
Call Trace:
 [<c012a3e7>] __alloc_pages+0x25f/0x26c
 [<c012a41c>] __get_free_pages+0x28/0x60
 [<c010e36e>] dma_alloc_coherent+0x3e/0x74
 [<c021c8ba>] prog_dmabuf+0x7e/0x2b4
 [<c021c31d>] set_dac2_rate+0xb5/0xe0
 [<c021f01d>] es1371_ioctl+0x10d5/0x140c
 [<c012d228>] kmem_cache_free+0x174/0x1b8
 [<c014ccf9>] sys_ioctl+0x1fd/0x254
 [<c01089af>] syscall_call+0x7/0xb

OK, thanks. The audio driver is trying to allocate a large DMA buffer and just falls back to a smaller size if it fails.

And dma_alloc_coherent() forces GFP_ATOMIC, which is quite broken of it.

Let's leave this one as-is. It'll be OK when all the debug code is pulled out.

#9 lore raw
In reply to Andrew Morton
Quoted 2 lines · Andrew Morton

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

ISA sound I/O. And yes it really does want the 128K if it can get it on a slower box. It will try 128/64/32/.. so it gets less if there isnt any DMA RAM around. All the sound works this way because few bits of sound hardware, even in the PCI world, support scatter gather.

If the VM can't deal with it - we need to fix the VM. All these allocations are blocking and can wait a long time.

Please direct any complaints to the hardware vendors.

Alan

author
#10 lore raw
Quoted 8 lines · Alan Cox
Quoted 2 lines · Andrew Morton

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

ISA sound I/O. And yes it really does want the 128K if it can get it on a slower box. It will try 128/64/32/.. so it gets less if there isnt any DMA RAM around. All the sound works this way because few bits of sound hardware, even in the PCI world, support scatter gather.

This is a PCI sound card.

Bus 0, device 11, function 0:
Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 2).

Signature · 1 line
L1:	khromy		;khromy(at)lnuxlab.ath.cx
#11 lore raw
Quoted 7 lines · khromy
Quoted 2 lines

DMA RAM around. All the sound works this way because few bits of sound hardware, even in the PCI world, support scatter gather.

This is a PCI sound card.

Bus 0, device 11, function 0:
Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 2).

And doesn't support scatter gather either so does the same thing.

#12 lore raw
In reply to Alan Cox
Quoted 11 lines · Alan Cox
Quoted 2 lines · Andrew Morton

gack. Someone is requesting 128k of memory with GFP_ATOMIC. It fell afoul of the reduced memory reserves. It deserved to.

ISA sound I/O. And yes it really does want the 128K if it can get it on a slower box. It will try 128/64/32/.. so it gets less if there isnt any DMA RAM around. All the sound works this way because few bits of sound hardware, even in the PCI world, support scatter gather.

If the VM can't deal with it - we need to fix the VM.

It'll tend to usually work because GFP_KERNEL allocations prefer to not dip into the DMA region.

Quoted 1 line

All these allocations are blocking and can wait a long time.

But it's not! dma_alloc_coherent() is using GFP_ATOMIC|__GFP_DMA.

Now, if we can fix the caller to use

	__GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS | __GFP_DMA

then that at least will allow page reclaim.

Then we can remove this restriction in __alloc_pages():

        /*
         * Don't let big-order allocations loop.  Yield for kswapd, try again.
         */
        if (order <= 3) {
                yield();
                goto rebalance;
        }

and all will be well.

dma_alloc_coherent() should be fixed to take a gfp_mask, and callers should be updated.

As for permitting direct page reclaim for higher-order allocations: I just don't know - it's from before my time. Perhaps the VM will livelock.