On Wed, Sep 01, 2021 at 02:33:52PM -0300, Fabiano Rosas wrote: > This series merges our three kvm modules kvm.ko, kvm-hv.ko and > kvm-pr.ko into one kvm.ko module. That doesn't sound like a good idea to me. People who aren't on BookS servers don't want - and can't use - kvm-hv. Almost nobody wants kvm-pr. It's also kind of inconsistent with x86, which has the separate AMD and Intel modules. > The main reason for this is to deal with the issue that kvm.ko can be > loaded on its own without any of the other modules present. This can > happen if one or both of the modules fail to init or if the user loads > kvm.ko only. > > With only kvm.ko loaded, the userspace can call any of the KVM ioctls > which will fail more or less gracefully depending on what kind of > verification we do in powerpc.c. I see that that's awkward, but I'm not sure it justifies compromising the actual natural structure of the dependencies. > Instead of adding a check to every entry point or finding a hack to > link the modules so that when one fails (hv/pr), the other (kvm) > exits, I think it is cleaner to just make them all a single module. > > The two KVM implementations are already selected by Kconfig options, > so the only thing that changes is that they are now in the same > module. I also kept kvm-hv and kvm-pr as aliases to kvm, so that > people don't get too surprised with the change. > > There is a possible issue with the larger module size for kernel > builds that should support both HV-only and PR-only environments, but > PR is usually not used in production so I'm not sure if that is a real > issue. > > Patches 1,2,3 are standalone cleanups. > Patches 4,5 are the unification work. > > Fabiano Rosas (5): > KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init > KVM: PPC: Book3S HV: Delay setting of kvm ops > KVM: PPC: Book3S HV: Free allocated memory if module init fails > KVM: PPC: Book3S: Unify kvm-hv and kvm-pr modules > KVM: PPC: Book3S: Stop exporting non-builtin symbols > > arch/powerpc/configs/powernv_defconfig | 2 +- > arch/powerpc/configs/ppc64_defconfig | 2 +- > arch/powerpc/configs/pseries_defconfig | 2 +- > arch/powerpc/kvm/Kconfig | 72 ++++++++++++-------------- > arch/powerpc/kvm/Makefile | 11 ++-- > arch/powerpc/kvm/book3s.c | 61 ++++++++++++++-------- > arch/powerpc/kvm/book3s.h | 19 +++++++ > arch/powerpc/kvm/book3s_64_mmu_radix.c | 3 -- > arch/powerpc/kvm/book3s_64_vio.c | 3 -- > arch/powerpc/kvm/book3s_hv.c | 38 ++++++++------ > arch/powerpc/kvm/book3s_pr.c | 13 ----- > arch/powerpc/kvm/book3s_rtas.c | 1 - > arch/powerpc/kvm/book3s_xics.c | 4 -- > arch/powerpc/kvm/book3s_xive.c | 6 --- > arch/powerpc/kvm/emulate.c | 1 - > arch/powerpc/kvm/powerpc.c | 14 ----- > kernel/irq/irqdesc.c | 2 +- > 17 files changed, 125 insertions(+), 129 deletions(-) > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature