Hi All, I've been some doing load testing to compare 2.4.27 and 2.6.9 under heavy memory pressure (in eye of deploying a 2.6 kernel). No benchmarks at the moment - my main concern is getting 2.6 to survive the tests gracefully. So in my survival suite I run a 'make -j192 bzImage modules' and the machine is 2-way P3 1GHz - 2GB RAM + 2GB swap. With my .config this is enough to push the machine about 1.7GB into swap (3.7GB virtual) during some points of the kernel compile test. Anyway 2.4.27 survives without a blip. In 2.6.9, the compile completes okay although I see the page allocation failures logged below. I'm guessing they are not critical and the process faulting on the page to swap in will just sleep and retry again later?? The machine was only about 800MB into swap when they happened. It kept going and eventually went 2GB into swap at one point with top reporting 0K swap free (2.4 only got to 1.7GB), i guess at this point it was evicting file backed pages to free memory to keep going, which it did manage to do. So, are the messages critical or not? (i didn't see any errors from gcc). They all seem to be allocations in radix_tree_node_alloc called from add_to_swap_cache. How to fix? The kerenl is plain 2.6.9 + Nick Piggin's vm-pages_scanned-active_list.patch (as in earlier runs I saw kswapd periodically chewing CPU so I picked this patch out of a mail from Nick in reply to someone with a similar problem). BTW - 2.6 is much more responsive than 2.4 while this is all going on - i'm just worried about these messages. ~mc cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] do_anonymous_page+0x95/0x180 [] swap_free+0x2f/0x50 [] do_no_page+0x60/0x290 [] handle_mm_fault+0x120/0x1a0 [] do_page_fault+0x19c/0x5c0 [] update_wall_time+0x16/0x40 [] do_timer+0xc0/0xd0 [] timer_interrupt+0xc0/0x130 [] handle_IRQ_event+0x34/0x70 [] do_IRQ+0xca/0x130 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 uml_switch: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] __get_free_pages+0x25/0x40 [] __pollwait+0x8c/0xd0 [] unix_poll+0x2b/0xb0 [unix] [] sock_poll+0x29/0x40 [] do_pollfd+0x95/0xa0 [] do_poll+0x6a/0xd0 [] sys_poll+0x161/0x240 [] __pollwait+0x0/0xd0 [] syscall_call+0x7/0xb cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] do_anonymous_page+0x95/0x180 [] do_no_page+0x60/0x290 [] handle_mm_fault+0x120/0x1a0 [] do_page_fault+0x19c/0x5c0 [] i8042_interrupt+0x50/0x190 [] run_timer_softirq+0xff/0x1a0 [] scheduler_tick+0x123/0x480 [] __do_softirq+0xba/0xd0 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 uml_switch: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] __get_free_pages+0x25/0x40 [] __pollwait+0x8c/0xd0 [] unix_poll+0x2b/0xb0 [unix] [] sock_poll+0x29/0x40 [] do_pollfd+0x95/0xa0 [] do_poll+0x6a/0xd0 [] sys_poll+0x161/0x240 [] __pollwait+0x0/0xd0 [] syscall_call+0x7/0xb cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] radix_tree_delete+0x141/0x190 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] read_swap_cache_async+0xb1/0xd0 [] swapin_readahead+0x4f/0x80 [] do_swap_page+0x1e4/0x290 [] pte_alloc_map+0x9a/0xc0 [] handle_mm_fault+0xf7/0x1a0 [] do_page_fault+0x19c/0x5c0 [] sd_rw_intr+0x5a/0x1e0 [] scsi_device_unbusy+0x44/0x80 [] run_timer_softirq+0xff/0x1a0 [] scheduler_tick+0x123/0x480 [] __do_softirq+0xba/0xd0 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] generic_make_request+0x106/0x190 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_preload+0x51/0xb0 [] __add_to_swap_cache+0x3b/0x100 [] add_to_swap_cache+0x34/0x80 [] read_swap_cache_async+0x61/0xd0 [] swapin_readahead+0x4f/0x80 [] do_swap_page+0x1e4/0x290 [] pte_alloc_map+0x9a/0xc0 [] handle_mm_fault+0xf7/0x1a0 [] do_page_fault+0x19c/0x5c0 [] scsi_device_unbusy+0x44/0x80 [] i8042_timer_func+0x0/0x20 [] i8042_timer_func+0x1b/0x20 [] run_timer_softirq+0xff/0x1a0 [] scheduler_tick+0x123/0x480 [] __do_softirq+0xba/0xd0 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] schedule+0x30e/0x620 [] __alloc_pages+0x22b/0x390 [] read_swap_cache_async+0xb1/0xd0 [] swapin_readahead+0x4f/0x80 [] do_swap_page+0x1e4/0x290 [] pte_alloc_map+0x9a/0xc0 [] handle_mm_fault+0xf7/0x1a0 [] do_page_fault+0x19c/0x5c0 [] sd_rw_intr+0x5a/0x1e0 [] scsi_device_unbusy+0x44/0x80 [] update_wall_time+0x16/0x40 [] do_timer+0xc0/0xd0 [] timer_interrupt+0xc0/0x130 [] handle_IRQ_event+0x34/0x70 [] do_IRQ+0xca/0x130 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] scsi_device_unbusy+0x44/0x80 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] do_anonymous_page+0x95/0x180 [] swap_free+0x2f/0x50 [] do_no_page+0x60/0x290 [] handle_mm_fault+0x120/0x1a0 [] do_page_fault+0x19c/0x5c0 [] run_timer_softirq+0xff/0x1a0 [] scheduler_tick+0x123/0x480 [] __do_softirq+0xba/0xd0 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] scsi_device_unbusy+0x44/0x80 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] do_anonymous_page+0x95/0x180 [] swap_free+0x2f/0x50 [] do_no_page+0x60/0x290 [] handle_mm_fault+0x120/0x1a0 [] do_page_fault+0x19c/0x5c0 [] run_timer_softirq+0xff/0x1a0 [] scheduler_tick+0x123/0x480 [] __do_softirq+0xba/0xd0 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap+0x5f/0xc0 [] shrink_list+0x442/0x480 [] page_referenced_anon+0x7c/0x90 [] __pagevec_release+0x28/0x40 [] shrink_cache+0x17c/0x3d0 [] shrink_zone+0xba/0xf0 [] shrink_caches+0x76/0x80 [] try_to_free_pages+0xc4/0x1b0 [] __alloc_pages+0x22b/0x390 [] read_swap_cache_async+0xb1/0xd0 [] swapin_readahead+0x4f/0x80 [] do_swap_page+0x1e4/0x290 [] pte_alloc_map+0x9a/0xc0 [] handle_mm_fault+0xf7/0x1a0 [] do_page_fault+0x19c/0x5c0 [] pipe_write+0x38/0x40 [] dnotify_parent+0x3a/0xb0 [] vfs_write+0xd2/0x130 [] __do_softirq+0xba/0xd0 [] sys_write+0x51/0x80 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38 cc1: page allocation failure. order:0, mode:0x20 [] __alloc_pages+0x1c3/0x390 [] __get_free_pages+0x25/0x40 [] kmem_getpages+0x23/0xd0 [] cache_grow+0xaf/0x160 [] cache_alloc_refill+0x182/0x230 [] finish_task_switch+0x3c/0x90 [] kmem_cache_alloc+0x49/0x50 [] radix_tree_node_alloc+0x1f/0x70 [] radix_tree_insert+0xed/0x110 [] __add_to_swap_cache+0x71/0x100 [] add_to_swap_cache+0x34/0x80 [] read_swap_cache_async+0x61/0xd0 [] swapin_readahead+0x4f/0x80 [] do_swap_page+0x1e4/0x290 [] pte_alloc_map+0x9a/0xc0 [] handle_mm_fault+0xf7/0x1a0 [] do_page_fault+0x19c/0x5c0 [] run_timer_softirq+0xff/0x1a0 [] scheduler_tick+0x123/0x480 [] __do_softirq+0xba/0xd0 [] do_page_fault+0x0/0x5c0 [] error_code+0x2d/0x38