[libvirt] libxl: calculating free pages in libvirt
Ian Campbell
Ian.Campbell at eu.citrix.com
Thu Jun 6 13:59:58 UTC 2013
On Thu, 2013-06-06 at 15:53 +0200, Dario Faggioli wrote:
> Hi Jim,
>
> As I told you in Dublin, I'm looking into libvirt a bit, with the main
> purpose of implementing the NUMA interface for the libxl driver.
>
> While at it I noticed that libxlNodeGetFreeMemory() uses the value
> contained in phy_info.free_pages to check how many pages of free memory
> we have.
>
> However, starting from (Xen's git) commit bec8f17e, the number of free
> pages should be computed like this:
>
> (phy_info.free_pages - phy_info.outstanding_pages)
>
> to take the memory claiming mechanism introduced by Oracle properly into
> account.
This only really matters if libvirt wants to coexist on a host with
toolstacks which use claim, otherwise outstanding pages will never be
non-zero. I don't know if coexistence is a goal or not.
> You can see an example of that, for instance, looking at the
> output_physinfo() function in tools/libxl/xl_cmdimpl.c (in the Xen
> codebase, of course :-) ).
>
> Said commit is from last May, and the claim mechanism altogether --which
> includes adding the outstanding_pages field to the libxl_physinfo struct
> in libxl-- was introduced during the 4.3 development cycle.
>
> So, forgive the possibly dumb question, but what's the preferred way to
> fix this in libvirt, without breaking build with old libxl versions?
> (Provided this is something libvirt cares about, does it?)
>
> For other features added within this last dev cycle, libxl has a
> `#define LIBXL_HAVE_<foo>' (e.g., LIBXL_HAVE_DOMAIN_NODEAFFINITY), but I
> don't see one for this particular field... Konrad, Ian, am I missing it?
I don't think so, we seem to have forgotten.
> If no, should we add it?
Yes, I think that would be wise.
Ian.
More information about the libvir-list
mailing list