On 03/22/2011 11:47 PM, Taku Izumi wrote: > > This patch introduces VIR_DOMAIN_MEM_CURRENT flag and > modifies virDomainSetMemoryFlags function to support it. > > > /* Memory size modification flags. */ > typedef enum { > + VIR_DOMAIN_MEM_CURRENT= 0, /* affect current domain */ I tweaked the spacing here. > VIR_DOMAIN_MEM_LIVE = (1 << 0), /* affect active domain */ > VIR_DOMAIN_MEM_CONFIG = (1 << 1), /* affect next boot */ > } virDomainMemoryModFlags; > Index: libvirt/src/libvirt.c > =================================================================== > --- libvirt.orig/src/libvirt.c > +++ libvirt/src/libvirt.c > @@ -2862,10 +2862,12 @@ error: > * to Domain0 i.e. the domain where the application runs. > * This funcation may requires privileged access to the hypervisor. Oops, let's fix that typo in "funcation" while we're here. > * > - * @flags must include VIR_DOMAIN_MEM_LIVE to affect a running > - * domain (which may fail if domain is not active), or > - * VIR_DOMAIN_MEM_CONFIG to affect the next boot via the XML > - * description of the domain. Both flags may be set. > + * @flags may include VIR_DOMAIN_MEM_LIVE or VIR_DOMAIN_MEM_CONFIG. > + * Both flags may be set. If VIR_DOMAIN_MEM_LIVE is set, the change affects > + * a running domain and may fail if domain is not active. > + * If VIR_DOMAIN_MEM_CONFIG is set, the change affects the next boot via > + * the XML description on the domain. If neither flag is specified > + * (=VIR_DOMAIN_MEM_CURRENT), behavior is different depending on hypervisor. I tweaked this wording a bit. > * > * Returns 0 in case of success, -1 in case of failure. > */ > @@ -2891,8 +2893,7 @@ virDomainSetMemoryFlags(virDomainPtr dom > goto error; > } > > - if (memory < 4096 || > - (flags & (VIR_DOMAIN_MEM_LIVE | VIR_DOMAIN_MEM_CONFIG)) == 0) { > + if (memory < 4096) { > virLibDomainError(VIR_ERR_INVALID_ARG, __FUNCTION__); > goto error; > } Here's what I squashed in before pushing: diff --git i/include/libvirt/libvirt.h.in w/include/libvirt/libvirt.h.in index c9129bc..d765412 100644 --- i/include/libvirt/libvirt.h.in +++ w/include/libvirt/libvirt.h.in @@ -854,9 +854,9 @@ int virDomainGetMemoryParameters(virDomainPtr domain, /* Memory size modification flags. */ typedef enum { - VIR_DOMAIN_MEM_CURRENT= 0, /* affect current domain */ - VIR_DOMAIN_MEM_LIVE = (1 << 0), /* affect active domain */ - VIR_DOMAIN_MEM_CONFIG = (1 << 1), /* affect next boot */ + VIR_DOMAIN_MEM_CURRENT = 0, /* affect current domain state */ + VIR_DOMAIN_MEM_LIVE = (1 << 0), /* affect active domain */ + VIR_DOMAIN_MEM_CONFIG = (1 << 1), /* affect next boot */ } virDomainMemoryModFlags; diff --git i/src/libvirt.c w/src/libvirt.c index ee11643..dde4bd4 100644 --- i/src/libvirt.c +++ w/src/libvirt.c @@ -2822,14 +2822,17 @@ error: * Dynamically change the target amount of physical memory allocated to a * domain. If domain is NULL, then this change the amount of memory reserved * to Domain0 i.e. the domain where the application runs. - * This funcation may requires privileged access to the hypervisor. + * This function may requires privileged access to the hypervisor. * * @flags may include VIR_DOMAIN_MEM_LIVE or VIR_DOMAIN_MEM_CONFIG. * Both flags may be set. If VIR_DOMAIN_MEM_LIVE is set, the change affects - * a running domain and may fail if domain is not active. - * If VIR_DOMAIN_MEM_CONFIG is set, the change affects the next boot via - * the XML description on the domain. If neither flag is specified - * (=VIR_DOMAIN_MEM_CURRENT), behavior is different depending on hypervisor. + * a running domain and will fail if domain is not active. + * If VIR_DOMAIN_MEM_CONFIG is set, the change affects persistent state, + * and will fail for transient domains. If neither flag is specified + * (that is, @flags is VIR_DOMAIN_MEM_CURRENT), then an inactive domain + * modifies persistent setup, while an active domain is hypervisor-dependent + * on whether just live or both live and persistent state is changed. + * Not all hypervisors can support all flag combinations. * * Returns 0 in case of success, -1 in case of failure. */ -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list