{"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")},
+ {"current", VSH_OT_BOOL, 0, N_("affect current domain")},
{NULL, 0, 0, NULL}
};
int ret = TRUE;
int config = vshCommandOptBool(cmd, "config");
int live = vshCommandOptBool(cmd, "live");
+ int current = vshCommandOptBool(cmd, "current");
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 (current) {
+ if (live || config) {
+ vshError(ctl, "%s", _("--current must be specified exclusively"));
+ return FALSE;
+ }
+ flags = VIR_DOMAIN_MEM_CURRENT;
+ } else {
+ if (config)
+ flags |= VIR_DOMAIN_MEM_CONFIG;
if (live)
flags |= VIR_DOMAIN_MEM_LIVE;
+ /* neither option is specified */
+ if (!live && !config)
+ flags = -1;
}
if (!vshConnectionUsability(ctl, ctl->conn))
return FALSE;
}
- if (!flags) {
+ if (flags == -1) {
if (virDomainSetMemory(dom, kilobytes) != 0) {
ret = FALSE;
}
XEN_CREDIT scheduler and are now I<DEPRECATED>.
=item B<setmem> I<domain-id> B<kilobytes> optional I<--config> I<--live>
+I<--current>
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.
+If I<--current> is specified, affect the current guest state.
+Both I<--live> and I<--config> flags may be given, but I<--current> is
+exclusive. If no flag is specified, behavior is different depending
+on hypervisor.
Some hypervisors require a larger granularity than kilobytes, and requests
that are not an even multiple will be rounded up. For example, vSphere/ESX