On 11.04.2013 09:52, Ian Campbell wrote: > On Thu, 2013-04-11 at 05:09 +0100, Jim Fehlig wrote: >>> + /* This will fill xenstore info about free and dom0 memory - if missing, >>> + * should be called before starting first domain */ >>> + if (libxl_get_free_memory(libxl_driver->ctx, &free_mem)) { >>> + VIR_ERROR(_("cannot get free memory info")); >>> + goto error; >>> + } >>> >> >> Should failure of libxl_get_free_memory() really be fatal and prevent >> the driver from loading? > > I'm not sure it is intended to be called like this... > > I think it is intended to be called as part of starting every domain, to > check if there is enough free memory for that domain, rather than > calling it once at start of day. > > In that context if it fails or returns less than the required amount of > memory then that would be fatal for starting that domain. > > In xl we use this as part of the auto balloon of dom0, see > xl_cmdimplg.c:freemem. Does libvirt do autoballooning or does it require > dom0_mem? Perhaps this is handled at a higher level? The problem is how libxl set initial value for freemem-slack. If, for any reason, dom0 hasn't (almost) all memory assigned before creating first domain, 15% of host memory will no longer be used at all. This "any reason" can be dom0_mem, which is covered by "auto" value for autoballoon in xen-unstable (actually only for xl, not libxl in general). But this can also happen if somebody calls xl set-mem 0 <some value>. The later case doesn't mean the user want to disable autoballoon completely. And to answer you question - libvirt rely on libxl autoballoon. -- Best Regards / Pozdrawiam, Marek Marczykowski Invisible Things Lab
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list