On Mon, Mar 21, 2016 at 01:14:02PM +1100, Alexey Kardashevskiy wrote: > ePAPR defines "hcall-instructions" device-tree property which contains > code to call hypercalls in ePAPR paravirtualized guests. In general > pseries guests should not be using this facility (as there is sPAPR > interface) and this property should not be present in the device tree > for pseries guests. > > However a while ago this interface was chosen to implement a hypervisor > interface to speed up PR KVM guests and since then the property is always > present in the device tree. All KVM guests use it at least to read features > via the KVM_HC_FEATURES hypercall. > > The property is populated by the code returned from the KVM's > KVM_PPC_GET_PVINFO ioctl; if not implemented in the KVM, QEMU writes there > "li r3, -1; nop; nop; nop". If QEMU does not create the property, and > the guest kernel is compiled with CONFIG_EPAPR_PARAVIRT (which is > normally the case), there is exactly the same stub at > @epapr_hypercall_start already. > > Rather than maintaining the property (which used to be BE only; then was > fixed to be endian-agnostic) and confusing the guest (which might think > there is ePAPR host while there is none), it makes sense not to create > the property in the device tree in the first place if the host kernel > does not implement it. > > This changes kvmppc_get_hypercall() to return 1 if the host kernel > does not implement KVM_CAP_PPC_GET_PVINFO. The caller can use it to decide > on whether to create the property or not. > > This changes the pseries machine to not create the property if KVM does > not implement KVM_PPC_GET_PVINFO. In practice this means that from now > on the property will not be created if either HV KVM or TCG is used. > > Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
Further reworded the commit message and merged to ppc-for-2.6. -- 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
signature.asc
Description: PGP signature