Quando uma zona do kernel que usa CPUs virtuais (VCPUs) estiver sendo executada, os threads da VCPU serão vinculados a conjuntos de CPUs físicas. Esse requisito pode evitar que as CPUs sejam adicionadas aos conjuntos de processadores ou uma DR (Dynamic Reconfiguration, Reconfiguração dinâmica) da CPU.
Em sistemas SPARC, essas zonas do kernel são encerradas, se a vinculação for inesperadamente perdida. Por exemplo, a criação de um pool que contém todas as CPUs lógicas que um thread de VCPUs está usando pode destruir a zona do kernel.
A seguinte mensagem de erro é exibida ao criar conjuntos de processadores:
# psrset -c 0
created processor set 1 psrset: cannot assign processor 0: Device busy
A seguinte mensagem de erro é exibida durante o Servidor da VM Oracle para DR SPARC:
# 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
A seguinte mensagem de erro é exibida ao criar 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
Solução alternativa: antes de criar conjuntos ou pools de processadores ou de tentar DR da CPU, suspenda as zonas do kernel que podem ser afetadas.