static const vshCmdOptDef opts_setmem[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"kilobytes", VSH_OT_INT, VSH_OFLAG_REQ, N_("number of kilobytes of memory")},
+ {"config", VSH_OT_BOOL, 0, N_("affect next boot")},
+ {"live", VSH_OT_BOOL, 0, N_("affect running domain")},
{NULL, 0, 0, NULL}
};
virDomainInfo info;
unsigned long kilobytes = 0;
int ret = TRUE;
+ int config = vshCommandOptBool(cmd, "config");
+ int live = vshCommandOptBool(cmd, "live");
+ int flags = 0;
+
+ /* Need to use flags if config was specified, but prefer older api
+ * for live-only behavior otherwise */
+ if (config) {
+ flags = VIR_DOMAIN_MEM_CONFIG;
+ if (live)
+ flags |= VIR_DOMAIN_MEM_LIVE;
+ }
if (!vshConnectionUsability(ctl, ctl->conn))
return FALSE;
return FALSE;
}
- if (virDomainSetMemory(dom, kilobytes) != 0) {
- ret = FALSE;
+ if (!flags) {
+ if (virDomainSetMemory(dom, kilobytes) != 0) {
+ ret = FALSE;
+ }
+ } else {
+ if (virDomainSetMemoryFlags(dom, kilobytes, flags) < 0) {
+ ret = FALSE;
+ }
}
virDomainFree(dom);
B<Note>: The weight and cap parameters are defined only for the
XEN_CREDIT scheduler and are now I<DEPRECATED>.
-=item B<setmem> I<domain-id> B<kilobytes>
+=item B<setmem> I<domain-id> B<kilobytes> optional I<--config> I<--live>
-Immediately change the current memory allocation for an active guest domain.
+Change the memory allocation for a guest domain.
+If I<--live> is specified, perform a memory balloon of a running guest.
+If I<--config> is specified, affect the next boot of a persistent guest.
+Both flags may be given. If neither flag is given, I<--live> is assumed.
Some hypervisors require a larger granularity than kilobytes, and requests
that are not an even multiple will be rounded up. For example, vSphere/ESX
For Xen, you can only adjust the memory of a running domain if the domain is
paravirtualized or running the PV balloon driver.
-Note, this command only works on active guest domains. To change the memory
-allocation for an inactive guest domain, use the virsh B<edit> command to
-update the XML <currentMemory> element.
-
=item B<setmaxmem> I<domain-id> B<kilobytes>
Change the maximum memory allocation limit for an inactive guest domain.