----- Original Message -----
Dne Čt 12. ledna 2012 22:59:14 Dave Anderson napsal(a):
> ----- Original Message -----
>
> > Hi all,
> >
> > it seems crash shows incorrect HighMem stats with recent kernels.
> > E.g.:
> >
> > crash> kmem -i
> > [...]
> > TOTAL HIGH 1821682 6.9 GB 93% of TOTAL MEM
> > FREE HIGH 0 0 0% of TOTAL HIGH
> > TOTAL LOW 132983 519.5 MB 6% of TOTAL MEM
> >
> > FREE LOW 1333474 5.1 GB 1002% of TOTAL LOW
> >
> > BTW note that total low is smaller than free low, which is obviously
> > incorrect. I believe that this is somehow related to the Movable zone,
> > because the code that counts free low pages checks for pages which
> > belong to
> >
> > ZONE_HIGHMEM, which is initialized as:
> > vt->ZONE_HIGHMEM = vt->nr_zones - 1;
> >
> > My system has 4 zones:
> >
> > ZONE NAME SIZE MEM_MAP START_PADDR START_MAPNR
> >
> > 0 DMA 4080 f4a02200 10000 0
> > 1 Normal 221694 f4a22000 1000000 4080
> > 2 HighMem 790002 f50e5fc0 371fe000 225774
> > 3 Movable 0 0 0 0
> >
> > And indeed, "help -v" shows:
> > [...]
> >
> > dump_free_pages: dump_free_pages_zones_v2()
> >
> > [...]
> >
> > ZONE_HIGHMEM: 3
> >
> > I don't know yet how to fix this, but maybe somebody can push me in
> > the right direction.
>
> Seems like you're already headed down the right path with the
> vt->ZONE_HIGHMEM initialization, at least w/respect to the
> FREE HIGH of "0". On the other hand, I'm looking at a recent
> x86 kernel with the Movable zone, and it has normal
> looking statistics w/respect to total-low/free-low.
Interesting. What does "kmem -n" show? How is your ZONE_HIGHMEM
reported by "help -v"?
It's got the incorrect value:
crash> help -v | grep HIGH
ZONE_HIGHMEM: 3
crash>
crash> kmem -n
NODE SIZE PGLIST_DATA BOOTMEM_DATA NODE_ZONES
0 262128 c0a8c980 ---- c0a8c980
c0a8ccc0
c0a8d000
c0a8d340
MEM_MAP START_PADDR START_MAPNR
f5c51200 10000 16
ZONE NAME SIZE MEM_MAP START_PADDR START_MAPNR
0 DMA 4080 f5c51200 10000 0
1 Normal 221694 f5c71000 1000000 4080
2 HighMem 36354 f6334fc0 371fe000 225774
3 Movable 0 0 0 0
crash>
And presumably that causes the same FREE HIGH of 0 that
you are also seeing:
crash> kmem -i
PAGES TOTAL PERCENTAGE
TOTAL MEM 256423 1001.7 MB ----
FREE 97052 379.1 MB 37% of TOTAL MEM
USED 159371 622.5 MB 62% of TOTAL MEM
SHARED 171876 671.4 MB 67% of TOTAL MEM
BUFFERS 2322 9.1 MB 0% of TOTAL MEM
CACHED 90337 352.9 MB 35% of TOTAL MEM
SLAB 14440 56.4 MB 5% of TOTAL MEM
TOTAL HIGH 36354 142 MB 14% of TOTAL MEM
FREE HIGH 0 0 0% of TOTAL HIGH
TOTAL LOW 220069 859.6 MB 85% of TOTAL MEM
FREE LOW 97052 379.1 MB 44% of TOTAL LOW
TOTAL SWAP 1359871 5.2 GB ----
SWAP USED 9039 35.3 MB 0% of TOTAL SWAP
SWAP FREE 1350832 5.2 GB 99% of TOTAL SWAP
crash>