[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qemu] spapr/target-ppc/kvm: Only add hcall-instr
Re: [Qemu-devel] [PATCH qemu] spapr/target-ppc/kvm: Only add hcall-instructions if KVM supports it
Tue, 15 Mar 2016 11:30:20 +0100
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
On 15.03.16 10:59, David Gibson wrote:
> On Tue, Mar 15, 2016 at 04:51:20PM +1100, Alexey Kardashevskiy wrote:
>> ePAPR defines "hcall-instructions" device-tree property which contains
>> code to call hypercalls in ePAPR paravirtualized guests. However this
>> property is also present for pseries guests where it does not make sense,
>> even though it contains dummy code which simply fails.
>> Instead of 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), this simply does not
>> the property to the device tree if the host kernel does not implement it.
>> In order to tell the machine code if the host kernel supports
>> KVM_CAP_PPC_GET_PVINFO, this changes kvmppc_get_hypercall() to return 1
>> if the host kernel does not implement it (which is HV KVM case).
>> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> So the idea of only adding the property when the host kernel supplies
> a suitable value seems good, but I'm a bit nervous about applying
> this, because I'm not sure what case the original fallback hypercall
> code was supposed to handle.
> agraf, if you could enlighten us with some history that could be good.
The fallback code simply does "return -1" regardless of guest
endianness, so it makes every kvm hypercall fail.
I guess not supplying the sequence at all if the host kernel doesn't
implement kvm hypercalls (and thus doesn't expose the trampoline), yeah.
I wonder why I didn't do that back then, hrm ..