When resetting vcpupin setting, we have to specify all host physical
cpus as a cpulist parameter of virsh vcpupin command. It's a little
tedious.
This patch changes to allow to receive the special keyword 'r' as a cpulist
parameter of virsh vcpupin command when resetting vcpupin setting.
If you set the following:
# virsh vcpupin VM 0 r
the vcpu0 will be pinned to all physical cpus.
Signed-off-by: Taku Izumi <izumi.taku(a)jp.fujitsu.com>
---
tools/virsh.c | 7 ++++++-
tools/virsh.pod | 2 ++
2 files changed, 8 insertions(+), 1 deletion(-)
Index: libvirt/tools/virsh.c
===================================================================
--- libvirt.orig/tools/virsh.c
+++ libvirt/tools/virsh.c
@@ -3010,8 +3010,13 @@ cmdVcpupin(vshControl *ctl, const vshCmd
/* Parse cpulist */
cur = cpulist;
- if (*cur == 0)
+ if (*cur == 0) {
goto parse_error;
+ } else if (*cur == 'r') {
+ for (cpu = 0; cpu < maxcpu; cpu++)
+ VIR_USE_CPU(cpumap, cpu);
+ *cur = 0;
+ }
while (*cur != 0) {
Index: libvirt/tools/virsh.pod
===================================================================
--- libvirt.orig/tools/virsh.pod
+++ libvirt/tools/virsh.pod
@@ -797,6 +797,8 @@ Pin domain VCPUs to host physical CPUs.
and I<cpulist> is a list of physical CPU numbers. Its syntax is a comma
separated list and a special markup using '-' and '^' (ex. '0-4',
'0-3,^2')
can
also be allowed. The '-' denotes the range and the '^' denotes
exclusive.
+If you want to reset vcpupin setting, that is, to pin vcpu all physical
cpus,
+simply specify 'r' as a cpulist.
If I<--live> is specified, affect a running guest.
If I<--config> is specified, affect the next boot of a persistent guest.
If I<--current> is specified, affect the current guest state.