Re: [PATCH v1] KVM: isolation: retain initial mask for kthread VM worker

From: Paolo Bonzini
Date: Tue Oct 05 2021 - 13:15:56 EST


On 05/10/21 15:21, Marcelo Tosatti wrote:
The QEMU I/O thread is not hogging the CPU 100% of the time, and
therefore the nx-recovery thread should be able to run on that CPU.

1) The cpumask of the parent thread is not inherited

set_cpus_allowed_ptr(task, housekeeping_cpumask(HK_FLAG_KTHREAD));

On __kthread_create_on_node should fail (because its cgroup, the one
inherited from QEMU, contains only isolated CPUs).

(The QEMU I/O thread runs on an isolated CPU, and is moved by libvirt
to HK-cgroup as mentioned before).

Ok, that's the part that I missed. So the core issue is that libvirt moves the I/O thread out of the isolated-CPU cgroup too late? This in turn is because libvirt gets access to the QEMU monitor too late (the KVM file descriptor is created when QEMU processes the command line).

Paolo