On Thu, Jun 06, 2013 at 03:53:13PM +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. 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?
If no, should we add it?
I think we missed it. I remember thinking about it, but I can't recall
what I didn't submit. It certainly should be added.
And I think that would fix the build of old libxl against new libvirt.
Or vice-versa (if libxl supported the claim operation).
Thanks and Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D,
http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)