On Fri, 27 Sep 2013 15:59:30 +0200 Laurent Dufour <lduf...@linux.vnet.ibm.com> wrote:
> Follow-up to Anton's H_SET_MODE patch, the host should be taken aware > of guest endianess change. > > The hcall H_SET_MODE/H_SET_MODE_RESOURCE_LE is processed in kvm and > then propagated to the host. > Even if it seems a bit odd to get H_SET_MODE handled both by kvm and qemu, it is a simple way to get the job done. Unless we expect tons of calls to H_SET_MODE_RESOURCE_LE to occur, I do not see a better way for the host code to know the guest endianess. FYI, with this patch, Rusty's (Cc'ed) virtio endianess patchset for qemu works like a charm: my guest kernel calls h_set_mode once at boot time, qemu gets notified and keeps the information. Do we need more ? > v2: taking in account the Paul Mackerras's comment, using H_TOO_HARD > to propagate only H_SET_MODE_RESOURCE_LE to the host. > > Signed-off-by: Laurent Dufour <lduf...@linux.vnet.ibm.com> > --- Tested-by: Greg Kurz <gk...@linux.vnet.ibm.com> > arch/powerpc/kvm/book3s_hv.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/kvm/book3s_hv.c > b/arch/powerpc/kvm/book3s_hv.c index 998cad3..be0af39 100644 > --- a/arch/powerpc/kvm/book3s_hv.c > +++ b/arch/powerpc/kvm/book3s_hv.c > @@ -523,14 +523,14 @@ static int kvmppc_h_set_mode(struct kvm_vcpu > *vcpu, unsigned long mflags, kvm_for_each_vcpu(n, v, kvm) > v->arch.intr_msr &= ~MSR_LE; > kick_all_cpus_sync(); > - return H_SUCCESS; > + return H_TOO_HARD; /* propagating to the > host */ > > case 1: > kvm->arch.lpcr |= LPCR_ILE; > kvm_for_each_vcpu(n, v, kvm) > v->arch.intr_msr |= MSR_LE; > kick_all_cpus_sync(); > - return H_SUCCESS; > + return H_TOO_HARD; /* propagating to the > host */ > > default: > return H_UNSUPPORTED_FLAG_START; > @@ -599,6 +599,8 @@ int kvmppc_pseries_do_hcall(struct kvm_vcpu *vcpu) > kvmppc_get_gpr(vcpu, 5), > kvmppc_get_gpr(vcpu, 6), > kvmppc_get_gpr(vcpu, 7)); > + if (ret == H_TOO_HARD) > + return RESUME_HOST; > break; > > case H_XIRR: > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev > -- Gregory Kurz kurzg...@fr.ibm.com gk...@linux.vnet.ibm.com Software Engineer @ IBM/Meiosys http://www.ibm.com Tel +33 (0)562 165 496 "Anarchy is about taking complete responsibility for yourself." Alan Moore. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev