Basically, by making it possible to both query and change the vcpu to pcpu
pinning of a (persistent) domain, even when it is not running.
That happens by providing the implementation of virDomainGetVcpuPinInfo() and
virDomainPinVcpuFlags() within he libxl driver, which is what happens in the
first two patches. The third patch is something that can also be seen as a
bugfix, and that's why I kept it separated from the second one, for easier
review (although, the 'bug' does not really manifests, until
virDomainPinVcpuFlags is implemented in patch 2).
The logic is a lot similar to what happens in the QEMU driver.
The patches are available in the following git branch:
git://xenbits.xen.org/people/dariof/libvirt.git libxl/VcpuPinX
Thanks and Regards,
Dario
---
Dario Faggioli (3):
libxl: implement virDomainGetVcpuPinInfo
libxl: implement virDomainPinVcpuFlags
libxl: correctly handle affinity reset in virDomainPinVcpu[Flags]
src/libxl/libxl_driver.c | 171 ++++++++++++++++++++++++++++++++++++++++------
1 file changed, 150 insertions(+), 21 deletions(-)
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D,
http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)