内存规整how

这篇博客详细记录了kcompactd在内存紧凑过程中,从尝试到完成的各个阶段,包括mm_compaction尝试、隔离、选择合适的区域和实际迁移操作。重点展示了HwBinder的交互和内存迁移细节,以及最终的迁移结果和后续调度。

kcompactd_do_work->compact_zone

trace_mm_compaction_kcompactd_wake

对应

         kswapd0-114     [003] ..... 15144.528635: mm_compaction_wakeup_kcompactd: nid=0 order=6 classzone_idx=Movable 
     CodecLooper-28886   [001] ..... 15144.528654: mm_compaction_isolate_freepages: range=(0x1bc00 ~ 0x1c000) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [003] ..... 15144.528662: mm_compaction_kcompactd_wake: nid=0 order=6 classzone_idx=HighMem 
      kcompactd0-41      [003] ..... 15144.528665: mm_compaction_suitable: node=0 zone=Normal   order=6 ret=continue
      kcompactd0-41      [003] ..... 15144.528667: mm_compaction_suitable: node=0 zone=Normal   order=6 ret=continue
      kcompactd0-41      [003] ..... 15144.528670: mm_compaction_begin: zone_start

try_to_compact_pages->try_to_compact_pages->compact_zone

 HwBinder:390_1-425     [002] .....   512.216727: mm_compaction_try_to_compact_pages: order=6 gfp_mask=GFP_HIGHUSER|__GFP_NOWARN|__GFP_COMP|__GFP_ZERO priority=1
  HwBinder:390_1-425     [002] .....   512.216733: mm_compaction_deferred: node=0 zone=HighMem  order=6 order_failed=0 consider=60 limit=64
  HwBinder:390_1-425     [002] .....   512.216738: mm_compaction_suitable: node=0 zone=Normal   order=6 ret=continue
  HwBinder:390_1-425     [002] .....   512.216740: mm_compaction_begin: zone_start=0x0 migrate_pfn=0x0 free_pfn=0x2fc00 zone_end=0x30000, mode=sync
  HwBinder:390_1-425     [002] .....   512.216744: mm_compaction_finished: node=0 zone=Normal   order=6 ret=no_suitable_page
  HwBinder:390_1-425     [002] .....   512.216840: mm_compaction_isolate_migratepages: range=(0x1c400 ~ 0x1c800) nr_scanned=821 nr_taken=0
  HwBinder:390_1-425     [002] .....   512.216843: mm_compaction_finished: node=0 zone=Normal   order=6 ret=no_suitable_page
  HwBinder:390_1-425     [002] .....   512.216924: mm_compaction_isolate_migratepages: range=(0x24800 ~ 0x24c00) nr_scanned=989 nr_taken=0
  HwBinder:390_1-425     [002] .....   512.216925: mm_compaction_finished: node=0 zone=Normal   order=6 ret=no_suitable_page
  HwBinder:390_1-425     [002] .....   512.217016: mm_compaction_isolate_migratepages: range=(0x2a000 ~ 0x2a400) nr_scanned=966 nr_taken=14
  HwBinder:390_1-425     [002] .....   512.217141: mm_compaction_isolate_freepages: range=(0x2d000 ~ 0x2d384) nr_scanned=900 nr_taken=0
  HwBinder:390_1-425     [002] .....   512.217146: mm_compaction_isolate_freepages: range=(0x2d385 ~ 0x2d400) nr_scanned=123 nr_taken=2
  HwBinder:390_1-425     [002] .....   512.217262: mm_compaction_isolate_freepages: range=(0x2cc00 ~ 0x2d000) nr_scanned=1024 nr_taken=2
  HwBinder:390_1-425     [002] .....   512.217294: mm_compaction_isolate_freepages: range=(0x2c800 ~ 0x2c860) nr_scanned=96 nr_taken=1
  HwBinder:390_1-425     [002] .....   512.217312: mm_compaction_isolate_freepages: range=(0x2c861 ~ 0x2cc00) nr_scanned=927 nr_taken=0
  HwBinder:390_1-425     [002] .....   512.217377: mm_compaction_isolate_freepages: range=(0x2b400 ~ 0x2b800) nr_scanned=1024 nr_taken=2
  HwBinder:390_1-425     [002] .....   512.217502: mm_compaction_isolate_freepages: range=(0x2a400 ~ 0x2a800) nr_scanned=1024 nr_taken=1
  HwBinder:390_1-425     [002] .....   512.217521: mm_compaction_migratepages: nr_migrated=10 nr_failed=4
  HwBinder:390_1-425     [002] .....   512.217542: mm_compaction_finished: node=0 zone=Normal   order=6 ret=complete
  HwBinder:390_1-425     [002] .....   512.217545: mm_compaction_end: zone_start=0x0 migrate_pfn=0x2a400 free_pfn=0x2a400 zone_end=0x30000, mode=sync status=complete
  HwBinder:390_1-425     [002] .....   512.217548: mm_compaction_defer_compaction: node=0 zone=Normal   order=6 order_failed=6 consider=0 limit=4
      kcompactd0-41      [000] .....   512.509498: mm_compaction_kcompactd_wake: nid=0 order=6 classzone_idx=Normal  
      kcompactd0-41      [000] .....   512.509506: mm_compaction_deferred: node=0 zone=Normal   order=6 order_failed=6 consider=1 limit=4
      kcompactd0-41      [000] .....   512.509509: mm_compaction_kcompactd_sleep: nid=0
         kswapd0-114     [003] .....   512.808897: mm_compaction_suitable: node=0 zone=Normal   order=6 ret=success
         kswapd0-114     [003] .....   512.808905: mm_compaction_suitable: node=0 zone=HighMem  order=6 ret=continue
         kswapd0-114     [003] .....   512.808907: mm_compaction_wakeup_kcompactd: nid=0 order=6 classzone_idx=Movable 
      kcompactd0-41      [000] .....   512.808945: mm_compaction_kcompactd_wake: nid=0 order=6 classzone_idx=HighMem 
      kcompactd0-41      [000] .....   512.808948: mm_compaction_deferred: node=0 zone=Normal   order=6 order_failed=6 consider=2 limit=4
      kcompactd0-41      [000] .....   512.808949: mm_compaction_deferred: node=0 zone=HighMem  order=6 order_failed=0 consider=61 limit=64
      kcompactd0-41      [000] .....   512.808952: mm_compaction_kcompactd_sleep: nid=0
      kcompactd0-41      [000] .....   513.309499: mm_compaction_suitable: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.309507: mm_compaction_begin: zone_start=0x0 migrate_pfn=0x0 free_pfn=0x2fc00 zone_end=0x30000, mode=sync
      kcompactd0-41      [000] .....   513.309510: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.309640: mm_compaction_isolate_migratepages: range=(0x0 ~ 0x400) nr_scanned=992 nr_taken=0
      kcompactd0-41      [000] .....   513.309643: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.309725: mm_compaction_isolate_migratepages: range=(0x400 ~ 0x800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.309726: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.309808: mm_compaction_isolate_migratepages: range=(0x800 ~ 0xc00) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.309809: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.309891: mm_compaction_isolate_migratepages: range=(0xc00 ~ 0x1000) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.309892: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.309975: mm_compaction_isolate_migratepages: range=(0x1000 ~ 0x1400) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.309976: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310058: mm_compaction_isolate_migratepages: range=(0x1400 ~ 0x1800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.310059: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310139: mm_compaction_isolate_migratepages: range=(0x1800 ~ 0x1c00) nr_scanned=995 nr_taken=0
      kcompactd0-41      [000] .....   513.310140: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310183: mm_compaction_isolate_migratepages: range=(0x1c00 ~ 0x2000) nr_scanned=437 nr_taken=0
      kcompactd0-41      [000] .....   513.310184: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310259: mm_compaction_isolate_migratepages: range=(0x2000 ~ 0x2400) nr_scanned=1006 nr_taken=0
      kcompactd0-41      [000] .....   513.310260: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310333: mm_compaction_isolate_migratepages: range=(0x2400 ~ 0x2800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.310334: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310477: mm_compaction_isolate_migratepages: range=(0x2c00 ~ 0x3000) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.310480: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310554: mm_compaction_isolate_migratepages: range=(0x3000 ~ 0x3400) nr_scanned=1021 nr_taken=0
      kcompactd0-41      [000] .....   513.310555: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.310620: mm_compaction_isolate_migratepages: range=(0x3800 ~ 0x3c00) nr_scanned=388 nr_taken=21
      kcompactd0-41      [000] .....   513.310643: mm_compaction_isolate_freepages: range=(0x2f400 ~ 0x2f800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.310660: mm_compaction_isolate_freepages: range=(0x2f000 ~ 0x2f400) nr_scanned=512 nr_taken=0
      kcompactd0-41      [000] .....   513.310690: mm_compaction_isolate_freepages: range=(0x2d400 ~ 0x2d800) nr_scanned=256 nr_taken=5
      kcompactd0-41      [000] .....   513.310719: mm_compaction_isolate_freepages: range=(0x2d000 ~ 0x2d333) nr_scanned=819 nr_taken=16
      kcompactd0-41      [000] .....   513.311022: mm_compaction_migratepages: nr_migrated=21 nr_failed=0
      kcompactd0-41      [000] .....   513.311027: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.311089: mm_compaction_isolate_migratepages: range=(0x3c00 ~ 0x4000) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.311090: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.311148: mm_compaction_isolate_migratepages: range=(0x4000 ~ 0x4400) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.311149: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.311215: mm_compaction_isolate_migratepages: range=(0x4400 ~ 0x4800) nr_scanned=981 nr_taken=8
      kcompactd0-41      [000] .....   513.311226: mm_compaction_isolate_freepages: range=(0x2d333 ~ 0x2d400) nr_scanned=205 nr_taken=3
      kcompactd0-41      [000] .....   513.311236: mm_compaction_isolate_freepages: range=(0x2cc00 ~ 0x2ccbe) nr_scanned=188 nr_taken=6
      kcompactd0-41      [000] .....   513.311370: mm_compaction_migratepages: nr_migrated=0 nr_failed=8
      kcompactd0-41      [000] .....   513.311375: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.311790: mm_compaction_isolate_migratepages: range=(0x4800 ~ 0x4c00) nr_scanned=1012 nr_taken=0
      kcompactd0-41      [000] .....   513.311799: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.311900: mm_compaction_isolate_migratepages: range=(0x4c00 ~ 0x5000) nr_scanned=987 nr_taken=0
      kcompactd0-41      [000] .....   513.311902: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.312111: mm_compaction_isolate_migratepages: range=(0x5000 ~ 0x5400) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.312118: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.312295: mm_compaction_isolate_migratepages: range=(0x5400 ~ 0x5800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.312301: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.312404: mm_compaction_isolate_migratepages: range=(0x5800 ~ 0x5c00) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.312406: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.312622: mm_compaction_isolate_migratepages: range=(0x5c00 ~ 0x6000) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.312628: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.312805: mm_compaction_isolate_migratepages: range=(0x6000 ~ 0x6400) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.312809: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.313065: mm_compaction_isolate_migratepages: range=(0x6400 ~ 0x6800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.313070: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.313192: mm_compaction_isolate_migratepages: range=(0x6800 ~ 0x6c00) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.313195: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.313343: mm_compaction_isolate_migratepages: range=(0x6c00 ~ 0x7000) nr_scanned=459 nr_taken=0
      kcompactd0-41      [000] .....   513.313347: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.313839: mm_compaction_isolate_migratepages: range=(0x7000 ~ 0x7400) nr_scanned=1001 nr_taken=0
      kcompactd0-41      [000] .....   513.313848: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314033: mm_compaction_isolate_migratepages: range=(0x7400 ~ 0x7800) nr_scanned=1009 nr_taken=0
      kcompactd0-41      [000] .....   513.314038: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314150: mm_compaction_isolate_migratepages: range=(0x8400 ~ 0x8800) nr_scanned=1014 nr_taken=3
      kcompactd0-41      [000] .....   513.314243: mm_compaction_migratepages: nr_migrated=0 nr_failed=3
      kcompactd0-41      [000] .....   513.314265: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314349: mm_compaction_isolate_migratepages: range=(0x8800 ~ 0x8c00) nr_scanned=769 nr_taken=0
      kcompactd0-41      [000] .....   513.314351: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314450: mm_compaction_isolate_migratepages: range=(0x8c00 ~ 0x9000) nr_scanned=1000 nr_taken=0
      kcompactd0-41      [000] .....   513.314452: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314676: mm_compaction_isolate_migratepages: range=(0x9000 ~ 0x9400) nr_scanned=999 nr_taken=0
      kcompactd0-41      [000] .....   513.314679: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314788: mm_compaction_isolate_migratepages: range=(0x9400 ~ 0x9800) nr_scanned=1015 nr_taken=3
      kcompactd0-41      [000] .....   513.314832: mm_compaction_migratepages: nr_migrated=3 nr_failed=0
      kcompactd0-41      [000] .....   513.314834: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.314937: mm_compaction_isolate_migratepages: range=(0x9c00 ~ 0xa000) nr_scanned=1011 nr_taken=0
      kcompactd0-41      [000] .....   513.315000: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315104: mm_compaction_isolate_migratepages: range=(0xa000 ~ 0xa400) nr_scanned=1023 nr_taken=0
      kcompactd0-41      [000] .....   513.315106: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315207: mm_compaction_isolate_migratepages: range=(0xa400 ~ 0xa800) nr_scanned=999 nr_taken=0
      kcompactd0-41      [000] .....   513.315209: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315309: mm_compaction_isolate_migratepages: range=(0xa800 ~ 0xac00) nr_scanned=1016 nr_taken=0
      kcompactd0-41      [000] .....   513.315311: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315379: mm_compaction_isolate_migratepages: range=(0xac00 ~ 0xb000) nr_scanned=342 nr_taken=15
      kcompactd0-41      [000] .....   513.315597: mm_compaction_isolate_freepages: range=(0x2ccbe ~ 0x2cdaa) nr_scanned=236 nr_taken=15
      kcompactd0-41      [000] .....   513.315858: mm_compaction_migratepages: nr_migrated=15 nr_failed=0
      kcompactd0-41      [000] .....   513.315865: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315890: mm_compaction_isolate_migratepages: range=(0xb000 ~ 0xb400) nr_scanned=94 nr_taken=0
      kcompactd0-41      [000] .....   513.315893: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315926: mm_compaction_isolate_migratepages: range=(0xb400 ~ 0xb800) nr_scanned=185 nr_taken=0
      kcompactd0-41      [000] .....   513.315929: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.315957: mm_compaction_isolate_migratepages: range=(0xb800 ~ 0xbc00) nr_scanned=147 nr_taken=0
      kcompactd0-41      [000] .....   513.315958: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316062: mm_compaction_isolate_migratepages: range=(0xbc00 ~ 0xc000) nr_scanned=1018 nr_taken=0
      kcompactd0-41      [000] .....   513.316065: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316089: mm_compaction_isolate_migratepages: range=(0xc000 ~ 0xc400) nr_scanned=142 nr_taken=0
      kcompactd0-41      [000] .....   513.316090: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316123: mm_compaction_isolate_migratepages: range=(0xc400 ~ 0xc800) nr_scanned=208 nr_taken=0
      kcompactd0-41      [000] .....   513.316124: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316224: mm_compaction_isolate_migratepages: range=(0xc800 ~ 0xcc00) nr_scanned=929 nr_taken=1
      kcompactd0-41      [000] .....   513.316264: mm_compaction_migratepages: nr_migrated=0 nr_failed=1
      kcompactd0-41      [000] .....   513.316267: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316415: mm_compaction_isolate_migratepages: range=(0xcc00 ~ 0xd000) nr_scanned=950 nr_taken=14
      kcompactd0-41      [000] .....   513.316816: mm_compaction_migratepages: nr_migrated=2 nr_failed=12
      kcompactd0-41      [000] .....   513.316834: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316858: mm_compaction_isolate_migratepages: range=(0xd000 ~ 0xd400) nr_scanned=97 nr_taken=0
      kcompactd0-41      [000] .....   513.316860: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316883: mm_compaction_isolate_migratepages: range=(0xd400 ~ 0xd800) nr_scanned=109 nr_taken=0
      kcompactd0-41      [000] .....   513.316885: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.316988: mm_compaction_isolate_migratepages: range=(0xd800 ~ 0xdc00) nr_scanned=1017 nr_taken=0
      kcompactd0-41      [000] .....   513.316990: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.317020: mm_compaction_isolate_migratepages: range=(0xdc00 ~ 0xe000) nr_scanned=112 nr_taken=4
      kcompactd0-41      [000] .....   513.317079: mm_compaction_migratepages: nr_migrated=4 nr_failed=0
      kcompactd0-41      [000] .....   513.317082: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.317149: mm_compaction_isolate_migratepages: range=(0xe000 ~ 0xe400) nr_scanned=269 nr_taken=24
      kcompactd0-41      [000] .....   513.317196: mm_compaction_isolate_freepages: range=(0x2cdaa ~ 0x2cfe2) nr_scanned=566 nr_taken=24
      kcompactd0-41      [000] .....   513.317689: mm_compaction_migratepages: nr_migrated=24 nr_failed=0
      kcompactd0-41      [000] .....   513.317697: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.318073: mm_compaction_isolate_migratepages: range=(0xe400 ~ 0xe800) nr_scanned=364 nr_taken=0
      kcompactd0-41      [000] .....   513.318079: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.318115: mm_compaction_isolate_migratepages: range=(0xe800 ~ 0xec00) nr_scanned=262 nr_taken=0
      kcompactd0-41      [000] .....   513.318121: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.318156: mm_compaction_isolate_migratepages: range=(0xec00 ~ 0xf000) nr_scanned=253 nr_taken=0
      kcompactd0-41      [000] .....   513.318158: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.318256: mm_compaction_isolate_migratepages: range=(0xf000 ~ 0xf400) nr_scanned=970 nr_taken=0
      kcompactd0-41      [000] .....   513.318258: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.318306: mm_compaction_isolate_migratepages: range=(0xf400 ~ 0xf800) nr_scanned=314 nr_taken=0
      kcompactd0-41      [000] .....   513.318308: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.318350: mm_compaction_isolate_migratepages: range=(0xf800 ~ 0xf860) nr_scanned=33 nr_taken=32
      kcompactd0-41      [000] .....   513.318360: mm_compaction_isolate_freepages: range=(0x2cfe2 ~ 0x2d000) nr_scanned=30 nr_taken=1
      kcompactd0-41      [000] .....   513.318423: mm_compaction_isolate_freepages: range=(0x2c800 ~ 0x2cc00) nr_scanned=1023 nr_taken=24
      kcompactd0-41      [000] .....   513.318436: mm_compaction_isolate_freepages: range=(0x2c000 ~ 0x2c0bd) nr_scanned=189 nr_taken=7
      kcompactd0-41      [000] .....   513.321208: mm_compaction_migratepages: nr_migrated=32 nr_failed=0
      kcompactd0-41      [000] .....   513.321219: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.322484: mm_compaction_isolate_migratepages: range=(0xf860 ~ 0xfc00) nr_scanned=874 nr_taken=813
      kcompactd0-41      [000] .....   513.322545: mm_compaction_isolate_freepages: range=(0x2c0bd ~ 0x2c400) nr_scanned=835 nr_taken=15
      kcompactd0-41      [000] .....   513.322690: mm_compaction_isolate_freepages: range=(0x2bc00 ~ 0x2c000) nr_scanned=1024 nr_taken=18
      kcompactd0-41      [000] .....   513.322747: mm_compaction_isolate_freepages: range=(0x2b800 ~ 0x2bc00) nr_scanned=1024 nr_taken=14
      kcompactd0-41      [000] .....   513.322807: mm_compaction_isolate_freepages: range=(0x2b400 ~ 0x2b800) nr_scanned=1024 nr_taken=26
      kcompactd0-41      [000] .....   513.322933: mm_compaction_isolate_freepages: range=(0x2b000 ~ 0x2b400) nr_scanned=1024 nr_taken=13
      kcompactd0-41      [000] .....   513.322988: mm_compaction_isolate_freepages: range=(0x2ac00 ~ 0x2b000) nr_scanned=1022 nr_taken=19
      kcompactd0-41      [000] .....   513.323058: mm_compaction_isolate_freepages: range=(0x2a800 ~ 0x2ac00) nr_scanned=1021 nr_taken=38
      kcompactd0-41      [000] .....   513.323172: mm_compaction_isolate_freepages: range=(0x2a400 ~ 0x2a800) nr_scanned=1023 nr_taken=20
      kcompactd0-41      [000] .....   513.323242: mm_compaction_isolate_freepages: range=(0x29800 ~ 0x29c00) nr_scanned=1023 nr_taken=36
      kcompactd0-41      [000] .....   513.323322: mm_compaction_isolate_freepages: range=(0x29400 ~ 0x29800) nr_scanned=1023 nr_taken=47
      kcompactd0-41      [000] .....   513.323442: mm_compaction_isolate_freepages: range=(0x28c00 ~ 0x29000) nr_scanned=1024 nr_taken=20
      kcompactd0-41      [000] .....   513.323498: mm_compaction_isolate_freepages: range=(0x28400 ~ 0x28800) nr_scanned=1024 nr_taken=18
      kcompactd0-41      [000] .....   513.323560: mm_compaction_isolate_freepages: range=(0x28000 ~ 0x28400) nr_scanned=1022 nr_taken=34
      kcompactd0-41      [000] .....   513.323750: mm_compaction_isolate_freepages: range=(0x27800 ~ 0x27c00) nr_scanned=1023 nr_taken=29
      kcompactd0-41      [000] .....   513.323780: mm_compaction_isolate_freepages: range=(0x27400 ~ 0x27800) nr_scanned=1024 nr_taken=10
      kcompactd0-41      [000] .....   513.323814: mm_compaction_isolate_freepages: range=(0x26c00 ~ 0x27000) nr_scanned=1024 nr_taken=20
      kcompactd0-41      [000] .....   513.323853: mm_compaction_isolate_freepages: range=(0x26800 ~ 0x26c00) nr_scanned=1024 nr_taken=29
      kcompactd0-41      [000] .....   513.323896: mm_compaction_isolate_freepages: range=(0x26400 ~ 0x26800) nr_scanned=1022 nr_taken=25
      kcompactd0-41      [000] .....   513.323929: mm_compaction_isolate_freepages: range=(0x26000 ~ 0x26400) nr_scanned=1023 nr_taken=17
      kcompactd0-41      [000] .....   513.323969: mm_compaction_isolate_freepages: range=(0x25c00 ~ 0x26000) nr_scanned=1023 nr_taken=25
      kcompactd0-41      [000] .....   513.323996: mm_compaction_isolate_freepages: range=(0x25800 ~ 0x25c00) nr_scanned=1023 nr_taken=12
      kcompactd0-41      [000] .....   513.324030: mm_compaction_isolate_freepages: range=(0x25400 ~ 0x25800) nr_scanned=1023 nr_taken=18
      kcompactd0-41      [000] .....   513.324069: mm_compaction_isolate_freepages: range=(0x25000 ~ 0x25400) nr_scanned=1016 nr_taken=26
      kcompactd0-41      [000] .....   513.324108: mm_compaction_isolate_freepages: range=(0x24c00 ~ 0x25000) nr_scanned=1022 nr_taken=22
      kcompactd0-41      [000] .....   513.324141: mm_compaction_isolate_freepages: range=(0x24400 ~ 0x24800) nr_scanned=1024 nr_taken=14
      kcompactd0-41      [000] .....   513.324180: mm_compaction_isolate_freepages: range=(0x24000 ~ 0x24400) nr_scanned=1023 nr_taken=22
      kcompactd0-41      [000] .....   513.324218: mm_compaction_isolate_freepages: range=(0x23800 ~ 0x23c00) nr_scanned=1023 nr_taken=27
      kcompactd0-41      [000] .....   513.324260: mm_compaction_isolate_freepages: range=(0x23400 ~ 0x23800) nr_scanned=1020 nr_taken=29
      kcompactd0-41      [000] .....   513.324305: mm_compaction_isolate_freepages: range=(0x22c00 ~ 0x23000) nr_scanned=1022 nr_taken=32
      kcompactd0-41      [000] .....   513.324338: mm_compaction_isolate_freepages: range=(0x22800 ~ 0x22c00) nr_scanned=1020 nr_taken=15
      kcompactd0-41      [000] .....   513.324374: mm_compaction_isolate_freepages: range=(0x22400 ~ 0x22800) nr_scanned=1021 nr_taken=18
      kcompactd0-41      [000] .....   513.324414: mm_compaction_isolate_freepages: range=(0x22000 ~ 0x22400) nr_scanned=1018 nr_taken=27
      kcompactd0-41      [000] .....   513.324449: mm_compaction_isolate_freepages: range=(0x21c00 ~ 0x22000) nr_scanned=1024 nr_taken=21
      kcompactd0-41      [000] .....   513.324498: mm_compaction_isolate_freepages: range=(0x21800 ~ 0x21c00) nr_scanned=1023 nr_taken=37
      kcompactd0-41      [000] .....   513.324527: mm_compaction_isolate_freepages: range=(0x21400 ~ 0x21758) nr_scanned=847 nr_taken=21
      kcompactd0-41      [000] .....   513.345474: mm_compaction_migratepages: nr_migrated=813 nr_failed=0
      kcompactd0-41      [000] .....   513.345484: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.345515: mm_compaction_isolate_migratepages: range=(0xfc00 ~ 0xfc21) nr_scanned=33 nr_taken=32
      kcompactd0-41      [000] .....   513.345567: mm_compaction_isolate_freepages: range=(0x21758 ~ 0x21800) nr_scanned=166 nr_taken=7
      kcompactd0-41      [000] .....   513.345657: mm_compaction_isolate_freepages: range=(0x21000 ~ 0x21400) nr_scanned=1016 nr_taken=23
      kcompactd0-41      [000] .....   513.345663: mm_compaction_isolate_freepages: range=(0x20800 ~ 0x20877) nr_scanned=119 nr_taken=2
      kcompactd0-41      [000] .....   513.346416: mm_compaction_migratepages: nr_migrated=32 nr_failed=0
      kcompactd0-41      [000] .....   513.346424: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.347044: mm_compaction_isolate_migratepages: range=(0xfc21 ~ 0x10000) nr_scanned=981 nr_taken=934
      kcompactd0-41      [000] .....   513.347119: mm_compaction_isolate_freepages: range=(0x20877 ~ 0x20c00) nr_scanned=903 nr_taken=32
      kcompactd0-41      [000] .....   513.347159: mm_compaction_isolate_freepages: range=(0x1f800 ~ 0x1fc00) nr_scanned=1016 nr_taken=23
      kcompactd0-41      [000] .....   513.347188: mm_compaction_isolate_freepages: range=(0x1f400 ~ 0x1f800) nr_scanned=1024 nr_taken=7
      kcompactd0-41      [000] .....   513.347222: mm_compaction_isolate_freepages: range=(0x1f000 ~ 0x1f400) nr_scanned=1023 nr_taken=16
      kcompactd0-41      [000] .....   513.347263: mm_compaction_isolate_freepages: range=(0x1ec00 ~ 0x1f000) nr_scanned=1023 nr_taken=23
      kcompactd0-41      [000] .....   513.347298: mm_compaction_isolate_freepages: range=(0x1e800 ~ 0x1ec00) nr_scanned=1024 nr_taken=15
      kcompactd0-41      [000] .....   513.347339: mm_compaction_isolate_freepages: range=(0x1e400 ~ 0x1e800) nr_scanned=1023 nr_taken=22
      kcompactd0-41      [000] .....   513.347374: mm_compaction_isolate_freepages: range=(0x1e000 ~ 0x1e400) nr_scanned=1024 nr_taken=20
      kcompactd0-41      [000] .....   513.347405: mm_compaction_isolate_freepages: range=(0x1dc00 ~ 0x1e000) nr_scanned=1024 nr_taken=16
      kcompactd0-41      [000] .....   513.347439: mm_compaction_isolate_freepages: range=(0x1d800 ~ 0x1dc00) nr_scanned=1023 nr_taken=18
      kcompactd0-41      [000] .....   513.347475: mm_compaction_isolate_freepages: range=(0x1d400 ~ 0x1d800) nr_scanned=1024 nr_taken=18
      kcompactd0-41      [000] .....   513.347514: mm_compaction_isolate_freepages: range=(0x1d000 ~ 0x1d400) nr_scanned=1023 nr_taken=22
      kcompactd0-41      [000] .....   513.347557: mm_compaction_isolate_freepages: range=(0x1cc00 ~ 0x1d000) nr_scanned=1023 nr_taken=29
      kcompactd0-41      [000] .....   513.347592: mm_compaction_isolate_freepages: range=(0x1c800 ~ 0x1cc00) nr_scanned=1022 nr_taken=21
      kcompactd0-41      [000] .....   513.347635: mm_compaction_isolate_freepages: range=(0x1c000 ~ 0x1c400) nr_scanned=1014 nr_taken=39
      kcompactd0-41      [000] .....   513.347672: mm_compaction_isolate_freepages: range=(0x1bc00 ~ 0x1c000) nr_scanned=1023 nr_taken=23
      kcompactd0-41      [000] .....   513.347716: mm_compaction_isolate_freepages: range=(0x1b800 ~ 0x1bc00) nr_scanned=1024 nr_taken=32
      kcompactd0-41      [000] .....   513.347758: mm_compaction_isolate_freepages: range=(0x1b400 ~ 0x1b800) nr_scanned=1024 nr_taken=24
      kcompactd0-41      [000] .....   513.347796: mm_compaction_isolate_freepages: range=(0x1b000 ~ 0x1b400) nr_scanned=1020 nr_taken=31
      kcompactd0-41      [000] .....   513.347833: mm_compaction_isolate_freepages: range=(0x1ac00 ~ 0x1b000) nr_scanned=1024 nr_taken=15
      kcompactd0-41      [000] .....   513.347865: mm_compaction_isolate_freepages: range=(0x1a800 ~ 0x1ac00) nr_scanned=1023 nr_taken=19
      kcompactd0-41      [000] .....   513.347899: mm_compaction_isolate_freepages: range=(0x1a400 ~ 0x1a800) nr_scanned=1024 nr_taken=14
      kcompactd0-41      [000] .....   513.347939: mm_compaction_isolate_freepages: range=(0x1a000 ~ 0x1a400) nr_scanned=1022 nr_taken=26
      kcompactd0-41      [000] .....   513.347983: mm_compaction_isolate_freepages: range=(0x19c00 ~ 0x1a000) nr_scanned=1016 nr_taken=44
      kcompactd0-41      [000] .....   513.348024: mm_compaction_isolate_freepages: range=(0x19800 ~ 0x19c00) nr_scanned=1023 nr_taken=26
      kcompactd0-41      [000] .....   513.348062: mm_compaction_isolate_freepages: range=(0x19400 ~ 0x19800) nr_scanned=1022 nr_taken=31
      kcompactd0-41      [000] .....   513.348099: mm_compaction_isolate_freepages: range=(0x19000 ~ 0x19400) nr_scanned=1022 nr_taken=27
      kcompactd0-41      [000] .....   513.348165: mm_compaction_isolate_freepages: range=(0x18c00 ~ 0x19000) nr_scanned=1019 nr_taken=44
      kcompactd0-41      [000] .....   513.348205: mm_compaction_isolate_freepages: range=(0x18800 ~ 0x18c00) nr_scanned=1020 nr_taken=28
      kcompactd0-41      [000] .....   513.348246: mm_compaction_isolate_freepages: range=(0x18400 ~ 0x18800) nr_scanned=1022 nr_taken=32
      kcompactd0-41      [000] .....   513.348289: mm_compaction_isolate_freepages: range=(0x18000 ~ 0x18400) nr_scanned=1017 nr_taken=29
      kcompactd0-41      [000] .....   513.348333: mm_compaction_isolate_freepages: range=(0x17c00 ~ 0x18000) nr_scanned=1020 nr_taken=29
      kcompactd0-41      [000] .....   513.348365: mm_compaction_isolate_freepages: range=(0x17800 ~ 0x17c00) nr_scanned=1017 nr_taken=15
      kcompactd0-41      [000] .....   513.348383: mm_compaction_isolate_freepages: range=(0x17400 ~ 0x17800) nr_scanned=1024 nr_taken=0
      kcompactd0-41      [000] .....   513.348405: mm_compaction_isolate_freepages: range=(0x17000 ~ 0x17400) nr_scanned=512 nr_taken=9
      kcompactd0-41      [000] .....   513.348449: mm_compaction_isolate_freepages: range=(0x16c00 ~ 0x17000) nr_scanned=1022 nr_taken=34
      kcompactd0-41      [000] .....   513.348543: mm_compaction_isolate_freepages: range=(0x16800 ~ 0x16c00) nr_scanned=1022 nr_taken=30
      kcompactd0-41      [000] .....   513.348588: mm_compaction_isolate_freepages: range=(0x16400 ~ 0x16800) nr_scanned=1021 nr_taken=31
      kcompactd0-41      [000] .....   513.348621: mm_compaction_isolate_freepages: range=(0x16000 ~ 0x163c2) nr_scanned=962 nr_taken=20
      kcompactd0-41      [000] .....   513.368115: mm_compaction_migratepages: nr_migrated=934 nr_failed=0
      kcompactd0-41      [000] .....   513.368125: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.368204: mm_compaction_isolate_migratepages: range=(0x10000 ~ 0x10400) nr_scanned=951 nr_taken=1
      kcompactd0-41      [000] .....   513.368217: mm_compaction_migratepages: nr_migrated=1 nr_failed=0
      kcompactd0-41      [000] .....   513.368219: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.368246: mm_compaction_isolate_migratepages: range=(0x10400 ~ 0x10426) nr_scanned=34 nr_taken=32
      kcompactd0-41      [000] .....   513.368255: mm_compaction_isolate_freepages: range=(0x163c2 ~ 0x16400) nr_scanned=62 nr_taken=2
      kcompactd0-41      [000] .....   513.368302: mm_compaction_isolate_freepages: range=(0x15800 ~ 0x15c00) nr_scanned=1023 nr_taken=22
      kcompactd0-41      [000] .....   513.368321: mm_compaction_isolate_freepages: range=(0x15400 ~ 0x1555c) nr_scanned=348 nr_taken=8
      kcompactd0-41      [000] .....   513.369002: mm_compaction_migratepages: nr_migrated=32 nr_failed=0
      kcompactd0-41      [000] .....   513.369010: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue
      kcompactd0-41      [000] .....   513.369833: mm_compaction_isolate_migratepages: range=(0x10426 ~ 0x10800) nr_scanned=804 nr_taken=739
      kcompactd0-41      [000] .....   513.369923: mm_compaction_isolate_freepages: range=(0x1555c ~ 0x15800) nr_scanned=676 nr_taken=17
      kcompactd0-41      [000] .....   513.369975: mm_compaction_isolate_freepages: range=(0x15000 ~ 0x15400) nr_scanned=1022 nr_taken=27
      kcompactd0-41      [000] .....   513.370033: mm_compaction_isolate_freepages: range=(0x14c00 ~ 0x15000) nr_scanned=1019 nr_taken=35
      kcompactd0-41      [000] .....   513.370138: mm_compaction_isolate_freepages: range=(0x14800 ~ 0x14c00) nr_scanned=1023 nr_taken=29
      kcompactd0-41      [000] .....   513.370195: mm_compaction_isolate_freepages: range=(0x14400 ~ 0x14800) nr_scanned=1021 nr_taken=40
      kcompactd0-41      [000] .....   513.370252: mm_compaction_isolate_freepages: range=(0x14000 ~ 0x14400) nr_scanned=1021 nr_taken=38
      kcompactd0-41      [000] .....   513.370299: mm_compaction_isolate_freepages: range=(0x13c00 ~ 0x14000) nr_scanned=1023 nr_taken=29
      kcompactd0-41      [000] .....   513.370394: mm_compaction_isolate_freepages: range=(0x13800 ~ 0x13c00) nr_scanned=1022 nr_taken=23
      kcompactd0-41      [000] .....   513.370445: mm_compaction_isolate_freepages: range=(0x13400 ~ 0x13800) nr_scanned=1022 nr_taken=24
      kcompactd0-41      [000] .....   513.370482: mm_compaction_isolate_freepages: range=(0x13000 ~ 0x13400) nr_scanned=1023 nr_taken=14
      kcompactd0-41      [000] .....   513.370525: mm_compaction_isolate_freepages: range=(0x12c00 ~ 0x13000) nr_scanned=1012 nr_taken=21
      kcompactd0-41      [000] .....   513.370977: mm_compaction_isolate_freepages: range=(0x12800 ~ 0x12c00) nr_scanned=1013 nr_taken=49
      kcompactd0-41      [000] .....   513.371026: mm_compaction_isolate_freepages: range=(0x12400 ~ 0x12800) nr_scanned=1017 nr_taken=41
      kcompactd0-41      [000] .....   513.371069: mm_compaction_isolate_freepages: range=(0x12000 ~ 0x12400) nr_scanned=1019 nr_taken=34
      kcompactd0-41      [000] .....   513.371121: mm_compaction_isolate_freepages: range=(0x11c00 ~ 0x12000) nr_scanned=1011 nr_taken=51
      kcompactd0-41      [000] .....   513.371166: mm_compaction_isolate_freepages: range=(0x11800 ~ 0x11c00) nr_scanned=1022 nr_taken=43
      kcompactd0-41      [000] .....   513.371216: mm_compaction_isolate_freepages: range=(0x11400 ~ 0x11800) nr_scanned=1017 nr_taken=46
      kcompactd0-41      [000] .....   513.371270: mm_compaction_isolate_freepages: range=(0x11000 ~ 0x11400) nr_scanned=1010 nr_taken=71
      kcompactd0-41      [000] .....   513.371305: mm_compaction_isolate_freepages: range=(0x10c00 ~ 0x10dc0) nr_scanned=406 nr_taken=111
      kcompactd0-41      [000] .....   513.384887: mm_compaction_migratepages: nr_migrated=739 nr_failed=0
      kcompactd0-41      [000] .....   513.384896: mm_compaction_finished: node=0 zone=Normal   order=-1 ret=continue

### Direct Memory Compaction Trigger Conditions in Java In Java, direct memory management involves using off-heap memory through classes like `ByteBuffer.allocateDirect()`. The JVM does not automatically compact direct memory as part of standard garbage collection cycles. However, certain conditions can lead to the triggering of direct memory compaction: #### OutOfMemoryError Prevention Through Soft References Soft references serve as a mechanism to prevent `OutOfMemoryError` by acting as a circuit breaker for memory allocation[^1]. When an application uses excessive amounts of direct memory, leading to potential out-of-memory situations, soft references allow the garbage collector to reclaim these resources before throwing such errors. #### Garbage Collection and Direct Memory Management Java’s garbage collector manages heap-based objects but requires specific handling for direct buffers. While regular destructors are unnecessary due to automatic memory cleanup provided by the garbage collector[^2], direct byte buffers require special attention since they reside outside the main heap space. The following scenarios may prompt actions related to direct memory compaction indirectly: - **High Allocation Rate**: If applications allocate large numbers of direct buffers rapidly without freeing them appropriately. - **Low System Resources**: Insufficient system-level memory available might force the operating system or runtime environment to take action against processes consuming too much non-heap memory. ```java import java.nio.ByteBuffer; public class DirectMemoryExample { public static void main(String[] args) throws InterruptedException { int size = 10 * 1024 * 1024; // Allocate 10MB buffer ByteBuffer dbuf = ByteBuffer.allocateDirect(size); Thread.sleep(5000); // Simulate work being done dbuf = null; // Release reference allowing GC to clean up if needed } } ``` When dealing with direct memory allocations, developers should ensure proper resource management practices to minimize fragmentation issues over time. Although explicit triggers for compaction aren’t directly exposed via APIs, maintaining good coding habits helps mitigate problems associated with unmanaged growth of direct memory usage.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值