Messages in this thread | | | Date | Fri, 20 Feb 2015 17:40:28 +0300 | From | Konstantin Khlebnikov <> | Subject | Re: [PATCH] mm: hide per-cpu lists in output of show_mem() |
| |
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@yandex-team.ru> > --- > 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
| |