Re: Tracking page allocation in Zone/Node

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

 



On Fri, 12 Aug 2011, Pintu Agarwal wrote:

> On my system I have only DMA zones with 3 nodes as follows:
> Node 0, zone      DMA      3      4      6      4      5      0      0      0      0      0      0
> Node 1, zone      DMA      8      4      3      8      7      4      2      0      0      0      0
> Node 2, zone      DMA     10      2      8      3      2      2      4      1      2      2     28

Weird system. One would expect it to only have NORMAL zones. Is this an
ARM system?


> In __alloc_pages_nodemask(...), just before "First Allocation Attempt" [that is before get_page_from_freelist(....)], I wanted to print all the free pages from the "preferred_zone".
> Using something like this :
> totalfreepages = zone_page_state(zone, NR_FREE_PAGES);
>  
> But in my case, there is only one zone (DMA) but 3 nodes.
> Thus the above "zone_page_state" always returns totalfreepages only from first Node 0.
> But the allocation actually happening from Node 2.
>  
> How can we point to the zone of Node 2 to get the actual value?
>


I am not sure that I understand you correctly but you can get the data
from node 2 via

zone_page_state(NODE_DATA[2]->node_zones[ZONE_DMA], NR_FREE_PAGES);

or in __alloc_pages_nodemask

zone_page_state(preferred_zone, NR_FREE_PAGES);

[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]