New: kswapd in uninterruptible sleep state
Andrew Morton
maintainer(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 16 lines · On Fri, 25 Jan 2013 17:56:25 +0000 (UTC) [email protected]…
https://bugzilla.kernel.org/show_bug.cgi?id=53031
Summary: kswapd in uninterruptible sleep state
Product: Memory Management
Version: 2.5
Kernel Version: 3.7.3,3.7.4
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Other
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: No
I'd say "Regression: yes"!
Can you please run sysrq-W (or "echo w > /proc/sysrq-trigger" when kswapd is stuck so we can see where it is stuck?
Also sysrq-m when it is in that state would be useful, thanks.
[remainder retained for linux-mm to enjoy]
Quoted 433 lines
Created an attachment (id=91781)
--> (https://bugzilla.kernel.org/attachment.cgi?id=91781)
Script do show what has changed in/proc/vmstatI have recently upgraded from 3.2 to 3.7.3, and I am seeing, that the behavior of kswapd is strange at least.
The machine is core2duo e7200 with 4G RAM, running 3.7.3 kernel. It has compaction and THP (always) enabled.
The machine is serving files over the network, so it is constantly under memory pressure from page cache. The network is not very fast, and average disk read rate is between 2 and 8 megabytes per second.
In normal state, when page cache is filled, the free memory (according to free and vmstat) is fluctuating between 100 and 150 megabytes, with kswapd stepping in at 100M, quickly freeing to 150M and going to sleep again.
1) On 3.7.3, after several hours after page cache is filled, kswapd enters permanent D-state, with free memory keeping around 150M (high watermark, I presume?). I have captured diffs for
/proc/vmstat:$ ./diffshow 5 ----8<---- nr_free_pages:____________________________________38327 -> 38467 (140) nr_active_anon:__________________________________110014 -> 110056 (42) nr_inactive_file:______________________________526153 -> 526297 (144) nr_active_file:__________________________________98802 -> 98864 (62) nr_anon_pages:____________________________________103475 -> 103512 (37) nr_file_pages:____________________________________627957 -> 628160 (203) nr_dirty:______________________________________________15 -> 17 (2) nr_page_table_pages:________________________2142 -> 2146 (4) nr_kernel_stack:________________________________251 -> 253 (2) nr_dirtied:__________________________________________1169312 -> 1169317 (5) nr_written:__________________________________________1211979 -> 1211982 (3) nr_dirty_threshold:__________________________159540 -> 159617 (77) nr_dirty_background_threshold:____79770 -> 79808 (38) pgpgin:__________________________________________________564650577 -> 564673241 (22664) pgpgout:________________________________________________5117612 -> 5117668 (56) pgalloc_dma32:____________________________________105487556 -> 105491067 (3511) pgalloc_normal:__________________________________84026173 -> 84029309 (3136) pgfree:__________________________________________________190134573 -> 190141394 (6821) pgactivate:__________________________________________2750244 -> 2750283 (39) pgfault:________________________________________________67214984 -> 67216222 (1238) pgsteal_kswapd_dma32:______________________45793109 -> 45795077 (1968) pgsteal_kswapd_normal:____________________61391466 -> 61394464 (2998) pgscan_kswapd_dma32:________________________45812628 -> 45814596 (1968) pgscan_kswapd_normal:______________________61465283 -> 61468281 (2998) slabs_scanned:____________________________________30783104 -> 30786432 (3328) pageoutrun:__________________________________________2936967 -> 2937033 (66)vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----__r__b____swpd____free____buff__cache____si____so______bi______bo____in____cs us sy id wa __1__ 1 296924 153064____ 6936 2479664______ 0______ 0__ 5408________ 0 11711 1350__ 1__ 2 44 53 __0__ 1 296924 152448____ 6928 2480048______ 0______ 0__ 6760________ 0 9723 1127__ 1__ 4 47 48 __0__ 1 296924 152948____ 6916 2479464______ 0______ 0__ 3512______ 16 10392 1231__ 1__ 2 48 49 __0__ 1 296924 153616____ 6916 2478804______ 0______ 0__ 2724________ 0 10279 1078__ 0__ 2 48 49 __0__ 1 296924 152972____ 6916 2480132______ 0______ 0__ 3584________ 0 11289 1252__ 1__ 3 49 48 __0__ 1 296924 155348____ 6916 2478396______ 0______ 0__ 6472________ 0 11285 1132__ 1__ 2 45 53 __0__ 1 296924 152988____ 6916 2481024______ 0______ 0__ 5112______ 20 10039 1257__ 0__ 2 46 52 __0__ 1 296924 152968____ 6916 2481016______ 0______ 0__ 3244________ 0 9586 1127__ 1__ 3 46 51 __0__ 1 296924 153500____ 6916 2481196______ 0______ 0__ 3516________ 0 10899 1127__ 1__ 1 48 49 __0__ 1 296924 152860____ 6916 2481688______ 0______ 0__ 4240________ 0 10418 1245__ 1__ 3 47 49 __0__ 2 296924 153016____ 6912 2478584______ 0______ 0__ 5632________ 0 12136 1516__ 2__ 3 46 49 __0__ 2 296924 153292____ 6912 2480984______ 0______ 0__ 4668________ 0 10872 1248__ 1__ 2 49 48 __0__ 1 296924 152420____ 6916 2481844______ 0______ 0__ 4764______ 56 11236 1402__ 1__ 3 45 51 __0__ 1 296924 152652____ 6916 2481204______ 0______ 0__ 4628________ 0 9422 1208__ 0__ 3 46 51buddyinfo:
$ cat /proc/buddyinfo; sleep 1; cat /proc/buddyinfo Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32______ 515______ 205______ 242______ 201____ 1384______ 116________ 21__________ 8____ ____ 1__________ 0__________ 0 Node 0, zone____ Normal____ 1779__________ 0__________ 0________ 18________ 11__________ 3__________ 1__________ 3____ ____ 0__________ 0__________ 0 Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32______ 480______ 197______ 227______ 176____ 1384______ 116________ 21__________ 8____ ____ 1__________ 0__________ 0 Node 0, zone____ Normal____ 1792__________ 9__________ 0________ 18________ 11__________ 3__________ 1__________ 3____ ____ 0__________ 0__________ 02) Also from time to time situation switches, where free memory is fixed at
some random point, fluctuating around this values at +-1 megabyte.
There is vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----__r__b____swpd____free____buff__cache____si____so______bi______bo____in____cs us sy id wa __0__ 0 296480 381052____ 9732 2481324______ 1______ 2__ 2022______ 19____ 45____ 44__ 1__ 2 81 16 __0__ 0 296480 382040____ 9732 2481180______ 0______ 0__ 2324________ 0 6505__ 825__ 1__ 2 96__ 1 __0__ 0 296480 382500____ 9732 2481060______ 0______ 0__ 3824________ 0 5941 1046__ 1__ 2 96__ 1 __0__ 0 296480 382092____ 9740 2480976______ 0______ 0__ 2048______ 16 7701__ 862__ 0__ 2 97__ 1 __0__ 0 296480 382160____ 9740 2481896______ 0______ 0__ 5008________ 0 6443 1017__ 1__ 2 93__ 5 __0__ 0 296480 382484____ 9740 2481668______ 0______ 0__ 2764________ 0 6972__ 799__ 0__ 2 97__ 1 __0__ 0 296480 381912____ 9740 2481620______ 0______ 0__ 3780________ 0 7632 1036__ 1__ 2 96__ 1 __0__ 0 296480 382240____ 9744 2481632______ 0______ 0__ 2796________ 0 7533__ 981__ 1__ 2 95__ 3 __1__ 0 296480 382372____ 9748 2481756______ 0______ 0__ 2940________ 0 6565 1048__ 2__ 2 95__ 2 __0__ 0 296480 383064____ 9748 2480320______ 0______ 0__ 5980________ 0 6352__ 979__ 0__ 3 92__ 5 __0__ 0 296480 381380____ 9748 2481752______ 0______ 0__ 2732________ 0 6322__ 999__ 1__ 2 96__ 1 __0__ 0 296480 381640____ 9748 2481992______ 0______ 0__ 2468________ 0 5640__ 849__ 0__ 2 97__ 2 __0__ 0 296480 381684____ 9748 2481856______ 0______ 0__ 2760________ 0 7064__ 944__ 2__ 2 95__ 1 __0__ 0 296480 381908____ 9748 2481664______ 0______ 0__ 2608________ 0 6797__ 952__ 0__ 2 94__ 4 __0__ 0 296480 384024____ 9748 2479424______ 0______ 0__ 4804________ 0 6342 2767__ 1__ 2 94__ 4 __0__ 0 296480 381948____ 9748 2481080______ 0______ 0__ 1868________ 0 6428__ 803__ 0__ 2 97__ 2 __0__ 0 296480 382088____ 9748 2481524______ 0______ 0__ 3252________ 0 6464__ 990__ 1__ 1 98__ 1 __0__ 0 296480 381884____ 9748 2481816______ 0______ 0__ 2892________ 0 7880__ 858__ 1__ 2 94__ 3 __0__ 0 296480 382120____ 9748 2481848______ 0______ 0__ 2500________ 0 6207__ 905__ 1__ 1 96__ 2 __0__ 1 296480 381976____ 9748 2479876______ 0______ 0__ 5188________ 0 6691__ 908__ 1__ 2 94__ 4 __0__ 0 296480 381708____ 9748 2481584______ 0______ 0__ 2692________ 0 7904 1030__ 1__ 2 94__ 3 __0__ 0 296480 382196____ 9748 2481704______ 0______ 0__ 2092________ 0 6715__ 722__ 1__ 1 97__ 1The
/proc/vmstatdiff is like this:$ ./diffshow 5 ----8<---- nr_free_pages:____________________________________94999 -> 95630 (631) nr_inactive_anon:______________________________47076 -> 47196 (120) nr_inactive_file:______________________________347048 -> 347080 (32) nr_active_file:__________________________________270128 -> 270462 (334) nr_file_pages:____________________________________619886 -> 620314 (428) nr_dirty:______________________________________________10 -> 109 (99) nr_kernel_stack:________________________________248 -> 249 (1) nr_isolated_file:______________________________0 -> 10 (10) nr_dirtied:__________________________________________1147486 -> 1147659 (173) nr_written:__________________________________________1189947 -> 1190013 (66) nr_dirty_threshold:__________________________168770 -> 168974 (204) nr_dirty_background_threshold:____84385 -> 84487 (102) pgpgin:__________________________________________________528729753 -> 528750521 (20768) pgpgout:________________________________________________5013688 -> 5014216 (528) pswpin:__________________________________________________77715 -> 77827 (112) pgalloc_dma32:____________________________________95912002 -> 95912631 (629) pgalloc_normal:__________________________________82241808 -> 82247860 (6052) pgfree:__________________________________________________178827810 -> 178834939 (7129) pgactivate:__________________________________________2644761 -> 2645104 (343) pgfault:________________________________________________63365808 -> 63369261 (3453) pgmajfault:__________________________________________23571 -> 23591 (20) pgsteal_kswapd_normal:____________________60067802 -> 60072006 (4204) pgscan_kswapd_normal:______________________60141548 -> 60145753 (4205) slabs_scanned:____________________________________28914432 -> 28915456 (1024) kswapd_low_wmark_hit_quickly:______589343 -> 589376 (33) kswapd_high_wmark_hit_quickly:____763703 -> 763752 (49) pageoutrun:__________________________________________2852120 -> 2852305 (185) compact_blocks_moved:______________________10852682 -> 10852847 (165) compact_pagemigrate_failed:__________39862700 -> 39865324 (2624)kswapd is stuck on normal zone!
Also there is raw vmstat:
nr_free_pages95343nr_inactive_anon47196nr_active_anon114110nr_inactive_file348142nr_active_file272638nr_unevictable552nr_mlock552nr_anon_pages100386nr_mapped6158nr_file_pages623530nr_dirty0nr_writeback0nr_slab_reclaimable21356nr_slab_unreclaimable15570nr_page_table_pages2045nr_kernel_stack244nr_unstable0nr_bounce0nr_vmscan_write149405nr_vmscan_immediate_reclaim13896nr_writeback_temp0nr_isolated_anon0nr_isolated_file4nr_shmem48nr_dirtied1147666nr_written1190129nr_anon_transparent_hugepages116nr_free_cma0nr_dirty_threshold169553nr_dirty_background_threshold84776
pgpgin 529292001
pgpgout 5014788
pswpin 77827
pswpout 148890pgalloc_dma0pgalloc_dma3295940824pgalloc_normal82395157pgalloc_movable0
pgfree 179010711
pgactivate 2647284
pgdeactivate 2513412
pgfault 63427189
pgmajfault 23606pgrefill_dma0pgrefill_dma321915983pgrefill_normal430939pgrefill_movable0pgsteal_kswapd_dma0pgsteal_kswapd_dma3239927548pgsteal_kswapd_normal60180622pgsteal_kswapd_movable0pgsteal_direct_dma0pgsteal_direct_dma3214062458pgsteal_direct_normal1894412pgsteal_direct_movable0pgscan_kswapd_dma0pgscan_kswapd_dma3239946808pgscan_kswapd_normal60254407pgscan_kswapd_movable0pgscan_direct_dma0pgscan_direct_dma3214260652pgscan_direct_normal1895350pgscan_direct_movable0pgscan_direct_throttle0
pginodesteal 25301slabs_scanned28931968kswapd_inodesteal26119kswapd_low_wmark_hit_quickly591050kswapd_high_wmark_hit_quickly766006kswapd_skip_congestion_wait15
pageoutrun 2858733
allocstall 156938
pgrotated 161518compact_blocks_moved10860505compact_pages_moved411760compact_pagemigrate_failed39987369compact_stall29399compact_fail23718compact_success5681htlb_buddy_alloc_success0htlb_buddy_alloc_fail0unevictable_pgs_culled6416unevictable_pgs_scanned0unevictable_pgs_rescued5337unevictable_pgs_mlocked6672unevictable_pgs_munlocked6120unevictable_pgs_cleared0unevictable_pgs_stranded0thp_fault_alloc41thp_fault_fallback302thp_collapse_alloc507thp_collapse_alloc_failed3704thp_split111Buddyinfo:
$ cat /proc/buddyinfo; sleep 1; cat /proc/buddyinfo Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32__ 29527__ 26916______ 489______ 221________ 40__________ 5__________ 0__________ 0____ ____ 0__________ 0__________ 0 Node 0, zone____ Normal____ 3158__________ 0__________ 0__________ 2__________ 1__________ 1__________ 1__________ 1____ ____ 0__________ 0__________ 0 Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32__ 29527__ 26909______ 489______ 211________ 41__________ 5__________ 0__________ 0____ ____ 0__________ 0__________ 0 Node 0, zone____ Normal____ 2790________ 29__________ 0__________ 8__________ 1__________ 1__________ 1__________ 1____ ____ 0__________ 0__________ 0Zoneinfo:
$ cat /proc/zoneinfo Node 0, zone__________ DMA __ pages free________ 3976 ______________ min__________ 64 ______________ low__________ 80 ______________ high________ 96 ______________ scanned__ 0 ______________ spanned__ 4080 ______________ present__ 3912 ______ nr_free_pages 3976 ______ nr_inactive_anon 0 ______ nr_active_anon 0 ______ nr_inactive_file 0 ______ nr_active_file 0 ______ nr_unevictable 0 ______ nr_mlock________ 0 ______ nr_anon_pages 0 ______ nr_mapped______ 0 ______ nr_file_pages 0 ______ nr_dirty________ 0 ______ nr_writeback 0 ______ nr_slab_reclaimable 0 ______ nr_slab_unreclaimable 0 ______ nr_page_table_pages 0 ______ nr_kernel_stack 0 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 0 ______ nr_vmscan_immediate_reclaim 0 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 0 ______ nr_shmem________ 0 ______ nr_dirtied____ 0 ______ nr_written____ 0 ______ nr_anon_transparent_hugepages 0 ______ nr_free_cma__ 0 ______________ protection: (0, 3503, 4007, 4007) __ pagesets ______ cpu: 0 __________________________ count: 0 __________________________ high:__ 0 __________________________ batch: 1 __ vm stats threshold: 8 ______ cpu: 1 __________________________ count: 0 __________________________ high:__ 0 __________________________ batch: 1 __ vm stats threshold: 8 __ all_unreclaimable: 1 __ start_pfn:________________ 16 __ inactive_ratio:______ 1 Node 0, zone______ DMA32 __ pages free________ 87395 ______________ min__________ 14715 ______________ low__________ 18393 ______________ high________ 22072 ______________ scanned__ 0 ______________ spanned__ 1044480 ______________ present__ 896960 ______ nr_free_pages 87395 ______ nr_inactive_anon 18907 ______ nr_active_anon 92242 ______ nr_inactive_file 325044 ______ nr_active_file 267577 ______ nr_unevictable 0 ______ nr_mlock________ 0 ______ nr_anon_pages 51703 ______ nr_mapped______ 4369 ______ nr_file_pages 593009 ______ nr_dirty________ 17 ______ nr_writeback 0 ______ nr_slab_reclaimable 14988 ______ nr_slab_unreclaimable 11515 ______ nr_page_table_pages 1305 ______ nr_kernel_stack 133 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 140220 ______ nr_vmscan_immediate_reclaim 62 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 0 ______ nr_shmem________ 10 ______ nr_dirtied____ 810741 ______ nr_written____ 862763 ______ nr_anon_transparent_hugepages 116 ______ nr_free_cma__ 0 ______________ protection: (0, 0, 504, 504) __ pagesets ______ cpu: 0 __________________________ count: 123 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 24 ______ cpu: 1 __________________________ count: 29 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 24 __ all_unreclaimable: 0 __ start_pfn:________________ 4096 __ inactive_ratio:______ 5 Node 0, zone____ Normal __ pages free________ 3200 ______________ min__________ 2116 ______________ low__________ 2645 ______________ high________ 3174 ______________ scanned__ 0 ______________ spanned__ 131072 ______________ present__ 129024 ______ nr_free_pages 3200 ______ nr_inactive_anon 25943 ______ nr_active_anon 24590 ______ nr_inactive_file 23132 ______ nr_active_file 10275 ______ nr_unevictable 552 ______ nr_mlock________ 552 ______ nr_anon_pages 49050 ______ nr_mapped______ 2088 ______ nr_file_pages 35785 ______ nr_dirty________ 3 ______ nr_writeback 0 ______ nr_slab_reclaimable 2340 ______ nr_slab_unreclaimable 3926 ______ nr_page_table_pages 786 ______ nr_kernel_stack 114 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 9297 ______ nr_vmscan_immediate_reclaim 13835 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 10 ______ nr_shmem________ 38 ______ nr_dirtied____ 338110 ______ nr_written____ 328638 ______ nr_anon_transparent_hugepages 0 ______ nr_free_cma__ 0 ______________ protection: (0, 0, 0, 0) __ pagesets ______ cpu: 0 __________________________ count: 152 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 12 ______ cpu: 1 __________________________ count: 172 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 12 __ all_unreclaimable: 0 __ start_pfn:________________ 1048576 __ inactive_ratio:______ 1I have tried disabling compaction (1000
Quoted 1 line
/proc/sys/vm/extdefrag_threshold), and symptoms do change. There is nokswapd stuck in D, but instead page cache is almost cleaned from time to time
Also I have a piece of code, which can reproduce the first problem with kswapd in D state on another amd64 system, which has normal zone artificially limited to the same ratio against dma32 zone. It needs a large file, which is at least twice as large as system RAM (the larger the better):
dd if=/dev/zero of=tf bs=1M count=$((1024*8))Then start smth like this:
./a.out tf 32
and let it run for some time to fill the page cache.
Quoted 12 lines
The code will random read the file in fixed chunks at fixed rate in two "streams": one stream of 1/3 rate will be scattered across the whole file and mark pages with WILLNEED. Another stream at 2/3 rate is contained in 1/10 of a file and will not pass any hints.
3) Now I am running 3.7.4, and atm I see the second problem again, i.e. kswapd is stuck on zone normal.
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
D? D?N?., 31/01/2013 D2 13:42 -0800, Andrew Morton D?D,N?DuN?:
Quoted 23 lines
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 16 lines · On Fri, 25 Jan 2013 17:56:25 +0000 (UTC) [email protected]…
https://bugzilla.kernel.org/show_bug.cgi?id=53031
Summary: kswapd in uninterruptible sleep state
Product: Memory Management
Version: 2.5
Kernel Version: 3.7.3,3.7.4
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Other
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: No
Quoted 4 lines
I'd say "Regression: yes"!
Can you please run sysrq-W (or "echo w >
/proc/sysrq-trigger" when kswapd is stuck so we can see where it is stuck?
Feb 1 12:23:03 heimdall kernel: SysRq : Show Blocked State Feb 1 12:23:03 heimdall kernel: task PC stack pid father Feb 1 12:23:03 heimdall kernel: kswapd0 D ffff88011fc110c0 0 402 2 0x00000000 Feb 1 12:23:03 heimdall kernel: ffff88011a86b000 0000000000000046 ffff88011b2adc28 ffffffff81613420 Feb 1 12:23:03 heimdall kernel: ffff88011b2adfd8 ffff88011b2adfd8 ffff88011b2adfd8 ffff88011a86b000 Feb 1 12:23:03 heimdall kernel: 0000000000000286 ffff88011b2adc98 ffffffff81746fc0 000000010043a0ff Feb 1 12:23:03 heimdall kernel: Call Trace: Feb 1 12:23:03 heimdall kernel: [<ffffffff813a5bc1>] ? schedule_timeout+0x141/0x1f0 Feb 1 12:23:03 heimdall kernel: [<ffffffff8103fff0>] ? usleep_range+0x40/0x40 Feb 1 12:23:03 heimdall kernel: [<ffffffff813a73b0>] ? io_schedule_timeout+0x60/0x90 Feb 1 12:23:03 heimdall kernel: [<ffffffff810bb39a>] ? congestion_wait+0x7a/0xc0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050cb0>] ? add_wait_queue+0x60/0x60 Feb 1 12:23:03 heimdall kernel: [<ffffffff810b4cf4>] ? kswapd+0x844/0x9f0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050cb0>] ? add_wait_queue+0x60/0x60 Feb 1 12:23:03 heimdall kernel: [<ffffffff810b44b0>] ? shrink_lruvec+0x540/0x540 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050523>] ? kthread+0xb3/0xc0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050470>] ? flush_kthread_work+0x110/0x110 Feb 1 12:23:03 heimdall kernel: [<ffffffff813a866c>] ? ret_from_fork+0x7c/0xb0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050470>] ? flush_kthread_work+0x110/0x110
Quoted 1 line
Also sysrq-m when it is in that state would be useful, thanks.
Feb 1 12:24:07 heimdall kernel: SysRq : Show Memory Feb 1 12:24:07 heimdall kernel: Mem-Info: Feb 1 12:24:07 heimdall kernel: DMA per-cpu: Feb 1 12:24:07 heimdall kernel: CPU 0: hi: 0, btch: 1 usd: 0 Feb 1 12:24:07 heimdall kernel: CPU 1: hi: 0, btch: 1 usd: 0 Feb 1 12:24:07 heimdall kernel: DMA32 per-cpu: Feb 1 12:24:07 heimdall kernel: CPU 0: hi: 186, btch: 31 usd: 16 Feb 1 12:24:07 heimdall kernel: CPU 1: hi: 186, btch: 31 usd: 123 Feb 1 12:24:07 heimdall kernel: Normal per-cpu: Feb 1 12:24:07 heimdall kernel: CPU 0: hi: 186, btch: 31 usd: 45 Feb 1 12:24:07 heimdall kernel: CPU 1: hi: 186, btch: 31 usd: 164 Feb 1 12:24:07 heimdall kernel: active_anon:168267 inactive_anon:55882 isolated_anon:0 Feb 1 12:24:07 heimdall kernel: active_file:311587 inactive_file:312300 isolated_file:0 Feb 1 12:24:07 heimdall kernel: unevictable:552 dirty:22 writeback:0 unstable:0 Feb 1 12:24:07 heimdall kernel: free:38634 slab_reclaimable:20255 slab_unreclaimable:15014 Feb 1 12:24:07 heimdall kernel: mapped:6615 shmem:337 pagetables:2304 bounce:0 Feb 1 12:24:07 heimdall kernel: free_cma:0 Feb 1 12:24:07 heimdall kernel: DMA free:15904kB min:256kB low:320kB high:384kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15648kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes Feb 1 12:24:07 heimdall kernel: lowmem_reserve[]: 0 3503 4007 4007 Feb 1 12:24:07 heimdall kernel: DMA32 free:126528kB min:58860kB low:73572kB high:88288kB active_anon:568560kB inactive_anon:116272kB active_file:1189340kB inactive_file:1191388kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:3587840kB mlocked:0kB dirty:72kB writeback:0kB mapped:15024kB shmem:1336kB slab_reclaimable:68328kB slab_unreclaimable:31484kB kernel_stack:832kB pagetables:7028kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no Feb 1 12:24:07 heimdall kernel: lowmem_reserve[]: 0 0 504 504 Feb 1 12:24:07 heimdall kernel: Normal free:12104kB min:8464kB low:10580kB high:12696kB active_anon:104508kB inactive_anon:107256kB active_file:57008kB inactive_file:57812kB unevictable:2208kB isolated(anon):0kB isolated(file):0kB present:516096kB mlocked:2208kB dirty:16kB writeback:0kB mapped:11436kB shmem:12kB slab_reclaimable:12692kB slab_unreclaimable:28572kB kernel_stack:968kB pagetables:2188kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no Feb 1 12:24:07 heimdall kernel: lowmem_reserve[]: 0 0 0 0 Feb 1 12:24:07 heimdall kernel: DMA: 0*4kB 0*8kB 0*16kB 1*32kB 2*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 3*4096kB = 15904kB Feb 1 12:24:07 heimdall kernel: DMA32: 25706*4kB 1119*8kB 304*16kB 223*32kB 37*64kB 3*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 126528kB Feb 1 12:24:07 heimdall kernel: Normal: 880*4kB 263*8kB 191*16kB 4*32kB 16*64kB 6*128kB 2*256kB 2*512kB 0*1024kB 0*2048kB 0*4096kB = 12136kB Feb 1 12:24:07 heimdall kernel: 625162 total pagecache pages Feb 1 12:24:07 heimdall kernel: 463 pages in swap cache Feb 1 12:24:07 heimdall kernel: Swap cache stats: add 5970, delete 5507, find 3004/3260 Feb 1 12:24:07 heimdall kernel: Free swap = 4184860kB Feb 1 12:24:07 heimdall kernel: Total swap = 4194300kB Feb 1 12:24:07 heimdall kernel: 1048560 pages RAM Feb 1 12:24:07 heimdall kernel: 36198 pages reserved Feb 1 12:24:07 heimdall kernel: 730743 pages shared Feb 1 12:24:07 heimdall kernel: 796007 pages non-shared
Quoted 447 lines
[remainder retained for linux-mm to enjoy]
Quoted 445 lines
Created an attachment (id=91781)
--> (https://bugzilla.kernel.org/attachment.cgi?id=91781)
Script do show what has changed in/proc/vmstatI have recently upgraded from 3.2 to 3.7.3, and I am seeing, that the behavior of kswapd is strange at least.
The machine is core2duo e7200 with 4G RAM, running 3.7.3 kernel. It has compaction and THP (always) enabled.
The machine is serving files over the network, so it is constantly under memory pressure from page cache. The network is not very fast, and average disk read rate is between 2 and 8 megabytes per second.
In normal state, when page cache is filled, the free memory (according to free and vmstat) is fluctuating between 100 and 150 megabytes, with kswapd stepping in at 100M, quickly freeing to 150M and going to sleep again.
1) On 3.7.3, after several hours after page cache is filled, kswapd enters permanent D-state, with free memory keeping around 150M (high watermark, I presume?). I have captured diffs for
/proc/vmstat:$ ./diffshow 5 ----8<---- nr_free_pages:____________________________________38327 -> 38467 (140) nr_active_anon:__________________________________110014 -> 110056 (42) nr_inactive_file:______________________________526153 -> 526297 (144) nr_active_file:__________________________________98802 -> 98864 (62) nr_anon_pages:____________________________________103475 -> 103512 (37) nr_file_pages:____________________________________627957 -> 628160 (203) nr_dirty:______________________________________________15 -> 17 (2) nr_page_table_pages:________________________2142 -> 2146 (4) nr_kernel_stack:________________________________251 -> 253 (2) nr_dirtied:__________________________________________1169312 -> 1169317 (5) nr_written:__________________________________________1211979 -> 1211982 (3) nr_dirty_threshold:__________________________159540 -> 159617 (77) nr_dirty_background_threshold:____79770 -> 79808 (38) pgpgin:__________________________________________________564650577 -> 564673241 (22664) pgpgout:________________________________________________5117612 -> 5117668 (56) pgalloc_dma32:____________________________________105487556 -> 105491067 (3511) pgalloc_normal:__________________________________84026173 -> 84029309 (3136) pgfree:__________________________________________________190134573 -> 190141394 (6821) pgactivate:__________________________________________2750244 -> 2750283 (39) pgfault:________________________________________________67214984 -> 67216222 (1238) pgsteal_kswapd_dma32:______________________45793109 -> 45795077 (1968) pgsteal_kswapd_normal:____________________61391466 -> 61394464 (2998) pgscan_kswapd_dma32:________________________45812628 -> 45814596 (1968) pgscan_kswapd_normal:______________________61465283 -> 61468281 (2998) slabs_scanned:____________________________________30783104 -> 30786432 (3328) pageoutrun:__________________________________________2936967 -> 2937033 (66)vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----__r__b____swpd____free____buff__cache____si____so______bi______bo____in____cs us sy id wa __1__ 1 296924 153064____ 6936 2479664______ 0______ 0__ 5408________ 0 11711 1350__ 1__ 2 44 53 __0__ 1 296924 152448____ 6928 2480048______ 0______ 0__ 6760________ 0 9723 1127__ 1__ 4 47 48 __0__ 1 296924 152948____ 6916 2479464______ 0______ 0__ 3512______ 16 10392 1231__ 1__ 2 48 49 __0__ 1 296924 153616____ 6916 2478804______ 0______ 0__ 2724________ 0 10279 1078__ 0__ 2 48 49 __0__ 1 296924 152972____ 6916 2480132______ 0______ 0__ 3584________ 0 11289 1252__ 1__ 3 49 48 __0__ 1 296924 155348____ 6916 2478396______ 0______ 0__ 6472________ 0 11285 1132__ 1__ 2 45 53 __0__ 1 296924 152988____ 6916 2481024______ 0______ 0__ 5112______ 20 10039 1257__ 0__ 2 46 52 __0__ 1 296924 152968____ 6916 2481016______ 0______ 0__ 3244________ 0 9586 1127__ 1__ 3 46 51 __0__ 1 296924 153500____ 6916 2481196______ 0______ 0__ 3516________ 0 10899 1127__ 1__ 1 48 49 __0__ 1 296924 152860____ 6916 2481688______ 0______ 0__ 4240________ 0 10418 1245__ 1__ 3 47 49 __0__ 2 296924 153016____ 6912 2478584______ 0______ 0__ 5632________ 0 12136 1516__ 2__ 3 46 49 __0__ 2 296924 153292____ 6912 2480984______ 0______ 0__ 4668________ 0 10872 1248__ 1__ 2 49 48 __0__ 1 296924 152420____ 6916 2481844______ 0______ 0__ 4764______ 56 11236 1402__ 1__ 3 45 51 __0__ 1 296924 152652____ 6916 2481204______ 0______ 0__ 4628________ 0 9422 1208__ 0__ 3 46 51buddyinfo:
$ cat /proc/buddyinfo; sleep 1; cat /proc/buddyinfo Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32______ 515______ 205______ 242______ 201____ 1384______ 116________ 21__________ 8____ ____ 1__________ 0__________ 0 Node 0, zone____ Normal____ 1779__________ 0__________ 0________ 18________ 11__________ 3__________ 1__________ 3____ ____ 0__________ 0__________ 0 Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32______ 480______ 197______ 227______ 176____ 1384______ 116________ 21__________ 8____ ____ 1__________ 0__________ 0 Node 0, zone____ Normal____ 1792__________ 9__________ 0________ 18________ 11__________ 3__________ 1__________ 3____ ____ 0__________ 0__________ 02) Also from time to time situation switches, where free memory is fixed at
some random point, fluctuating around this values at +-1 megabyte.
There is vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----__r__b____swpd____free____buff__cache____si____so______bi______bo____in____cs us sy id wa __0__ 0 296480 381052____ 9732 2481324______ 1______ 2__ 2022______ 19____ 45____ 44__ 1__ 2 81 16 __0__ 0 296480 382040____ 9732 2481180______ 0______ 0__ 2324________ 0 6505__ 825__ 1__ 2 96__ 1 __0__ 0 296480 382500____ 9732 2481060______ 0______ 0__ 3824________ 0 5941 1046__ 1__ 2 96__ 1 __0__ 0 296480 382092____ 9740 2480976______ 0______ 0__ 2048______ 16 7701__ 862__ 0__ 2 97__ 1 __0__ 0 296480 382160____ 9740 2481896______ 0______ 0__ 5008________ 0 6443 1017__ 1__ 2 93__ 5 __0__ 0 296480 382484____ 9740 2481668______ 0______ 0__ 2764________ 0 6972__ 799__ 0__ 2 97__ 1 __0__ 0 296480 381912____ 9740 2481620______ 0______ 0__ 3780________ 0 7632 1036__ 1__ 2 96__ 1 __0__ 0 296480 382240____ 9744 2481632______ 0______ 0__ 2796________ 0 7533__ 981__ 1__ 2 95__ 3 __1__ 0 296480 382372____ 9748 2481756______ 0______ 0__ 2940________ 0 6565 1048__ 2__ 2 95__ 2 __0__ 0 296480 383064____ 9748 2480320______ 0______ 0__ 5980________ 0 6352__ 979__ 0__ 3 92__ 5 __0__ 0 296480 381380____ 9748 2481752______ 0______ 0__ 2732________ 0 6322__ 999__ 1__ 2 96__ 1 __0__ 0 296480 381640____ 9748 2481992______ 0______ 0__ 2468________ 0 5640__ 849__ 0__ 2 97__ 2 __0__ 0 296480 381684____ 9748 2481856______ 0______ 0__ 2760________ 0 7064__ 944__ 2__ 2 95__ 1 __0__ 0 296480 381908____ 9748 2481664______ 0______ 0__ 2608________ 0 6797__ 952__ 0__ 2 94__ 4 __0__ 0 296480 384024____ 9748 2479424______ 0______ 0__ 4804________ 0 6342 2767__ 1__ 2 94__ 4 __0__ 0 296480 381948____ 9748 2481080______ 0______ 0__ 1868________ 0 6428__ 803__ 0__ 2 97__ 2 __0__ 0 296480 382088____ 9748 2481524______ 0______ 0__ 3252________ 0 6464__ 990__ 1__ 1 98__ 1 __0__ 0 296480 381884____ 9748 2481816______ 0______ 0__ 2892________ 0 7880__ 858__ 1__ 2 94__ 3 __0__ 0 296480 382120____ 9748 2481848______ 0______ 0__ 2500________ 0 6207__ 905__ 1__ 1 96__ 2 __0__ 1 296480 381976____ 9748 2479876______ 0______ 0__ 5188________ 0 6691__ 908__ 1__ 2 94__ 4 __0__ 0 296480 381708____ 9748 2481584______ 0______ 0__ 2692________ 0 7904 1030__ 1__ 2 94__ 3 __0__ 0 296480 382196____ 9748 2481704______ 0______ 0__ 2092________ 0 6715__ 722__ 1__ 1 97__ 1The
/proc/vmstatdiff is like this:$ ./diffshow 5 ----8<---- nr_free_pages:____________________________________94999 -> 95630 (631) nr_inactive_anon:______________________________47076 -> 47196 (120) nr_inactive_file:______________________________347048 -> 347080 (32) nr_active_file:__________________________________270128 -> 270462 (334) nr_file_pages:____________________________________619886 -> 620314 (428) nr_dirty:______________________________________________10 -> 109 (99) nr_kernel_stack:________________________________248 -> 249 (1) nr_isolated_file:______________________________0 -> 10 (10) nr_dirtied:__________________________________________1147486 -> 1147659 (173) nr_written:__________________________________________1189947 -> 1190013 (66) nr_dirty_threshold:__________________________168770 -> 168974 (204) nr_dirty_background_threshold:____84385 -> 84487 (102) pgpgin:__________________________________________________528729753 -> 528750521 (20768) pgpgout:________________________________________________5013688 -> 5014216 (528) pswpin:__________________________________________________77715 -> 77827 (112) pgalloc_dma32:____________________________________95912002 -> 95912631 (629) pgalloc_normal:__________________________________82241808 -> 82247860 (6052) pgfree:__________________________________________________178827810 -> 178834939 (7129) pgactivate:__________________________________________2644761 -> 2645104 (343) pgfault:________________________________________________63365808 -> 63369261 (3453) pgmajfault:__________________________________________23571 -> 23591 (20) pgsteal_kswapd_normal:____________________60067802 -> 60072006 (4204) pgscan_kswapd_normal:______________________60141548 -> 60145753 (4205) slabs_scanned:____________________________________28914432 -> 28915456 (1024) kswapd_low_wmark_hit_quickly:______589343 -> 589376 (33) kswapd_high_wmark_hit_quickly:____763703 -> 763752 (49) pageoutrun:__________________________________________2852120 -> 2852305 (185) compact_blocks_moved:______________________10852682 -> 10852847 (165) compact_pagemigrate_failed:__________39862700 -> 39865324 (2624)kswapd is stuck on normal zone!
Also there is raw vmstat:
nr_free_pages95343nr_inactive_anon47196nr_active_anon114110nr_inactive_file348142nr_active_file272638nr_unevictable552nr_mlock552nr_anon_pages100386nr_mapped6158nr_file_pages623530nr_dirty0nr_writeback0nr_slab_reclaimable21356nr_slab_unreclaimable15570nr_page_table_pages2045nr_kernel_stack244nr_unstable0nr_bounce0nr_vmscan_write149405nr_vmscan_immediate_reclaim13896nr_writeback_temp0nr_isolated_anon0nr_isolated_file4nr_shmem48nr_dirtied1147666nr_written1190129nr_anon_transparent_hugepages116nr_free_cma0nr_dirty_threshold169553nr_dirty_background_threshold84776
pgpgin 529292001
pgpgout 5014788
pswpin 77827
pswpout 148890pgalloc_dma0pgalloc_dma3295940824pgalloc_normal82395157pgalloc_movable0
pgfree 179010711
pgactivate 2647284
pgdeactivate 2513412
pgfault 63427189
pgmajfault 23606pgrefill_dma0pgrefill_dma321915983pgrefill_normal430939pgrefill_movable0pgsteal_kswapd_dma0pgsteal_kswapd_dma3239927548pgsteal_kswapd_normal60180622pgsteal_kswapd_movable0pgsteal_direct_dma0pgsteal_direct_dma3214062458pgsteal_direct_normal1894412pgsteal_direct_movable0pgscan_kswapd_dma0pgscan_kswapd_dma3239946808pgscan_kswapd_normal60254407pgscan_kswapd_movable0pgscan_direct_dma0pgscan_direct_dma3214260652pgscan_direct_normal1895350pgscan_direct_movable0pgscan_direct_throttle0
pginodesteal 25301slabs_scanned28931968kswapd_inodesteal26119kswapd_low_wmark_hit_quickly591050kswapd_high_wmark_hit_quickly766006kswapd_skip_congestion_wait15
pageoutrun 2858733
allocstall 156938
pgrotated 161518compact_blocks_moved10860505compact_pages_moved411760compact_pagemigrate_failed39987369compact_stall29399compact_fail23718compact_success5681htlb_buddy_alloc_success0htlb_buddy_alloc_fail0unevictable_pgs_culled6416unevictable_pgs_scanned0unevictable_pgs_rescued5337unevictable_pgs_mlocked6672unevictable_pgs_munlocked6120unevictable_pgs_cleared0unevictable_pgs_stranded0thp_fault_alloc41thp_fault_fallback302thp_collapse_alloc507thp_collapse_alloc_failed3704thp_split111Buddyinfo:
$ cat /proc/buddyinfo; sleep 1; cat /proc/buddyinfo Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32__ 29527__ 26916______ 489______ 221________ 40__________ 5__________ 0__________ 0____ ____ 0__________ 0__________ 0 Node 0, zone____ Normal____ 3158__________ 0__________ 0__________ 2__________ 1__________ 1__________ 1__________ 1____ ____ 0__________ 0__________ 0 Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32__ 29527__ 26909______ 489______ 211________ 41__________ 5__________ 0__________ 0____ ____ 0__________ 0__________ 0 Node 0, zone____ Normal____ 2790________ 29__________ 0__________ 8__________ 1__________ 1__________ 1__________ 1____ ____ 0__________ 0__________ 0Zoneinfo:
$ cat /proc/zoneinfo Node 0, zone__________ DMA __ pages free________ 3976 ______________ min__________ 64 ______________ low__________ 80 ______________ high________ 96 ______________ scanned__ 0 ______________ spanned__ 4080 ______________ present__ 3912 ______ nr_free_pages 3976 ______ nr_inactive_anon 0 ______ nr_active_anon 0 ______ nr_inactive_file 0 ______ nr_active_file 0 ______ nr_unevictable 0 ______ nr_mlock________ 0 ______ nr_anon_pages 0 ______ nr_mapped______ 0 ______ nr_file_pages 0 ______ nr_dirty________ 0 ______ nr_writeback 0 ______ nr_slab_reclaimable 0 ______ nr_slab_unreclaimable 0 ______ nr_page_table_pages 0 ______ nr_kernel_stack 0 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 0 ______ nr_vmscan_immediate_reclaim 0 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 0 ______ nr_shmem________ 0 ______ nr_dirtied____ 0 ______ nr_written____ 0 ______ nr_anon_transparent_hugepages 0 ______ nr_free_cma__ 0 ______________ protection: (0, 3503, 4007, 4007) __ pagesets ______ cpu: 0 __________________________ count: 0 __________________________ high:__ 0 __________________________ batch: 1 __ vm stats threshold: 8 ______ cpu: 1 __________________________ count: 0 __________________________ high:__ 0 __________________________ batch: 1 __ vm stats threshold: 8 __ all_unreclaimable: 1 __ start_pfn:________________ 16 __ inactive_ratio:______ 1 Node 0, zone______ DMA32 __ pages free________ 87395 ______________ min__________ 14715 ______________ low__________ 18393 ______________ high________ 22072 ______________ scanned__ 0 ______________ spanned__ 1044480 ______________ present__ 896960 ______ nr_free_pages 87395 ______ nr_inactive_anon 18907 ______ nr_active_anon 92242 ______ nr_inactive_file 325044 ______ nr_active_file 267577 ______ nr_unevictable 0 ______ nr_mlock________ 0 ______ nr_anon_pages 51703 ______ nr_mapped______ 4369 ______ nr_file_pages 593009 ______ nr_dirty________ 17 ______ nr_writeback 0 ______ nr_slab_reclaimable 14988 ______ nr_slab_unreclaimable 11515 ______ nr_page_table_pages 1305 ______ nr_kernel_stack 133 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 140220 ______ nr_vmscan_immediate_reclaim 62 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 0 ______ nr_shmem________ 10 ______ nr_dirtied____ 810741 ______ nr_written____ 862763 ______ nr_anon_transparent_hugepages 116 ______ nr_free_cma__ 0 ______________ protection: (0, 0, 504, 504) __ pagesets ______ cpu: 0 __________________________ count: 123 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 24 ______ cpu: 1 __________________________ count: 29 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 24 __ all_unreclaimable: 0 __ start_pfn:________________ 4096 __ inactive_ratio:______ 5 Node 0, zone____ Normal __ pages free________ 3200 ______________ min__________ 2116 ______________ low__________ 2645 ______________ high________ 3174 ______________ scanned__ 0 ______________ spanned__ 131072 ______________ present__ 129024 ______ nr_free_pages 3200 ______ nr_inactive_anon 25943 ______ nr_active_anon 24590 ______ nr_inactive_file 23132 ______ nr_active_file 10275 ______ nr_unevictable 552 ______ nr_mlock________ 552 ______ nr_anon_pages 49050 ______ nr_mapped______ 2088 ______ nr_file_pages 35785 ______ nr_dirty________ 3 ______ nr_writeback 0 ______ nr_slab_reclaimable 2340 ______ nr_slab_unreclaimable 3926 ______ nr_page_table_pages 786 ______ nr_kernel_stack 114 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 9297 ______ nr_vmscan_immediate_reclaim 13835 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 10 ______ nr_shmem________ 38 ______ nr_dirtied____ 338110 ______ nr_written____ 328638 ______ nr_anon_transparent_hugepages 0 ______ nr_free_cma__ 0 ______________ protection: (0, 0, 0, 0) __ pagesets ______ cpu: 0 __________________________ count: 152 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 12 ______ cpu: 1 __________________________ count: 172 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 12 __ all_unreclaimable: 0 __ start_pfn:________________ 1048576 __ inactive_ratio:______ 1I have tried disabling compaction (1000
Quoted 1 line
/proc/sys/vm/extdefrag_threshold), and symptoms do change. There is nokswapd stuck in D, but instead page cache is almost cleaned from time to time
Also I have a piece of code, which can reproduce the first problem with kswapd in D state on another amd64 system, which has normal zone artificially limited to the same ratio against dma32 zone. It needs a large file, which is at least twice as large as system RAM (the larger the better):
dd if=/dev/zero of=tf bs=1M count=$((1024*8))Then start smth like this:
./a.out tf 32
and let it run for some time to fill the page cache.The code will random read the file in fixed chunks at fixed rate in two "streams": one stream of 1/3 rate will be scattered across the whole file and mark pages with WILLNEED. Another stream at 2/3 rate is contained in 1/10 of a file and will not pass any hints.
3) Now I am running 3.7.4, and atm I see the second problem again, i.e. kswapd is stuck on zone normal.
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Small update. This is what happens with swap, when I add some write load:
0 0 236292 176816 5828 2536020 64 96 4852 236 13709 5592 28 13 52 7 1 0 236816 231840 5760 2468724 192 556 9496 25784 14471 7791 18 25 40 17 1 1 237000 244528 5748 2441664 256 228 10528 228 13538 6943 33 20 34 13 1 0 237048 246392 5740 2432556 160 80 6792 80 13815 7412 13 17 57 13 3 0 237516 305268 5740 2363156 96 488 10124 488 14266 8920 11 24 53 12 3 0 237908 346188 5664 2311168 192 444 7692 476 14348 9397 14 23 57 7 2 1 238124 361856 5652 2282708 128 260 8024 25048 13894 6326 15 19 40 26 1 2 238368 356480 5656 2284672 128 260 9656 260 13961 6706 12 14 27 47 0 2 238732 363268 5648 2264680 64 404 11288 404 13771 5943 32 18 17 32 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 239016 370372 5588 2246296 192 312 12864 312 14056 8288 15 20 40 24 0 2 239336 379684 5596 2228056 0 336 7488 380 13875 8791 8 22 53 17 1 1 239796 410928 5584 2190084 64 476 10300 16848 13721 7323 7 20 42 31 1 1 240096 432072 5308 2159016 64 320 9888 364 13461 7787 8 18 39 35 1 0 240332 445940 5304 2137936 96 264 10960 264 13609 6750 19 19 37 25 1 1 240676 454244 5284 2116968 32 360 12304 368 13466 8864 11 22 42 25 3 1 241156 468920 5276 2088800 32 504 11592 532 13346 6394 27 18 23 32 0 2 241436 478448 5248 2066564 288 360 12248 1992 13701 6627 23 21 23 32 1 1 241776 496704 5248 2038424 156 400 9632 424 13040 5904 29 15 28 28 0 2 242460 521064 5220 2004936 32 700 12212 708 13476 6983 15 16 34 34 1 1 242396 517360 5220 1996648 256 104 10304 104 13196 6571 16 18 23 43 0 1 241716 532496 5220 1968204 736 68 7892 88 13260 6522 24 18 27 32 1 1 242084 551444 5228 1934016 256 480 6104 99240 13365 5915 10 22 22 46 1 2 242284 553736 5228 1915204 480 396 6116 396 11012 5594 11 20 33 36 0 2 242740 553860 5468 1914344 64 468 11692 468 12931 3755 24 18 22 37 0 1 242968 534332 5472 1926280 0 252 13272 308 13678 5930 13 15 26 46
$ grep [Aa]non /proc/meminfo Active(anon): 595096 kB Inactive(anon): 152580 kB AnonPages: 735052 kB AnonHugePages: 180224 kB
D? D?N?., 01/02/2013 D2 12:24 +0400, Nikolay S. D?D,N?DuN?:
Quoted 78 lines
D? D?N?., 31/01/2013 D2 13:42 -0800, Andrew Morton D?D,N?DuN?:
Quoted 23 lines
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 16 lines · On Fri, 25 Jan 2013 17:56:25 +0000 (UTC) [email protected]…
https://bugzilla.kernel.org/show_bug.cgi?id=53031
Summary: kswapd in uninterruptible sleep state
Product: Memory Management
Version: 2.5
Kernel Version: 3.7.3,3.7.4
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Other
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: NoQuoted 4 lines
I'd say "Regression: yes"!
Can you please run sysrq-W (or "echo w >
/proc/sysrq-trigger" when kswapd is stuck so we can see where it is stuck?Feb 1 12:23:03 heimdall kernel: SysRq : Show Blocked State Feb 1 12:23:03 heimdall kernel: task PC stack pid father Feb 1 12:23:03 heimdall kernel: kswapd0 D ffff88011fc110c0 0 402 2 0x00000000 Feb 1 12:23:03 heimdall kernel: ffff88011a86b000 0000000000000046 ffff88011b2adc28 ffffffff81613420 Feb 1 12:23:03 heimdall kernel: ffff88011b2adfd8 ffff88011b2adfd8 ffff88011b2adfd8 ffff88011a86b000 Feb 1 12:23:03 heimdall kernel: 0000000000000286 ffff88011b2adc98 ffffffff81746fc0 000000010043a0ff Feb 1 12:23:03 heimdall kernel: Call Trace: Feb 1 12:23:03 heimdall kernel: [<ffffffff813a5bc1>] ? schedule_timeout+0x141/0x1f0 Feb 1 12:23:03 heimdall kernel: [<ffffffff8103fff0>] ? usleep_range+0x40/0x40 Feb 1 12:23:03 heimdall kernel: [<ffffffff813a73b0>] ? io_schedule_timeout+0x60/0x90 Feb 1 12:23:03 heimdall kernel: [<ffffffff810bb39a>] ? congestion_wait+0x7a/0xc0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050cb0>] ? add_wait_queue+0x60/0x60 Feb 1 12:23:03 heimdall kernel: [<ffffffff810b4cf4>] ? kswapd+0x844/0x9f0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050cb0>] ? add_wait_queue+0x60/0x60 Feb 1 12:23:03 heimdall kernel: [<ffffffff810b44b0>] ? shrink_lruvec+0x540/0x540 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050523>] ? kthread+0xb3/0xc0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050470>] ? flush_kthread_work+0x110/0x110 Feb 1 12:23:03 heimdall kernel: [<ffffffff813a866c>] ? ret_from_fork+0x7c/0xb0 Feb 1 12:23:03 heimdall kernel: [<ffffffff81050470>] ? flush_kthread_work+0x110/0x110Quoted 1 line
Also sysrq-m when it is in that state would be useful, thanks.
Feb 1 12:24:07 heimdall kernel: SysRq : Show Memory Feb 1 12:24:07 heimdall kernel: Mem-Info: Feb 1 12:24:07 heimdall kernel: DMA per-cpu: Feb 1 12:24:07 heimdall kernel: CPU 0: hi: 0, btch: 1 usd: 0 Feb 1 12:24:07 heimdall kernel: CPU 1: hi: 0, btch: 1 usd: 0 Feb 1 12:24:07 heimdall kernel: DMA32 per-cpu: Feb 1 12:24:07 heimdall kernel: CPU 0: hi: 186, btch: 31 usd: 16 Feb 1 12:24:07 heimdall kernel: CPU 1: hi: 186, btch: 31 usd: 123 Feb 1 12:24:07 heimdall kernel: Normal per-cpu: Feb 1 12:24:07 heimdall kernel: CPU 0: hi: 186, btch: 31 usd: 45 Feb 1 12:24:07 heimdall kernel: CPU 1: hi: 186, btch: 31 usd: 164 Feb 1 12:24:07 heimdall kernel: active_anon:168267 inactive_anon:55882 isolated_anon:0 Feb 1 12:24:07 heimdall kernel: active_file:311587 inactive_file:312300 isolated_file:0 Feb 1 12:24:07 heimdall kernel: unevictable:552 dirty:22 writeback:0 unstable:0 Feb 1 12:24:07 heimdall kernel: free:38634 slab_reclaimable:20255 slab_unreclaimable:15014 Feb 1 12:24:07 heimdall kernel: mapped:6615 shmem:337 pagetables:2304 bounce:0 Feb 1 12:24:07 heimdall kernel: free_cma:0 Feb 1 12:24:07 heimdall kernel: DMA free:15904kB min:256kB low:320kB high:384kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15648kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes Feb 1 12:24:07 heimdall kernel: lowmem_reserve[]: 0 3503 4007 4007 Feb 1 12:24:07 heimdall kernel: DMA32 free:126528kB min:58860kB low:73572kB high:88288kB active_anon:568560kB inactive_anon:116272kB active_file:1189340kB inactive_file:1191388kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:3587840kB mlocked:0kB dirty:72kB writeback:0kB mapped:15024kB shmem:1336kB slab_reclaimable:68328kB slab_unreclaimable:31484kB kernel_stack:832kB pagetables:7028kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no Feb 1 12:24:07 heimdall kernel: lowmem_reserve[]: 0 0 504 504 Feb 1 12:24:07 heimdall kernel: Normal free:12104kB min:8464kB low:10580kB high:12696kB active_anon:104508kB inactive_anon:107256kB active_file:57008kB inactive_file:57812kB unevictable:2208kB isolated(anon):0kB isolated(file):0kB present:516096kB mlocked:2208kB dirty:16kB writeback:0kB mapped:11436kB shmem:12kB slab_reclaimable:12692kB slab_unreclaimable:28572kB kernel_stack:968kB pagetables:2188kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no Feb 1 12:24:07 heimdall kernel: lowmem_reserve[]: 0 0 0 0 Feb 1 12:24:07 heimdall kernel: DMA: 0*4kB 0*8kB 0*16kB 1*32kB 2*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 3*4096kB = 15904kB Feb 1 12:24:07 heimdall kernel: DMA32: 25706*4kB 1119*8kB 304*16kB 223*32kB 37*64kB 3*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 126528kB Feb 1 12:24:07 heimdall kernel: Normal: 880*4kB 263*8kB 191*16kB 4*32kB 16*64kB 6*128kB 2*256kB 2*512kB 0*1024kB 0*2048kB 0*4096kB = 12136kB Feb 1 12:24:07 heimdall kernel: 625162 total pagecache pages
Quoted 458 lines
Feb 1 12:24:07 heimdall kernel: 463 pages in swap cache Feb 1 12:24:07 heimdall kernel: Swap cache stats: add 5970, delete 5507, find 3004/3260 Feb 1 12:24:07 heimdall kernel: Free swap = 4184860kB Feb 1 12:24:07 heimdall kernel: Total swap = 4194300kB Feb 1 12:24:07 heimdall kernel: 1048560 pages RAM Feb 1 12:24:07 heimdall kernel: 36198 pages reserved Feb 1 12:24:07 heimdall kernel: 730743 pages shared Feb 1 12:24:07 heimdall kernel: 796007 pages non-sharedQuoted 447 lines
[remainder retained for linux-mm to enjoy]
Quoted 445 lines
Created an attachment (id=91781)
--> (https://bugzilla.kernel.org/attachment.cgi?id=91781)
Script do show what has changed in/proc/vmstatI have recently upgraded from 3.2 to 3.7.3, and I am seeing, that the behavior of kswapd is strange at least.
The machine is core2duo e7200 with 4G RAM, running 3.7.3 kernel. It has compaction and THP (always) enabled.
The machine is serving files over the network, so it is constantly under memory pressure from page cache. The network is not very fast, and average disk read rate is between 2 and 8 megabytes per second.
In normal state, when page cache is filled, the free memory (according to free and vmstat) is fluctuating between 100 and 150 megabytes, with kswapd stepping in at 100M, quickly freeing to 150M and going to sleep again.
1) On 3.7.3, after several hours after page cache is filled, kswapd enters permanent D-state, with free memory keeping around 150M (high watermark, I presume?). I have captured diffs for
/proc/vmstat:$ ./diffshow 5 ----8<---- nr_free_pages:____________________________________38327 -> 38467 (140) nr_active_anon:__________________________________110014 -> 110056 (42) nr_inactive_file:______________________________526153 -> 526297 (144) nr_active_file:__________________________________98802 -> 98864 (62) nr_anon_pages:____________________________________103475 -> 103512 (37) nr_file_pages:____________________________________627957 -> 628160 (203) nr_dirty:______________________________________________15 -> 17 (2) nr_page_table_pages:________________________2142 -> 2146 (4) nr_kernel_stack:________________________________251 -> 253 (2) nr_dirtied:__________________________________________1169312 -> 1169317 (5) nr_written:__________________________________________1211979 -> 1211982 (3) nr_dirty_threshold:__________________________159540 -> 159617 (77) nr_dirty_background_threshold:____79770 -> 79808 (38) pgpgin:__________________________________________________564650577 -> 564673241 (22664) pgpgout:________________________________________________5117612 -> 5117668 (56) pgalloc_dma32:____________________________________105487556 -> 105491067 (3511) pgalloc_normal:__________________________________84026173 -> 84029309 (3136) pgfree:__________________________________________________190134573 -> 190141394 (6821) pgactivate:__________________________________________2750244 -> 2750283 (39) pgfault:________________________________________________67214984 -> 67216222 (1238) pgsteal_kswapd_dma32:______________________45793109 -> 45795077 (1968) pgsteal_kswapd_normal:____________________61391466 -> 61394464 (2998) pgscan_kswapd_dma32:________________________45812628 -> 45814596 (1968) pgscan_kswapd_normal:______________________61465283 -> 61468281 (2998) slabs_scanned:____________________________________30783104 -> 30786432 (3328) pageoutrun:__________________________________________2936967 -> 2937033 (66)vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----__r__b____swpd____free____buff__cache____si____so______bi______bo____in____cs us sy id wa __1__ 1 296924 153064____ 6936 2479664______ 0______ 0__ 5408________ 0 11711 1350__ 1__ 2 44 53 __0__ 1 296924 152448____ 6928 2480048______ 0______ 0__ 6760________ 0 9723 1127__ 1__ 4 47 48 __0__ 1 296924 152948____ 6916 2479464______ 0______ 0__ 3512______ 16 10392 1231__ 1__ 2 48 49 __0__ 1 296924 153616____ 6916 2478804______ 0______ 0__ 2724________ 0 10279 1078__ 0__ 2 48 49 __0__ 1 296924 152972____ 6916 2480132______ 0______ 0__ 3584________ 0 11289 1252__ 1__ 3 49 48 __0__ 1 296924 155348____ 6916 2478396______ 0______ 0__ 6472________ 0 11285 1132__ 1__ 2 45 53 __0__ 1 296924 152988____ 6916 2481024______ 0______ 0__ 5112______ 20 10039 1257__ 0__ 2 46 52 __0__ 1 296924 152968____ 6916 2481016______ 0______ 0__ 3244________ 0 9586 1127__ 1__ 3 46 51 __0__ 1 296924 153500____ 6916 2481196______ 0______ 0__ 3516________ 0 10899 1127__ 1__ 1 48 49 __0__ 1 296924 152860____ 6916 2481688______ 0______ 0__ 4240________ 0 10418 1245__ 1__ 3 47 49 __0__ 2 296924 153016____ 6912 2478584______ 0______ 0__ 5632________ 0 12136 1516__ 2__ 3 46 49 __0__ 2 296924 153292____ 6912 2480984______ 0______ 0__ 4668________ 0 10872 1248__ 1__ 2 49 48 __0__ 1 296924 152420____ 6916 2481844______ 0______ 0__ 4764______ 56 11236 1402__ 1__ 3 45 51 __0__ 1 296924 152652____ 6916 2481204______ 0______ 0__ 4628________ 0 9422 1208__ 0__ 3 46 51buddyinfo:
$ cat /proc/buddyinfo; sleep 1; cat /proc/buddyinfo Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32______ 515______ 205______ 242______ 201____ 1384______ 116________ 21__________ 8____ ____ 1__________ 0__________ 0 Node 0, zone____ Normal____ 1779__________ 0__________ 0________ 18________ 11__________ 3__________ 1__________ 3____ ____ 0__________ 0__________ 0 Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32______ 480______ 197______ 227______ 176____ 1384______ 116________ 21__________ 8____ ____ 1__________ 0__________ 0 Node 0, zone____ Normal____ 1792__________ 9__________ 0________ 18________ 11__________ 3__________ 1__________ 3____ ____ 0__________ 0__________ 02) Also from time to time situation switches, where free memory is fixed at
some random point, fluctuating around this values at +-1 megabyte.
There is vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----__r__b____swpd____free____buff__cache____si____so______bi______bo____in____cs us sy id wa __0__ 0 296480 381052____ 9732 2481324______ 1______ 2__ 2022______ 19____ 45____ 44__ 1__ 2 81 16 __0__ 0 296480 382040____ 9732 2481180______ 0______ 0__ 2324________ 0 6505__ 825__ 1__ 2 96__ 1 __0__ 0 296480 382500____ 9732 2481060______ 0______ 0__ 3824________ 0 5941 1046__ 1__ 2 96__ 1 __0__ 0 296480 382092____ 9740 2480976______ 0______ 0__ 2048______ 16 7701__ 862__ 0__ 2 97__ 1 __0__ 0 296480 382160____ 9740 2481896______ 0______ 0__ 5008________ 0 6443 1017__ 1__ 2 93__ 5 __0__ 0 296480 382484____ 9740 2481668______ 0______ 0__ 2764________ 0 6972__ 799__ 0__ 2 97__ 1 __0__ 0 296480 381912____ 9740 2481620______ 0______ 0__ 3780________ 0 7632 1036__ 1__ 2 96__ 1 __0__ 0 296480 382240____ 9744 2481632______ 0______ 0__ 2796________ 0 7533__ 981__ 1__ 2 95__ 3 __1__ 0 296480 382372____ 9748 2481756______ 0______ 0__ 2940________ 0 6565 1048__ 2__ 2 95__ 2 __0__ 0 296480 383064____ 9748 2480320______ 0______ 0__ 5980________ 0 6352__ 979__ 0__ 3 92__ 5 __0__ 0 296480 381380____ 9748 2481752______ 0______ 0__ 2732________ 0 6322__ 999__ 1__ 2 96__ 1 __0__ 0 296480 381640____ 9748 2481992______ 0______ 0__ 2468________ 0 5640__ 849__ 0__ 2 97__ 2 __0__ 0 296480 381684____ 9748 2481856______ 0______ 0__ 2760________ 0 7064__ 944__ 2__ 2 95__ 1 __0__ 0 296480 381908____ 9748 2481664______ 0______ 0__ 2608________ 0 6797__ 952__ 0__ 2 94__ 4 __0__ 0 296480 384024____ 9748 2479424______ 0______ 0__ 4804________ 0 6342 2767__ 1__ 2 94__ 4 __0__ 0 296480 381948____ 9748 2481080______ 0______ 0__ 1868________ 0 6428__ 803__ 0__ 2 97__ 2 __0__ 0 296480 382088____ 9748 2481524______ 0______ 0__ 3252________ 0 6464__ 990__ 1__ 1 98__ 1 __0__ 0 296480 381884____ 9748 2481816______ 0______ 0__ 2892________ 0 7880__ 858__ 1__ 2 94__ 3 __0__ 0 296480 382120____ 9748 2481848______ 0______ 0__ 2500________ 0 6207__ 905__ 1__ 1 96__ 2 __0__ 1 296480 381976____ 9748 2479876______ 0______ 0__ 5188________ 0 6691__ 908__ 1__ 2 94__ 4 __0__ 0 296480 381708____ 9748 2481584______ 0______ 0__ 2692________ 0 7904 1030__ 1__ 2 94__ 3 __0__ 0 296480 382196____ 9748 2481704______ 0______ 0__ 2092________ 0 6715__ 722__ 1__ 1 97__ 1The
/proc/vmstatdiff is like this:$ ./diffshow 5 ----8<---- nr_free_pages:____________________________________94999 -> 95630 (631) nr_inactive_anon:______________________________47076 -> 47196 (120) nr_inactive_file:______________________________347048 -> 347080 (32) nr_active_file:__________________________________270128 -> 270462 (334) nr_file_pages:____________________________________619886 -> 620314 (428) nr_dirty:______________________________________________10 -> 109 (99) nr_kernel_stack:________________________________248 -> 249 (1) nr_isolated_file:______________________________0 -> 10 (10) nr_dirtied:__________________________________________1147486 -> 1147659 (173) nr_written:__________________________________________1189947 -> 1190013 (66) nr_dirty_threshold:__________________________168770 -> 168974 (204) nr_dirty_background_threshold:____84385 -> 84487 (102) pgpgin:__________________________________________________528729753 -> 528750521 (20768) pgpgout:________________________________________________5013688 -> 5014216 (528) pswpin:__________________________________________________77715 -> 77827 (112) pgalloc_dma32:____________________________________95912002 -> 95912631 (629) pgalloc_normal:__________________________________82241808 -> 82247860 (6052) pgfree:__________________________________________________178827810 -> 178834939 (7129) pgactivate:__________________________________________2644761 -> 2645104 (343) pgfault:________________________________________________63365808 -> 63369261 (3453) pgmajfault:__________________________________________23571 -> 23591 (20) pgsteal_kswapd_normal:____________________60067802 -> 60072006 (4204) pgscan_kswapd_normal:______________________60141548 -> 60145753 (4205) slabs_scanned:____________________________________28914432 -> 28915456 (1024) kswapd_low_wmark_hit_quickly:______589343 -> 589376 (33) kswapd_high_wmark_hit_quickly:____763703 -> 763752 (49) pageoutrun:__________________________________________2852120 -> 2852305 (185) compact_blocks_moved:______________________10852682 -> 10852847 (165) compact_pagemigrate_failed:__________39862700 -> 39865324 (2624)kswapd is stuck on normal zone!
Also there is raw vmstat:
nr_free_pages95343nr_inactive_anon47196nr_active_anon114110nr_inactive_file348142nr_active_file272638nr_unevictable552nr_mlock552nr_anon_pages100386nr_mapped6158nr_file_pages623530nr_dirty0nr_writeback0nr_slab_reclaimable21356nr_slab_unreclaimable15570nr_page_table_pages2045nr_kernel_stack244nr_unstable0nr_bounce0nr_vmscan_write149405nr_vmscan_immediate_reclaim13896nr_writeback_temp0nr_isolated_anon0nr_isolated_file4nr_shmem48nr_dirtied1147666nr_written1190129nr_anon_transparent_hugepages116nr_free_cma0nr_dirty_threshold169553nr_dirty_background_threshold84776
pgpgin 529292001
pgpgout 5014788
pswpin 77827
pswpout 148890pgalloc_dma0pgalloc_dma3295940824pgalloc_normal82395157pgalloc_movable0
pgfree 179010711
pgactivate 2647284
pgdeactivate 2513412
pgfault 63427189
pgmajfault 23606pgrefill_dma0pgrefill_dma321915983pgrefill_normal430939pgrefill_movable0pgsteal_kswapd_dma0pgsteal_kswapd_dma3239927548pgsteal_kswapd_normal60180622pgsteal_kswapd_movable0pgsteal_direct_dma0pgsteal_direct_dma3214062458pgsteal_direct_normal1894412pgsteal_direct_movable0pgscan_kswapd_dma0pgscan_kswapd_dma3239946808pgscan_kswapd_normal60254407pgscan_kswapd_movable0pgscan_direct_dma0pgscan_direct_dma3214260652pgscan_direct_normal1895350pgscan_direct_movable0pgscan_direct_throttle0
pginodesteal 25301slabs_scanned28931968kswapd_inodesteal26119kswapd_low_wmark_hit_quickly591050kswapd_high_wmark_hit_quickly766006kswapd_skip_congestion_wait15
pageoutrun 2858733
allocstall 156938
pgrotated 161518compact_blocks_moved10860505compact_pages_moved411760compact_pagemigrate_failed39987369compact_stall29399compact_fail23718compact_success5681htlb_buddy_alloc_success0htlb_buddy_alloc_fail0unevictable_pgs_culled6416unevictable_pgs_scanned0unevictable_pgs_rescued5337unevictable_pgs_mlocked6672unevictable_pgs_munlocked6120unevictable_pgs_cleared0unevictable_pgs_stranded0thp_fault_alloc41thp_fault_fallback302thp_collapse_alloc507thp_collapse_alloc_failed3704thp_split111Buddyinfo:
$ cat /proc/buddyinfo; sleep 1; cat /proc/buddyinfo Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32__ 29527__ 26916______ 489______ 221________ 40__________ 5__________ 0__________ 0____ ____ 0__________ 0__________ 0 Node 0, zone____ Normal____ 3158__________ 0__________ 0__________ 2__________ 1__________ 1__________ 1__________ 1____ ____ 0__________ 0__________ 0 Node 0, zone__________ DMA__________ 0__________ 0__________ 0__________ 1__________ 2__________ 1__________ 1__________ 0____ ____ 1__________ 1__________ 3 Node 0, zone______ DMA32__ 29527__ 26909______ 489______ 211________ 41__________ 5__________ 0__________ 0____ ____ 0__________ 0__________ 0 Node 0, zone____ Normal____ 2790________ 29__________ 0__________ 8__________ 1__________ 1__________ 1__________ 1____ ____ 0__________ 0__________ 0Zoneinfo:
$ cat /proc/zoneinfo Node 0, zone__________ DMA __ pages free________ 3976 ______________ min__________ 64 ______________ low__________ 80 ______________ high________ 96 ______________ scanned__ 0 ______________ spanned__ 4080 ______________ present__ 3912 ______ nr_free_pages 3976 ______ nr_inactive_anon 0 ______ nr_active_anon 0 ______ nr_inactive_file 0 ______ nr_active_file 0 ______ nr_unevictable 0 ______ nr_mlock________ 0 ______ nr_anon_pages 0 ______ nr_mapped______ 0 ______ nr_file_pages 0 ______ nr_dirty________ 0 ______ nr_writeback 0 ______ nr_slab_reclaimable 0 ______ nr_slab_unreclaimable 0 ______ nr_page_table_pages 0 ______ nr_kernel_stack 0 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 0 ______ nr_vmscan_immediate_reclaim 0 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 0 ______ nr_shmem________ 0 ______ nr_dirtied____ 0 ______ nr_written____ 0 ______ nr_anon_transparent_hugepages 0 ______ nr_free_cma__ 0 ______________ protection: (0, 3503, 4007, 4007) __ pagesets ______ cpu: 0 __________________________ count: 0 __________________________ high:__ 0 __________________________ batch: 1 __ vm stats threshold: 8 ______ cpu: 1 __________________________ count: 0 __________________________ high:__ 0 __________________________ batch: 1 __ vm stats threshold: 8 __ all_unreclaimable: 1 __ start_pfn:________________ 16 __ inactive_ratio:______ 1 Node 0, zone______ DMA32 __ pages free________ 87395 ______________ min__________ 14715 ______________ low__________ 18393 ______________ high________ 22072 ______________ scanned__ 0 ______________ spanned__ 1044480 ______________ present__ 896960 ______ nr_free_pages 87395 ______ nr_inactive_anon 18907 ______ nr_active_anon 92242 ______ nr_inactive_file 325044 ______ nr_active_file 267577 ______ nr_unevictable 0 ______ nr_mlock________ 0 ______ nr_anon_pages 51703 ______ nr_mapped______ 4369 ______ nr_file_pages 593009 ______ nr_dirty________ 17 ______ nr_writeback 0 ______ nr_slab_reclaimable 14988 ______ nr_slab_unreclaimable 11515 ______ nr_page_table_pages 1305 ______ nr_kernel_stack 133 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 140220 ______ nr_vmscan_immediate_reclaim 62 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 0 ______ nr_shmem________ 10 ______ nr_dirtied____ 810741 ______ nr_written____ 862763 ______ nr_anon_transparent_hugepages 116 ______ nr_free_cma__ 0 ______________ protection: (0, 0, 504, 504) __ pagesets ______ cpu: 0 __________________________ count: 123 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 24 ______ cpu: 1 __________________________ count: 29 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 24 __ all_unreclaimable: 0 __ start_pfn:________________ 4096 __ inactive_ratio:______ 5 Node 0, zone____ Normal __ pages free________ 3200 ______________ min__________ 2116 ______________ low__________ 2645 ______________ high________ 3174 ______________ scanned__ 0 ______________ spanned__ 131072 ______________ present__ 129024 ______ nr_free_pages 3200 ______ nr_inactive_anon 25943 ______ nr_active_anon 24590 ______ nr_inactive_file 23132 ______ nr_active_file 10275 ______ nr_unevictable 552 ______ nr_mlock________ 552 ______ nr_anon_pages 49050 ______ nr_mapped______ 2088 ______ nr_file_pages 35785 ______ nr_dirty________ 3 ______ nr_writeback 0 ______ nr_slab_reclaimable 2340 ______ nr_slab_unreclaimable 3926 ______ nr_page_table_pages 786 ______ nr_kernel_stack 114 ______ nr_unstable__ 0 ______ nr_bounce______ 0 ______ nr_vmscan_write 9297 ______ nr_vmscan_immediate_reclaim 13835 ______ nr_writeback_temp 0 ______ nr_isolated_anon 0 ______ nr_isolated_file 10 ______ nr_shmem________ 38 ______ nr_dirtied____ 338110 ______ nr_written____ 328638 ______ nr_anon_transparent_hugepages 0 ______ nr_free_cma__ 0 ______________ protection: (0, 0, 0, 0) __ pagesets ______ cpu: 0 __________________________ count: 152 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 12 ______ cpu: 1 __________________________ count: 172 __________________________ high:__ 186 __________________________ batch: 31 __ vm stats threshold: 12 __ all_unreclaimable: 0 __ start_pfn:________________ 1048576 __ inactive_ratio:______ 1I have tried disabling compaction (1000
Quoted 1 line
/proc/sys/vm/extdefrag_threshold), and symptoms do change. There is nokswapd stuck in D, but instead page cache is almost cleaned from time to time
Also I have a piece of code, which can reproduce the first problem with kswapd in D state on another amd64 system, which has normal zone artificially limited to the same ratio against dma32 zone. It needs a large file, which is at least twice as large as system RAM (the larger the better):
dd if=/dev/zero of=tf bs=1M count=$((1024*8))Then start smth like this:
./a.out tf 32
and let it run for some time to fill the page cache.The code will random read the file in fixed chunks at fixed rate in two "streams": one stream of 1/3 rate will be scattered across the whole file and mark pages with WILLNEED. Another stream at 2/3 rate is contained in 1/10 of a file and will not pass any hints.
3) Now I am running 3.7.4, and atm I see the second problem again, i.e. kswapd is stuck on zone normal.
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>