Re: [PATCH] mm: hide per-cpu lists in output of show_mem()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20.02.2015 17:39, Konstantin Khlebnikov wrote:
This makes show_mem() much less verbose at huge machines. Instead of
huge and almost useless dump of counters for each per-zone per-cpu
lists this patch prints sum of these counters for each zone (free_pcp)
and size of per-cpu list for current cpu (local_pcp).


Before:

[   14.569103] sysrq: SysRq : Show Memory
[   14.569599] Mem-Info:
[   14.569870] Node 0 DMA per-cpu:
[   14.570375] CPU    0: hi:    0, btch:   1 usd:   0
[   14.570913] CPU    1: hi:    0, btch:   1 usd:   0
[   14.571449] CPU    2: hi:    0, btch:   1 usd:   0
[   14.571978] CPU    3: hi:    0, btch:   1 usd:   0
[   14.572507] CPU    4: hi:    0, btch:   1 usd:   0
[   14.573090] CPU    5: hi:    0, btch:   1 usd:   0
[   14.573914] CPU    6: hi:    0, btch:   1 usd:   0
[   14.574869] CPU    7: hi:    0, btch:   1 usd:   0
[   14.575413] CPU    8: hi:    0, btch:   1 usd:   0
[   14.576233] CPU    9: hi:    0, btch:   1 usd:   0
[   14.577054] CPU   10: hi:    0, btch:   1 usd:   0
[   14.577869] CPU   11: hi:    0, btch:   1 usd:   0
[   14.578690] CPU   12: hi:    0, btch:   1 usd:   0
[   14.579510] CPU   13: hi:    0, btch:   1 usd:   0
[   14.580346] CPU   14: hi:    0, btch:   1 usd:   0
[   14.581165] CPU   15: hi:    0, btch:   1 usd:   0
[   14.582044] CPU   16: hi:    0, btch:   1 usd:   0
[   14.582903] CPU   17: hi:    0, btch:   1 usd:   0
[   14.583727] CPU   18: hi:    0, btch:   1 usd:   0
[   14.584544] CPU   19: hi:    0, btch:   1 usd:   0
[   14.585362] CPU   20: hi:    0, btch:   1 usd:   0
[   14.586178] CPU   21: hi:    0, btch:   1 usd:   0
[   14.587103] CPU   22: hi:    0, btch:   1 usd:   0
[   14.588099] CPU   23: hi:    0, btch:   1 usd:   0
[   14.588914] CPU   24: hi:    0, btch:   1 usd:   0
[   14.589735] CPU   25: hi:    0, btch:   1 usd:   0
[   14.590553] CPU   26: hi:    0, btch:   1 usd:   0
[   14.591401] CPU   27: hi:    0, btch:   1 usd:   0
[   14.592215] CPU   28: hi:    0, btch:   1 usd:   0
[   14.604465] CPU   29: hi:    0, btch:   1 usd:   0
[   14.605291] CPU   30: hi:    0, btch:   1 usd:   0
[   14.606113] CPU   31: hi:    0, btch:   1 usd:   0
[   14.606931] Node 0 DMA32 per-cpu:
[   14.607718] CPU    0: hi:  186, btch:  31 usd:  84
[   14.608945] CPU    1: hi:  186, btch:  31 usd: 119
[   14.610359] CPU    2: hi:  186, btch:  31 usd: 158
[   14.611785] CPU    3: hi:  186, btch:  31 usd:  35
[   14.612615] CPU    4: hi:  186, btch:  31 usd: 121
[   14.613463] CPU    5: hi:  186, btch:  31 usd: 155
[   14.614291] CPU    6: hi:  186, btch:  31 usd: 130
[   14.615128] CPU    7: hi:  186, btch:  31 usd:  77
[   14.615944] CPU    8: hi:  186, btch:  31 usd: 159
[   14.616921] CPU    9: hi:  186, btch:  31 usd: 119
[   14.617756] CPU   10: hi:  186, btch:  31 usd: 100
[   14.618649] CPU   11: hi:  186, btch:  31 usd:  37
[   14.619483] CPU   12: hi:  186, btch:  31 usd:  66
[   14.620309] CPU   13: hi:  186, btch:  31 usd:  69
[   14.621345] CPU   14: hi:  186, btch:  31 usd: 182
[   14.622295] CPU   15: hi:  186, btch:  31 usd: 127
[   14.623196] CPU   16: hi:  186, btch:  31 usd: 106
[   14.624029] CPU   17: hi:  186, btch:  31 usd:  90
[   14.624848] CPU   18: hi:  186, btch:  31 usd: 161
[   14.625677] CPU   19: hi:  186, btch:  31 usd:  71
[   14.626503] CPU   20: hi:  186, btch:  31 usd:  86
[   14.627328] CPU   21: hi:  186, btch:  31 usd: 159
[   14.628176] CPU   22: hi:  186, btch:  31 usd:  74
[   14.633389] CPU   23: hi:  186, btch:  31 usd: 111
[   14.635477] CPU   24: hi:  186, btch:  31 usd: 156
[   14.636926] CPU   25: hi:  186, btch:  31 usd: 144
[   14.638054] CPU   26: hi:  186, btch:  31 usd:  87
[   14.638903] CPU   27: hi:  186, btch:  31 usd:  50
[   14.639826] CPU   28: hi:  186, btch:  31 usd:  82
[   14.640694] CPU   29: hi:  186, btch:  31 usd: 166
[   14.641607] CPU   30: hi:  186, btch:  31 usd:  85
[   14.642862] CPU   31: hi:  186, btch:  31 usd:   0
[   14.644891] Node 1 DMA32 per-cpu:
[   14.646254] CPU    0: hi:  186, btch:  31 usd: 126
[   14.647110] CPU    1: hi:  186, btch:  31 usd: 107
[   14.647942] CPU    2: hi:  186, btch:  31 usd: 125
[   14.648788] CPU    3: hi:  186, btch:  31 usd:  42
[   14.649696] CPU    4: hi:  186, btch:  31 usd:   0
[   14.650522] CPU    5: hi:  186, btch:  31 usd:  90
[   14.651351] CPU    6: hi:  186, btch:  31 usd: 132
[   14.652173] CPU    7: hi:  186, btch:  31 usd: 103
[   14.653000] CPU    8: hi:  186, btch:  31 usd: 106
[   14.654050] CPU    9: hi:  186, btch:  31 usd: 133
[   14.655265] CPU   10: hi:  186, btch:  31 usd:  86
[   14.656131] CPU   11: hi:  186, btch:  31 usd: 100
[   14.657017] CPU   12: hi:  186, btch:  31 usd: 131
[   14.657841] CPU   13: hi:  186, btch:  31 usd: 106
[   14.659426] CPU   14: hi:  186, btch:  31 usd: 158
[   14.660518] CPU   15: hi:  186, btch:  31 usd: 172
[   14.662480] CPU   16: hi:  186, btch:  31 usd:  70
[   14.663907] CPU   17: hi:  186, btch:  31 usd: 125
[   14.665075] CPU   18: hi:  186, btch:  31 usd:  99
[   14.666047] CPU   19: hi:  186, btch:  31 usd: 163
[   14.667067] CPU   20: hi:  186, btch:  31 usd:  69
[   14.668054] CPU   21: hi:  186, btch:  31 usd:  96
[   14.668959] CPU   22: hi:  186, btch:  31 usd:  57
[   14.669810] CPU   23: hi:  186, btch:  31 usd:  93
[   14.670675] CPU   24: hi:  186, btch:  31 usd:   0
[   14.671563] CPU   25: hi:  186, btch:  31 usd:  78
[   14.672405] CPU   26: hi:  186, btch:  31 usd:  19
[   14.673262] CPU   27: hi:  186, btch:  31 usd: 112
[   14.674107] CPU   28: hi:  186, btch:  31 usd:  26
[   14.675232] CPU   29: hi:  186, btch:  31 usd: 172
[   14.676856] CPU   30: hi:  186, btch:  31 usd: 143
[   14.678591] CPU   31: hi:  186, btch:  31 usd:  52
[   14.679443] Node 2 DMA32 per-cpu:
[   14.680194] CPU    0: hi:  186, btch:  31 usd:  33
[   14.681016] CPU    1: hi:  186, btch:  31 usd:   9
[   14.681826] CPU    2: hi:  186, btch:  31 usd:  94
[   14.682651] CPU    3: hi:  186, btch:  31 usd: 103
[   14.683526] CPU    4: hi:  186, btch:  31 usd: 119
[   14.684350] CPU    5: hi:  186, btch:  31 usd: 178
[   14.685392] CPU    6: hi:  186, btch:  31 usd: 113
[   14.686369] CPU    7: hi:  186, btch:  31 usd:  73
[   14.687497] CPU    8: hi:  186, btch:  31 usd: 111
[   14.688450] CPU    9: hi:  186, btch:  31 usd:  71
[   14.690070] CPU   10: hi:  186, btch:  31 usd: 138
[   14.693257] CPU   11: hi:  186, btch:  31 usd:  54
[   14.694500] CPU   12: hi:  186, btch:  31 usd: 127
[   14.695718] CPU   13: hi:  186, btch:  31 usd:  19
[   14.696564] CPU   14: hi:  186, btch:  31 usd:  74
[   14.697522] CPU   15: hi:  186, btch:  31 usd: 175
[   14.698350] CPU   16: hi:  186, btch:  31 usd: 174
[   14.699191] CPU   17: hi:  186, btch:  31 usd: 183
[   14.700033] CPU   18: hi:  186, btch:  31 usd: 112
[   14.700846] CPU   19: hi:  186, btch:  31 usd: 167
[   14.701674] CPU   20: hi:  186, btch:  31 usd: 104
[   14.702502] CPU   21: hi:  186, btch:  31 usd: 173
[   14.703345] CPU   22: hi:  186, btch:  31 usd: 142
[   14.704179] CPU   23: hi:  186, btch:  31 usd: 102
[   14.704993] CPU   24: hi:  186, btch:  31 usd:  68
[   14.705828] CPU   25: hi:  186, btch:  31 usd:  43
[   14.706703] CPU   26: hi:  186, btch:  31 usd:  37
[   14.707559] CPU   27: hi:  186, btch:  31 usd:  85
[   14.708720] CPU   28: hi:  186, btch:  31 usd: 109
[   14.710113] CPU   29: hi:  186, btch:  31 usd: 166
[   14.711511] CPU   30: hi:  186, btch:  31 usd: 126
[   14.712356] CPU   31: hi:  186, btch:  31 usd:   0
[   14.713184] Node 3 DMA32 per-cpu:
[   14.713936] CPU    0: hi:  186, btch:  31 usd:  13
[   14.714769] CPU    1: hi:  186, btch:  31 usd: 119
[   14.715628] CPU    2: hi:  186, btch:  31 usd:   7
[   14.716636] CPU    3: hi:  186, btch:  31 usd: 119
[   14.717458] CPU    4: hi:  186, btch:  31 usd:  86
[   14.718311] CPU    5: hi:  186, btch:  31 usd: 176
[   14.719445] CPU    6: hi:  186, btch:  31 usd: 149
[   14.720859] CPU    7: hi:  186, btch:  31 usd: 144
[   14.724217] CPU    8: hi:  186, btch:  31 usd: 130
[   14.726105] CPU    9: hi:  186, btch:  31 usd:  68
[   14.727386] CPU   10: hi:  186, btch:  31 usd:  73
[   14.729419] CPU   11: hi:  186, btch:  31 usd: 120
[   14.730988] CPU   12: hi:  186, btch:  31 usd:  88
[   14.731891] CPU   13: hi:  186, btch:  31 usd:  41
[   14.732736] CPU   14: hi:  186, btch:  31 usd: 183
[   14.733562] CPU   15: hi:  186, btch:  31 usd:  63
[   14.734388] CPU   16: hi:  186, btch:  31 usd: 181
[   14.735216] CPU   17: hi:  186, btch:  31 usd: 170
[   14.736182] CPU   18: hi:  186, btch:  31 usd:  35
[   14.737543] CPU   19: hi:  186, btch:  31 usd:  48
[   14.739037] CPU   20: hi:  186, btch:  31 usd:  85
[   14.740433] CPU   21: hi:  186, btch:  31 usd: 172
[   14.741478] CPU   22: hi:  186, btch:  31 usd:  31
[   14.742444] CPU   23: hi:  186, btch:  31 usd:  76
[   14.743292] CPU   24: hi:  186, btch:  31 usd:   0
[   14.744147] CPU   25: hi:  186, btch:  31 usd:  80
[   14.745051] CPU   26: hi:  186, btch:  31 usd:  47
[   14.745863] CPU   27: hi:  186, btch:  31 usd:  54
[   14.746688] CPU   28: hi:  186, btch:  31 usd:  99
[   14.747647] CPU   29: hi:  186, btch:  31 usd: 176
[   14.748558] CPU   30: hi:  186, btch:  31 usd:   0
[   14.749754] CPU   31: hi:  186, btch:  31 usd: 152
[   14.750863] active_anon:2243 inactive_anon:35 isolated_anon:0
[   14.750863]  active_file:4482 inactive_file:4606 isolated_file:0
[   14.750863]  unevictable:0 dirty:139 writeback:0 unstable:0
[   14.750863]  free:455653 slab_reclaimable:3463 slab_unreclaimable:7535
[   14.750863]  mapped:2080 shmem:44 pagetables:285 bounce:0
[   14.750863]  free_cma:0
[ 14.759589] Node 0 DMA free:14568kB min:44kB low:52kB high:64kB active_anon:124kB inactive_anon:0kB active_file:436kB inactive_file:264kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15992kB managed:15908kB mlocked:0kB dirty:4kB writeback:0kB mapped:208kB shmem:0kB slab_reclaimable:152kB slab_unreclaimable:328kB kernel_stack:16kB pagetables:8kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   14.766300] lowmem_reserve[]: 0 470 470 470
[ 14.767506] Node 0 DMA32 free:442488kB min:1368kB low:1708kB high:2052kB active_anon:2400kB inactive_anon:12kB active_file:7224kB inactive_file:3812kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:507904kB managed:485120kB mlocked:0kB dirty:152kB writeback:0kB mapped:4584kB shmem:12kB slab_reclaimable:3924kB slab_unreclaimable:7668kB kernel_stack:1600kB pagetables:228kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   14.774390] lowmem_reserve[]: 0 0 0 0
[ 14.775481] Node 1 DMA32 free:416704kB min:1276kB low:1592kB high:1912kB active_anon:916kB inactive_anon:68kB active_file:3224kB inactive_file:2088kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524288kB managed:449572kB mlocked:0kB dirty:244kB writeback:0kB mapped:1572kB shmem:76kB slab_reclaimable:1920kB slab_unreclaimable:6360kB kernel_stack:1024kB pagetables:284kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   14.784695] lowmem_reserve[]: 0 0 0 0
[ 14.786414] Node 2 DMA32 free:464496kB min:1464kB low:1828kB high:2196kB active_anon:3712kB inactive_anon:32kB active_file:5172kB inactive_file:10548kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524288kB managed:515108kB mlocked:0kB dirty:152kB writeback:0kB mapped:1000kB shmem:44kB slab_reclaimable:6064kB slab_unreclaimable:8672kB kernel_stack:816kB pagetables:188kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   14.794710] lowmem_reserve[]: 0 0 0 0
[ 14.796172] Node 3 DMA32 free:484356kB min:1464kB low:1828kB high:2196kB active_anon:1820kB inactive_anon:28kB active_file:1872kB inactive_file:1712kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524156kB managed:514928kB mlocked:0kB dirty:4kB writeback:0kB mapped:956kB shmem:44kB slab_reclaimable:1792kB slab_unreclaimable:7112kB kernel_stack:912kB pagetables:432kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   14.802398] lowmem_reserve[]: 0 0 0 0
[ 14.803438] Node 0 DMA: 22*4kB (UM) 14*8kB (UEM) 8*16kB (UM) 3*32kB (UEM) 1*64kB (E) 2*128kB (UM) 2*256kB (UE) 2*512kB (UE) 2*1024kB (EM) 3*2048kB (EMR) 1*4096kB (M) = 14568kB [ 14.819021] Node 0 DMA32: 345*4kB (UEM) 302*8kB (UM) 211*16kB (UEM) 83*32kB (UM) 34*64kB (UM) 8*128kB (UEM) 2*256kB (UE) 1*512kB (U) 1*1024kB (E) 3*2048kB (UER) 103*4096kB (M) = 443108kB [ 14.823019] Node 1 DMA32: 366*4kB (UEM) 244*8kB (UEM) 135*16kB (UEM) 59*32kB (UEM) 22*64kB (UEM) 12*128kB (UM) 6*256kB (UEM) 0*512kB 2*1024kB (UE) 1*2048kB (U) 98*4096kB (MR) = 417448kB [ 14.828587] Node 2 DMA32: 350*4kB (UM) 143*8kB (UEM) 79*16kB (UEM) 56*32kB (UEM) 72*64kB (UEM) 7*128kB (EM) 5*256kB (EM) 0*512kB 2*1024kB (UE) 2*2048kB (UM) 109*4096kB (MR) = 464992kB [ 14.832611] Node 3 DMA32: 473*4kB (UEM) 249*8kB (UEM) 110*16kB (UEM) 43*32kB (UM) 12*64kB (UEM) 5*128kB (UEM) 4*256kB (UEM) 1*512kB (M) 2*1024kB (EM) 1*2048kB (M) 115*4096kB (MR) = 485100kB [ 14.836563] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 14.838380] Node 1 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 14.840264] Node 2 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 14.845649] Node 3 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[   14.849683] 9131 total pagecache pages
[   14.850427] 0 pages in swap cache
[   14.851238] Swap cache stats: add 0, delete 0, find 0/0
[   14.852112] Free swap  = 999420kB
[   14.852791] Total swap = 999420kB
[   14.853479] 524157 pages RAM
[   14.854122] 0 pages HighMem/MovableOnly
[   14.854842] 28998 pages reserved




After:


[   44.452524] sysrq: SysRq : Show Memory
[   44.452955] Mem-Info:
[   44.453233] active_anon:2307 inactive_anon:36 isolated_anon:0
[   44.453233]  active_file:4120 inactive_file:4623 isolated_file:0
[   44.453233]  unevictable:0 dirty:6 writeback:0 unstable:0
[   44.453233]  slab_reclaimable:3500 slab_unreclaimable:7441
[   44.453233]  mapped:2113 shmem:45 pagetables:292 bounce:0
[   44.453233]  free:456891 free_pcp:12179 free_cma:0
[ 44.456275] Node 0 DMA free:14756kB min:44kB low:52kB high:64kB active_anon:184kB inactive_anon:4kB active_file:256kB inactive_file:72kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15992kB managed:15908kB mlocked:0kB dirty:0kB writeback:0kB mapped:64kB shmem:4kB slab_reclaimable:100kB slab_unreclaimable:452kB kernel_stack:16kB pagetables:44kB unstable:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   44.460873] lowmem_reserve[]: 0 470 470 470
[ 44.461576] Node 0 DMA32 free:451052kB min:1368kB low:1708kB high:2052kB active_anon:2100kB inactive_anon:28kB active_file:4640kB inactive_file:1292kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:507904kB managed:485120kB mlocked:0kB dirty:12kB writeback:0kB mapped:2584kB shmem:40kB slab_reclaimable:2440kB slab_unreclaimable:8080kB kernel_stack:1712kB pagetables:296kB unstable:0kB bounce:0kB free_pcp:11164kB local_pcp:280kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   44.468488] lowmem_reserve[]: 0 0 0 0
[ 44.469319] Node 1 DMA32 free:414628kB min:1276kB low:1592kB high:1912kB active_anon:1664kB inactive_anon:12kB active_file:4172kB inactive_file:2104kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524288kB managed:449572kB mlocked:0kB dirty:4kB writeback:0kB mapped:1136kB shmem:20kB slab_reclaimable:3024kB slab_unreclaimable:6836kB kernel_stack:1184kB pagetables:372kB unstable:0kB bounce:0kB free_pcp:11512kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   44.479676] lowmem_reserve[]: 0 0 0 0
[ 44.482369] Node 2 DMA32 free:473636kB min:1464kB low:1828kB high:2196kB active_anon:4556kB inactive_anon:68kB active_file:3740kB inactive_file:4632kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524288kB managed:515108kB mlocked:0kB dirty:0kB writeback:0kB mapped:2972kB shmem:80kB slab_reclaimable:4832kB slab_unreclaimable:7432kB kernel_stack:736kB pagetables:320kB unstable:0kB bounce:0kB free_pcp:12928kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   44.495909] lowmem_reserve[]: 0 0 0 0
[ 44.499130] Node 3 DMA32 free:473492kB min:1464kB low:1828kB high:2196kB active_anon:724kB inactive_anon:32kB active_file:3672kB inactive_file:10392kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524156kB managed:514928kB mlocked:0kB dirty:8kB writeback:0kB mapped:1696kB shmem:36kB slab_reclaimable:3604kB slab_unreclaimable:6964kB kernel_stack:720kB pagetables:136kB unstable:0kB bounce:0kB free_pcp:13112kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[   44.511069] lowmem_reserve[]: 0 0 0 0
[ 44.513516] Node 0 DMA: 3*4kB (UE) 5*8kB (UEM) 7*16kB (UEM) 2*32kB (UM) 1*64kB (M) 3*128kB (UEM) 3*256kB (UEM) 2*512kB (UE) 2*1024kB (EM) 3*2048kB (EMR) 1*4096kB (M) = 14756kB [ 44.519682] Node 0 DMA32: 279*4kB (UEM) 156*8kB (UM) 91*16kB (UEM) 46*32kB (UEM) 21*64kB (UEM) 4*128kB (UEM) 4*256kB (EM) 3*512kB (UEM) 1*1024kB (M) 3*2048kB (UMR) 106*4096kB (M) = 451052kB [ 44.527741] Node 1 DMA32: 373*4kB (UM) 342*8kB (UM) 212*16kB (UEM) 107*32kB (UM) 24*64kB (UM) 7*128kB (UEM) 5*256kB (UM) 3*512kB (UEM) 1*1024kB (U) 0*2048kB 97*4096kB (MR) = 414628kB [ 44.532389] Node 2 DMA32: 261*4kB (UEM) 84*8kB (UM) 71*16kB (UM) 30*32kB (UM) 19*64kB (UEM) 9*128kB (UM) 6*256kB (UEM) 2*512kB (EM) 2*1024kB (UM) 2*2048kB (UE) 112*4096kB (MR) = 473636kB [ 44.537268] Node 3 DMA32: 319*4kB (UEM) 243*8kB (UEM) 180*16kB (UM) 96*32kB (UEM) 81*64kB (UEM) 9*128kB (EM) 5*256kB (M) 4*512kB (UEM) 2*1024kB (EM) 1*2048kB (E) 110*4096kB (MR) = 473492kB [ 44.542344] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 44.545064] Node 1 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 44.547613] Node 2 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 44.552028] Node 3 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[   44.559441] 8793 total pagecache pages
[   44.561298] 0 pages in swap cache
[   44.562973] Swap cache stats: add 0, delete 0, find 0/0
[   44.564722] Free swap  = 999420kB
[   44.566151] Total swap = 999420kB
[   44.567440] 524157 pages RAM
[   44.569286] 0 pages HighMem/MovableOnly
[   44.570702] 28998 pages reserved



Flag SHOW_MEM_PERCPU_LISTS reverts old verbose mode.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
---
  include/linux/mm.h |    1 +
  mm/page_alloc.c    |   32 +++++++++++++++++++++++++-------
  2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 028565a..0538de0 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1126,6 +1126,7 @@ extern void pagefault_out_of_memory(void);
   * various contexts.
   */
  #define SHOW_MEM_FILTER_NODES		(0x0001u)	/* disallowed nodes */
+#define SHOW_MEM_PERCPU_LISTS		(0x0002u)	/* per-zone per-cpu */

  extern void show_free_areas(unsigned int flags);
  extern bool skip_free_areas_node(unsigned int flags, int nid);
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index a47f0b2..e591f3b 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3198,20 +3198,29 @@ static void show_migration_types(unsigned char type)
   */
  void show_free_areas(unsigned int filter)
  {
+	unsigned long free_pcp = 0;
  	int cpu;
  	struct zone *zone;

  	for_each_populated_zone(zone) {
  		if (skip_free_areas_node(filter, zone_to_nid(zone)))
  			continue;
-		show_node(zone);
-		printk("%s per-cpu:\n", zone->name);
+
+		if (filter & SHOW_MEM_PERCPU_LISTS) {
+			show_node(zone);
+			printk("%s per-cpu:\n", zone->name);
+		}

  		for_each_online_cpu(cpu) {
  			struct per_cpu_pageset *pageset;

  			pageset = per_cpu_ptr(zone->pageset, cpu);

+			free_pcp += pageset->pcp.count;
+
+			if (!(filter & SHOW_MEM_PERCPU_LISTS))
+				continue;
+
  			printk("CPU %4d: hi:%5d, btch:%4d usd:%4d\n",
  			       cpu, pageset->pcp.high,
  			       pageset->pcp.batch, pageset->pcp.count);
@@ -3220,11 +3229,10 @@ void show_free_areas(unsigned int filter)

  	printk("active_anon:%lu inactive_anon:%lu isolated_anon:%lu\n"
  		" active_file:%lu inactive_file:%lu isolated_file:%lu\n"
-		" unevictable:%lu"
-		" dirty:%lu writeback:%lu unstable:%lu\n"
-		" free:%lu slab_reclaimable:%lu slab_unreclaimable:%lu\n"
+		" unevictable:%lu dirty:%lu writeback:%lu unstable:%lu\n"
+		" slab_reclaimable:%lu slab_unreclaimable:%lu\n"
  		" mapped:%lu shmem:%lu pagetables:%lu bounce:%lu\n"
-		" free_cma:%lu\n",
+		" free:%lu free_pcp:%lu free_cma:%lu\n",
  		global_page_state(NR_ACTIVE_ANON),
  		global_page_state(NR_INACTIVE_ANON),
  		global_page_state(NR_ISOLATED_ANON),
@@ -3235,13 +3243,14 @@ void show_free_areas(unsigned int filter)
  		global_page_state(NR_FILE_DIRTY),
  		global_page_state(NR_WRITEBACK),
  		global_page_state(NR_UNSTABLE_NFS),
-		global_page_state(NR_FREE_PAGES),
  		global_page_state(NR_SLAB_RECLAIMABLE),
  		global_page_state(NR_SLAB_UNRECLAIMABLE),
  		global_page_state(NR_FILE_MAPPED),
  		global_page_state(NR_SHMEM),
  		global_page_state(NR_PAGETABLE),
  		global_page_state(NR_BOUNCE),
+		global_page_state(NR_FREE_PAGES),
+		free_pcp,
  		global_page_state(NR_FREE_CMA_PAGES));

  	for_each_populated_zone(zone) {
@@ -3249,6 +3258,11 @@ void show_free_areas(unsigned int filter)

  		if (skip_free_areas_node(filter, zone_to_nid(zone)))
  			continue;
+
+		free_pcp = 0;
+		for_each_online_cpu(cpu)
+			free_pcp += per_cpu_ptr(zone->pageset, cpu)->pcp.count;
+
  		show_node(zone);
  		printk("%s"
  			" free:%lukB"
@@ -3275,6 +3289,8 @@ void show_free_areas(unsigned int filter)
  			" pagetables:%lukB"
  			" unstable:%lukB"
  			" bounce:%lukB"
+			" free_pcp:%lukB"
+			" local_pcp:%ukB"
  			" free_cma:%lukB"
  			" writeback_tmp:%lukB"
  			" pages_scanned:%lu"
@@ -3306,6 +3322,8 @@ void show_free_areas(unsigned int filter)
  			K(zone_page_state(zone, NR_PAGETABLE)),
  			K(zone_page_state(zone, NR_UNSTABLE_NFS)),
  			K(zone_page_state(zone, NR_BOUNCE)),
+			K(free_pcp),
+			K(this_cpu_read(zone->pageset->pcp.count)),
  			K(zone_page_state(zone, NR_FREE_CMA_PAGES)),
  			K(zone_page_state(zone, NR_WRITEBACK_TEMP)),
  			K(zone_page_state(zone, NR_PAGES_SCANNED)),



--
Konstantin

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]