When a kernel zone using virtual CPUs (VCPUs) is running, the VCPU threads are bound to sets of physical CPUs. This requirement can prevent CPUs from being added to processor sets or CPU dynamic reconfiguration (DR).
On SPARC systems, such kernel zones are terminated if the binding is unexpectedly lost. For example, creating a pool containing all the logical CPUs that a kernel zone VCPU thread is using might destroy the kernel zone.
The following error message is displayed when creating processor sets:
# psrset -c 0
created processor set 1 psrset: cannot assign processor 0: Device busy
The following error message is displayed during Oracle VM Server for SPARC DR:
# ldm set-vcpu 10 ldom
Removal of cpu 10 failed, error: cpu has bound threads Domain ldom didn't allow removal of any VCPU Resource modification failed
The following error message is displayed when creating pools:
# grep affinity /var/log/zones/vcpu.messages
2014-05-07 22:44:18 main error: vcpu 9 has lost all affinity. 2014-05-07 22:44:18 main error: VCPU error: lost affinity 2014-05-07 22:44:28 main error: vcpu 15 has lost all affinity. 2014-05-07 22:44:28 main error: VCPU error: lost affinity
Workaround: Before creating processor sets or pools or attempting CPU DR, suspend kernel zones that might be affected.