On Sun, 14 Aug 2011, Pintu Agarwal wrote: > Thanks Christoph for your reply :) > > > Weird system. One would expect it to only have NORMAL zones. Is this an > > ARM system? > > Yes this is an ARM based system for linux mobile phone. Ok.Maybe The memory setup is broken. Make the DMA zones into NORMAL zones? > Yes, I tried exactly like this, but since I have only one zone (DMA), it always returns me the data from the first Node 0. > This will only work, if I have 3 separate zones (DMA, Normal, HighMem) Well yes that is the way its designed. DMA is an exceptional zone. > In "__alloc_pages_nodemask", before the actual allocation happens, how to find out the allocation is going to happen from which zone and which Node.? > (The _preferred_zone_ info is not enough, I need to know the Node number as well) You can get the node number from a zone. Use zone_to_nid().