[PATCH 2/2] qemu_capabilities.c: drop 'kvm_pr' support for non-Power8 hosts
groug at kaod.org
Tue Jul 28 06:41:08 UTC 2020
On Mon, 27 Jul 2020 17:47:58 +0100
Daniel P. Berrangé <berrange at redhat.com> wrote:
> On Mon, Jul 27, 2020 at 01:44:07PM -0300, Daniel Henrique Barboza wrote:
> > On 7/27/20 12:29 PM, Daniel P. Berrangé wrote:
> > > On Fri, Jun 19, 2020 at 06:04:33PM -0300, Daniel Henrique Barboza wrote:
> > > > PPC64 has two KVM modules: kvm_hv and kvm_pr. The official supported
> > > > module was always kvm_hv, while kvm_pr was used for internal testing
> > > > or for very niche cases in Power 8 hosts, always without official
> > > > IBM or distro support.
> > > >
> > > > Problem is, QMP will report KVM supportfor PPC64 if any of these
> > > > modules is loaded in the host, and kvm_pr is broken in everything
> > > > but Power8 (and will remain broken, since kvm_pr is unmaintained).
> > > > This can lead to situations like , where the tooling is misled to
> > > > believe that the host has KVM capabilities when in reality it
> > > > doesn't.
> > > >
> > > > The first reaction would be to simply forsake kvm_pr support entirely
> > > > and move on, but there is no reason for now to be disruptive with any
> > > > Power8 guests in the wild that are using kvm_pr (somehow). A more
> > > > subtle approach is to not claim QEMU_CAPS_KVM support in all cases
> > > > that we know it's completely broken, allowing Power8 users to take
> > > > their shot using kvm_pr in their VMs. We can remove kvm_pr support
> > > > completely when the module is removed from the kernel.
> > >
> > > I'm not sure libvirt should be forbidding this use of kvm_pr
> > > on non-Power8. IIUC, it is the only impl that can actually be
> > > used when in a Power9 LPARs. This patch is essentially saying
> > > that TCG is better for Power LPARs than kvm_pr which I think
> > > is not right.
> > We didn't work in kvm_pr support for Power 9. All the effort was put
> > into implementing nested virtualization with the kvm_hv module. The
> > fact that kvm_pr module loads in Power 9 is kind of an "accident".
> > As you can see in the bug linked, it's non-functional.
I haven't tried to use PR within an LPAR on POWER9 but I expect it
should be usable by QEMU if you pass options to the machine, eg.
cap-large-decr=off for a start (and maybe some more).
> If kvm_pr is known to be broken in Power 9 LPARs, then that is an
> upstream kernel bug for allowing it to be loaded under Power 9 at
> all. Can we fix the kernel to prevent it loading in cases where it
> is known to be bad.
The only known case where PR cannot work is POWER9+radix, in which
case the module cannot be loaded.
More information about the libvir-list