|
|
![](http://www.xen.org/images/globals/pixel.gif) |
|
|
|
|
|
|
|
xen-devel
[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
pages.
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
ryanh@xxxxxxxxxx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|