On Mon, Sep 05, 2022 at 04:38:39PM +0100, Marc Zyngier <maz@xxxxxxxxxx> wrote: > On Fri, 02 Sep 2022 03:17:35 +0100, > isaku.yamahata@xxxxxxxxx wrote: > > > > From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > > > Changes from v2: > > - Replace the first patch("KVM: x86: Drop kvm_user_return_msr_cpu_online()") > > with Sean's implementation > > - Included all patches of "Improve KVM's interaction with CPU hotplug" [2] > > Until v2, Tried to cherry-pick the least patches of it. It turned out that > > all the patches are desirable. > > > > This patch series is to implement the suggestion by Sean Christopherson [1] > > to reorganize enable/disable cpu virtualization feature by replacing > > the arch-generic current enable/disable logic with PM related hooks. And > > convert kvm/x86 to use new hooks. > > This series totally breaks on arm64 when playing with CPU hotplug. It > very much looks like preemption is now enabled in situations where we > don't expect it to (see below for the full-blown horror show). And > given the way it shows up in common code, I strongly suspect this > affects other architectures too. > > Note that if I only take patch #6 (with the subsequent fix that I > posted this morning), the system is perfectly happy with CPUs being > hotplugged on/off ad-nauseam. > Thanks for testing. As the discussion in 10/22, it seems like we need to relax the condition of WARN_ON or BUG_ON of preemptible(). Let me cook a version to relax it. -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>