On Tuesday 03 November 2009, you wrote: > > With a representative test I get 0 for kswapd_slept_prematurely. > > Tested with .32-rc6 + patches 1-3 + this patch. > > Assuming the problem actually reproduced, can you still retest with the Yes, it does. > patch I posted as a follow-up and see if fast or slow premature sleeps > are happening and if the problem still occurs please? It's still > possible with the patch as-is could be timing related. After I posted > this patch, I continued testing and found I could get counts fairly > reliably if kswapd was calling printk() before making the premature > check so the window appears to be very small. Tested with .32-rc6 and .31.1. With that follow-up patch I still get freezes and SKB allocation errors. And I don't get anywhere near the fast, smooth and reliable behavior I get when I do the congestion_wait() reverts. The new case does trigger as you can see below, but I'm afraid I don't see it making any significant difference for my test. Hope the data is still useful for you. From vmstat for .32-rc6: kswapd_highorder_rewakeup 8 kswapd_slept_prematurely_fast 329 kswapd_slept_prematurely_slow 55 From vmstat for .31.1: kswapd_highorder_rewakeup 20 kswapd_slept_prematurely_fast 307 kswapd_slept_prematurely_slow 105 If you'd like me to test with the congestion_wait() revert on top of this for comparison, please let me know. Cheers, FJP P.S. Your follow-up patch did not apply cleanly on top of the debug one as you seem to have made some changes between posting them (dropped kswapd_ from the sleeping_prematurely() function name and added a comment).
nr_free_pages 4798 nr_inactive_anon 102550 nr_active_anon 305242 nr_inactive_file 17876 nr_active_file 13213 nr_unevictable 400 nr_mlock 400 nr_anon_pages 376898 nr_mapped 2769 nr_file_pages 63678 nr_dirty 18 nr_writeback 0 nr_slab_reclaimable 2236 nr_slab_unreclaimable 3984 nr_page_table_pages 3996 nr_kernel_stack 173 nr_unstable 0 nr_bounce 0 nr_vmscan_write 215582 nr_writeback_temp 0 nr_isolated_anon 0 nr_isolated_file 0 nr_shmem 17 pgpgin 607186 pgpgout 872956 pswpin 9397 pswpout 215580 pgalloc_dma 2128 pgalloc_dma32 1922180 pgalloc_normal 0 pgalloc_movable 0 pgfree 1929319 pgactivate 122493 pgdeactivate 383992 pgfault 2210388 pgmajfault 6625 pgrefill_dma 1792 pgrefill_dma32 386511 pgrefill_normal 0 pgrefill_movable 0 pgsteal_dma 41 pgsteal_dma32 295511 pgsteal_normal 0 pgsteal_movable 0 pgscan_kswapd_dma 64 pgscan_kswapd_dma32 379687 pgscan_kswapd_normal 0 pgscan_kswapd_movable 0 pgscan_direct_dma 36768 pgscan_direct_dma32 5233523 pgscan_direct_normal 0 pgscan_direct_movable 0 pginodesteal 2416 slabs_scanned 42240 kswapd_steal 241253 kswapd_inodesteal 6252 kswapd_highorder_rewakeup 20 kswapd_slept_prematurely_fast 307 kswapd_slept_prematurely_slow 105 pageoutrun 3394 allocstall 964 pgrotated 215342 unevictable_pgs_culled 4247 unevictable_pgs_scanned 0 unevictable_pgs_rescued 33344 unevictable_pgs_mlocked 43192 unevictable_pgs_munlocked 42780 unevictable_pgs_cleared 2 unevictable_pgs_stranded 0 unevictable_pgs_mlockfreed 0
nr_free_pages 5730 nr_inactive_anon 101680 nr_active_anon 304236 nr_inactive_file 18296 nr_active_file 14717 nr_unevictable 408 nr_mlock 408 nr_anon_pages 347177 nr_mapped 2751 nr_file_pages 93394 nr_dirty 8 nr_writeback 0 nr_slab_reclaimable 2218 nr_slab_unreclaimable 3670 nr_page_table_pages 3976 nr_unstable 0 nr_bounce 0 nr_vmscan_write 238631 nr_writeback_temp 0 pgpgin 594630 pgpgout 964231 pswpin 8629 pswpout 238627 pgalloc_dma 2169 pgalloc_dma32 1869092 pgalloc_normal 0 pgalloc_movable 0 pgfree 1877147 pgactivate 116309 pgdeactivate 372861 pgfault 2152528 pgmajfault 6806 pgrefill_dma 1410 pgrefill_dma32 375616 pgrefill_normal 0 pgrefill_movable 0 pgsteal_dma 54 pgsteal_dma32 285950 pgsteal_normal 0 pgsteal_movable 0 pgscan_kswapd_dma 96 pgscan_kswapd_dma32 564994 pgscan_kswapd_normal 0 pgscan_kswapd_movable 0 pgscan_direct_dma 448 pgscan_direct_dma32 268795 pgscan_direct_normal 0 pgscan_direct_movable 0 pginodesteal 2411 slabs_scanned 41600 kswapd_steal 247394 kswapd_inodesteal 6479 kswapd_highorder_rewakeup 8 kswapd_slept_prematurely_fast 329 kswapd_slept_prematurely_slow 55 pageoutrun 3525 allocstall 686 pgrotated 238322 unevictable_pgs_culled 4254 unevictable_pgs_scanned 0 unevictable_pgs_rescued 33336 unevictable_pgs_mlocked 43192 unevictable_pgs_munlocked 42772 unevictable_pgs_cleared 2 unevictable_pgs_stranded 0 unevictable_pgs_mlockfreed 0