On Tue, Nov 12, 2024, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@xxxxxxxx> > > Enabling KVM now causes a build failure on x86-32 if X86_LOCAL_APIC > is disabled: > > arch/x86/kvm/svm/svm.c: In function 'svm_emergency_disable_virtualization_cpu': > arch/x86/kvm/svm/svm.c:597:9: error: 'kvm_rebooting' undeclared (first use in this function); did you mean 'kvm_irq_routing'? > 597 | kvm_rebooting = true; > | ^~~~~~~~~~~~~ > | kvm_irq_routing > arch/x86/kvm/svm/svm.c:597:9: note: each undeclared identifier is reported only once for each function it appears in > make[6]: *** [scripts/Makefile.build:221: arch/x86/kvm/svm/svm.o] Error 1 > In file included from include/linux/rculist.h:11, > from include/linux/hashtable.h:14, > from arch/x86/kvm/svm/avic.c:18: > arch/x86/kvm/svm/avic.c: In function 'avic_pi_update_irte': > arch/x86/kvm/svm/avic.c:909:38: error: 'struct kvm' has no member named 'irq_routing' > 909 | irq_rt = srcu_dereference(kvm->irq_routing, &kvm->irq_srcu); > | ^~ > include/linux/rcupdate.h:538:17: note: in definition of macro '__rcu_dereference_check' > 538 | typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \ > > Move the dependency to the same place as before. > > Fixes: ea4290d77bda ("KVM: x86: leave kvm.ko out of the build if no vendor module is requested") > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202410060426.e9Xsnkvi-lkp@xxxxxxxxx/ > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > Question: is there actually any point in keeping KVM support for 32-bit host > processors? Nope. We need _a_ 32-bit KVM build to run as a nested (L1) hypervisor for testing purposes, but AFAIK there's zero need to keep 32-bit KVM up-to-date. > From what I can tell, the only 32-bit CPUs that support this are > the rare Atom E6xx and Z5xx models and the even older Yonah/Sossaman "Core > Duo", everything else is presumably better off just running a 64-bit kernel > even for 32-bit guests? Yep. I am 99.9% certain there are no users of 32-bit KVM. There have been multiple instances in the past few years where 32-bit KVM was quite broken, for several kernel releases, and no one complained. Paolo, should we go ahead and start the process of removing 32-bit support in x86? I forget who it was, but someone from the QEMU world mentioned that dropping 32-bit support in KVM would allow dropping a rather large pile of code in QEMU too.