[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9c1fa821-2eaf-7709-7bd2-be83f92d2ee5@redhat.com>
Date: Tue, 5 Oct 2021 19:15:43 +0200
From: Paolo Bonzini <pbonzini@...hat.com>
To: Marcelo Tosatti <mtosatti@...hat.com>
Cc: Nitesh Narayan Lal <nitesh@...hat.com>,
linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
seanjc@...gle.com, vkuznets@...hat.com, tglx@...utronix.de,
frederic@...nel.org, mingo@...nel.org, nilal@...hat.com,
Wanpeng Li <kernellwp@...il.com>
Subject: Re: [PATCH v1] KVM: isolation: retain initial mask for kthread VM
worker
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
Powered by blists - more mailing lists