I am porting xml libvirt config to qemu executable arguments. Simply I have .xml vm config from virsh edit vm-name
and I want to run the same vm machine by executing qemu-system-x86_64
with special command line parameters. Die to my specific needs I cannot use libvirt
. The problem is that .xml vm config uses special cpu mapping from host machine:
<cputune>
<vcpupin vcpu='1' cpuset='3'/>
<vcpupin vcpu='0' cpuset='0-2'/>
<emulatorpin cpuset='0-2'/>
</cputune>
and then uses these vcpus in cpu numa config:
<cpu>
<numa>
<cell cpus='0' memory='2097152'/>
<cell cpus='1' memory='2097152'/>
</numa>
</cpu>
I map numa config this way: /usr/bin/qemu-system-x86_64 -numa node,nodeid=0,cpus=0,mem=2048 -numa node,nodeid=1,cpus=1,mem=2048
but I do not know how to specify vcpu config for /usr/bin/qemu-system-x86_64
. That is the problem. Any ideas?
PS My specific task is to run specific vm with vcpu tuning under Kata-containers runtime because I want to run such vm under Docker or Kubernetes. So I need to patch kata-runtime. Kata-runtime runs qemu-kvm vms using Intel GoVmm which can only run qemu binary with command line parameters. At the moment I am patching govmm for my specific needs. Intel govmm does not use libvirt.