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

[Xen-devel] Re: domU memory allocation questions

* Ryan Harper <ryanh@xxxxxxxxxx> [2005-07-22 15:56]:
> I've been looking at the alloc_heap_pages() and alloc_domheap_pages()
> routines with an eye on making things NUMA (allocate local to a node)
> aware.  I've got some counters and I'm seeing something around 35 to 
> 40 calls to alloc_heap_pages() to get xen and dom0 up.  Then when I
> launch domU, the number of allocs goes up by 65k.  This is incurred for
> every domU launch.  When launching the domain, a dom_mem_op
> ([1]increase_reservation) is being called which turns into a
> alloc_dom_mem() which calls alloc_domheap_pages().  I've yet to find
> what is calling all of those increase_reservation memops.  Can anyone
> help explain this or point me to the code I should be looking at?
> Thanks in advance.
> 1. Instrumented alloc_dom_mem() output:
> (XEN) mem_op: DOM1 start(0) nr_extents(65536) order(0)

After some more digging, this is normal.  I just didn't know what was
going on.  

The domU was allocated 256MB, that is 262144 KB, or 65536 4K pages.
libxc issues a increase_reservation MEMOP and converts the mem value
requested into number of pages.  I didn't make the connection since the
argument was memkb / 4 ,  nor that nr_extents is related to number of

I also naively expected to see fewer allocations for domU memory, but
after thinking about it, domU needs 256M of memory, and it _doesn't_
have to be contiguous, and by asking for a page at a time, we allow the
allocator to help decrease fragmentation.

Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.