mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
Fix commit 29c1e913e459058c12d02b3f4b767b3dd428a498
This patch fixes changes done in commit 29c1e913e459058c12d02b3f4b767b3 that was pushed without implementing review feedback. The flag introduced by the patch is changed to VIR_DOMAIN_VCPU_GUEST and documentation makes the difference between regular hotplug and this new functionality more explicit. The virsh options that enable the use of the new flag are changed to "--guest" and the documentation is fixed too.
This commit is contained in:
parent
db459dbdb9
commit
c2093b2aba
@ -2120,7 +2120,7 @@ typedef enum {
|
||||
|
||||
/* Additionally, these flags may be bitwise-OR'd in. */
|
||||
VIR_DOMAIN_VCPU_MAXIMUM = (1 << 2), /* Max rather than current count */
|
||||
VIR_DOMAIN_VCPU_AGENT = (1 << 3), /* Use guest-agent based cpu hotplug */
|
||||
VIR_DOMAIN_VCPU_GUEST = (1 << 3), /* Modify state of the cpu in the guest */
|
||||
} virDomainVcpuFlags;
|
||||
|
||||
int virDomainSetVcpus (virDomainPtr domain,
|
||||
|
@ -8907,10 +8907,10 @@ error:
|
||||
* current virtual CPU limit, which must be less than or equal to the
|
||||
* maximum limit.
|
||||
*
|
||||
* If @flags includes VIR_DOMAIN_VCPU_AGENT, then a guest agent is used to
|
||||
* modify the number of processors used by a domain. This flag can only be used
|
||||
* with live guests and is incompatible with VIR_DOMAIN_VCPU_MAXIMUM as the
|
||||
* maximum limit can't be changed using the guest agent.
|
||||
* If @flags includes VIR_DOMAIN_VCPU_GUEST, then the state of processors is
|
||||
* modified inside the guest instead of the hypervisor. This flag can only
|
||||
* be used with live guests and is incompatible with VIR_DOMAIN_VCPU_MAXIMUM.
|
||||
* The usage of this flag may require a guest agent configured.
|
||||
*
|
||||
* Not all hypervisors can support all flag combinations.
|
||||
*
|
||||
@ -8937,11 +8937,11 @@ virDomainSetVcpusFlags(virDomainPtr domain, unsigned int nvcpus,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (flags & VIR_DOMAIN_VCPU_AGENT &&
|
||||
if (flags & VIR_DOMAIN_VCPU_GUEST &&
|
||||
flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
||||
virReportInvalidArg(flags,
|
||||
_("flags 'VIR_DOMAIN_VCPU_MAXIMUM' and "
|
||||
"'VIR_DOMAIN_VCPU_AGENT' in '%s' are mutually "
|
||||
"'VIR_DOMAIN_VCPU_GUEST' in '%s' are mutually "
|
||||
"exclusive"), __FUNCTION__);
|
||||
goto error;
|
||||
}
|
||||
@ -8991,9 +8991,9 @@ error:
|
||||
* virtual CPU limit is queried. Otherwise, this call queries the
|
||||
* current virtual CPU count.
|
||||
*
|
||||
* If @flags includes VIR_DOMAIN_VCPU_AGENT, then a guest agent is used to
|
||||
* modify the number of processors used by a domain. This flag is only usable on
|
||||
* live domains.
|
||||
* If @flags includes VIR_DOMAIN_VCPU_GUEST, then the state of the processors
|
||||
* is modified in the guest instead of the hypervisor. This flag is only usable
|
||||
* on live domains. Guest agent may be needed for this flag to be available.
|
||||
*
|
||||
* Returns the number of vCPUs in case of success, -1 in case of failure.
|
||||
*/
|
||||
|
@ -3792,7 +3792,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
|
||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||
VIR_DOMAIN_AFFECT_CONFIG |
|
||||
VIR_DOMAIN_VCPU_MAXIMUM |
|
||||
VIR_DOMAIN_VCPU_AGENT, -1);
|
||||
VIR_DOMAIN_VCPU_GUEST, -1);
|
||||
|
||||
if (!nvcpus || (unsigned short) nvcpus != nvcpus) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
@ -3834,7 +3834,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
if (flags & VIR_DOMAIN_VCPU_AGENT) {
|
||||
if (flags & VIR_DOMAIN_VCPU_GUEST) {
|
||||
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
|
||||
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
|
||||
_("chainging of maximum vCPU count isn't supported "
|
||||
@ -4518,7 +4518,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
|
||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||
VIR_DOMAIN_AFFECT_CONFIG |
|
||||
VIR_DOMAIN_VCPU_MAXIMUM |
|
||||
VIR_DOMAIN_VCPU_AGENT, -1);
|
||||
VIR_DOMAIN_VCPU_GUEST, -1);
|
||||
|
||||
if (!(vm = qemuDomObjFromDomain(dom)))
|
||||
return -1;
|
||||
@ -4535,7 +4535,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
|
||||
if (flags & VIR_DOMAIN_AFFECT_LIVE)
|
||||
def = vm->def;
|
||||
|
||||
if (flags & VIR_DOMAIN_VCPU_AGENT) {
|
||||
if (flags & VIR_DOMAIN_VCPU_GUEST) {
|
||||
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
|
||||
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
||||
_("vCPU count provided by the guest agent can only be "
|
||||
|
@ -5161,9 +5161,9 @@ static const vshCmdOptDef opts_vcpucount[] = {
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("get value according to current domain state")
|
||||
},
|
||||
{.name = "agent",
|
||||
{.name = "guest",
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("use guest agent based hotplug")
|
||||
.help = N_("retrieve vcpu count from the guest instead of the hypervisor")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
@ -5207,8 +5207,8 @@ vshCPUCountCollect(vshControl *ctl,
|
||||
last_error->code == VIR_ERR_INVALID_ARG))
|
||||
goto cleanup;
|
||||
|
||||
if (flags & VIR_DOMAIN_VCPU_AGENT) {
|
||||
vshError(ctl, "%s", _("Failed to retrieve vCPU count via guest agent"));
|
||||
if (flags & VIR_DOMAIN_VCPU_GUEST) {
|
||||
vshError(ctl, "%s", _("Failed to retrieve vCPU count from the guest"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -5267,8 +5267,8 @@ cmdVcpucount(vshControl *ctl, const vshCmd *cmd)
|
||||
bool config = vshCommandOptBool(cmd, "config");
|
||||
bool live = vshCommandOptBool(cmd, "live");
|
||||
bool current = vshCommandOptBool(cmd, "current");
|
||||
bool agent = vshCommandOptBool(cmd, "agent");
|
||||
bool all = maximum + active + current + config + live + agent == 0;
|
||||
bool guest = vshCommandOptBool(cmd, "guest");
|
||||
bool all = maximum + active + current + config + live + guest == 0;
|
||||
unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;
|
||||
|
||||
/* Backwards compatibility: prior to 0.9.4,
|
||||
@ -5283,7 +5283,7 @@ cmdVcpucount(vshControl *ctl, const vshCmd *cmd)
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(current, live);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(current, config);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(active, maximum);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(agent, config);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(guest, config);
|
||||
|
||||
if (live)
|
||||
flags |= VIR_DOMAIN_AFFECT_LIVE;
|
||||
@ -5291,8 +5291,8 @@ cmdVcpucount(vshControl *ctl, const vshCmd *cmd)
|
||||
flags |= VIR_DOMAIN_AFFECT_CONFIG;
|
||||
if (maximum)
|
||||
flags |= VIR_DOMAIN_VCPU_MAXIMUM;
|
||||
if (agent)
|
||||
flags |= VIR_DOMAIN_VCPU_AGENT;
|
||||
if (guest)
|
||||
flags |= VIR_DOMAIN_VCPU_GUEST;
|
||||
|
||||
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
|
||||
return false;
|
||||
@ -5762,10 +5762,6 @@ static const vshCmdOptDef opts_emulatorpin[] = {
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("affect current domain")
|
||||
},
|
||||
{.name = "agent",
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("use guest agent based hotplug")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
@ -5889,6 +5885,10 @@ static const vshCmdOptDef opts_setvcpus[] = {
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("affect current domain")
|
||||
},
|
||||
{.name = "guest",
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("modify cpu state in the guest")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
@ -5902,19 +5902,19 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd)
|
||||
bool config = vshCommandOptBool(cmd, "config");
|
||||
bool live = vshCommandOptBool(cmd, "live");
|
||||
bool current = vshCommandOptBool(cmd, "current");
|
||||
bool agent = vshCommandOptBool(cmd, "agent");
|
||||
bool guest = vshCommandOptBool(cmd, "guest");
|
||||
unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;
|
||||
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(current, live);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(current, config);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(agent, config);
|
||||
VSH_EXCLUSIVE_OPTIONS_VAR(guest, config);
|
||||
|
||||
if (config)
|
||||
flags |= VIR_DOMAIN_AFFECT_CONFIG;
|
||||
if (live)
|
||||
flags |= VIR_DOMAIN_AFFECT_LIVE;
|
||||
if (agent)
|
||||
flags |= VIR_DOMAIN_VCPU_AGENT;
|
||||
if (guest)
|
||||
flags |= VIR_DOMAIN_VCPU_GUEST;
|
||||
/* none of the options were specified */
|
||||
if (!current && flags == 0)
|
||||
flags = -1;
|
||||
|
@ -1585,7 +1585,7 @@ exclusive. If no flag is specified, behavior is different depending
|
||||
on hypervisor.
|
||||
|
||||
=item B<setvcpus> I<domain> I<count> [I<--maximum>] [[I<--config>]
|
||||
[I<--live>] | [I<--current>]] [I<--agent>]
|
||||
[I<--live>] | [I<--current>]] [I<--guest>]
|
||||
|
||||
Change the number of virtual CPUs active in a guest domain. By default,
|
||||
this command works on active guest domains. To change the settings for an
|
||||
@ -1611,9 +1611,9 @@ is up to the hypervisor whether the I<--config> flag is also assumed, and
|
||||
therefore whether the XML configuration is adjusted to make the change
|
||||
persistent.
|
||||
|
||||
If I<--agent> is specified, then guest agent commands are used to retrieve the
|
||||
count of available vCPUs from the perspective of the guest. This flag is usable
|
||||
only for live domains.
|
||||
If I<--guest> is specified, then the count of cpus is modified in the guest
|
||||
instead of the hypervisor. This flag is usable only for live domains
|
||||
and may require guest agent to be configured in the guest.
|
||||
|
||||
The I<--maximum> flag controls the maximum number of virtual cpus that can
|
||||
be hot-plugged the next time the domain is booted. As such, it must only be
|
||||
@ -1741,7 +1741,7 @@ NOTE: For an inactive domain, the domain name or UUID must be used as the
|
||||
I<domain>.
|
||||
|
||||
=item B<vcpucount> I<domain> [{I<--maximum> | I<--active>}
|
||||
{I<--config> | I<--live> | I<--current>}] [I<--agent>]
|
||||
{I<--config> | I<--live> | I<--current>}] [I<--guest>]
|
||||
|
||||
Print information about the virtual cpu counts of the given
|
||||
I<domain>. If no flags are specified, all possible counts are
|
||||
@ -1759,9 +1759,9 @@ lists current values, and I<--current> queries according to the current
|
||||
state of the domain (corresponding to I<--live> if running, or
|
||||
I<--config> if inactive); these three flags are mutually exclusive.
|
||||
|
||||
If I<--agent> is specified, then guest agent commands are used to retrieve the
|
||||
count of available vCPUs from the perspective of the guest. This flag is usable
|
||||
only for live domains.
|
||||
If I<--guest> is specified, then the count of cpus is reported from
|
||||
the perspective of the guest. This flag is usable only for live domains
|
||||
and may require guest agent to be configured in the guest.
|
||||
|
||||
=item B<vcpuinfo> I<domain>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user