On Wed, Jan 24, 2018 at 04:24:15PM +0000, Dave Martin wrote:
> On Fri, Jan 12, 2018 at 01:07:21PM +0100, Christoffer Dall wrote:
> > VHE kernels run completely in EL2 and therefore don't have a notion of
> > kernel and hyp addresses, they are all just kernel addresses.  Therefore
> > don't call kern_hyp_va() in the VHE switch function.
> 
> Isn't this an example of avoidable forkage?
> 
> This looks like it's probably just saving a couple of nops, though I may
> have misunderstood how this interfacts with alternatives.

In isolation, and if we stopped here, you're absolutely right, it
doesn't make sense.  But this is just a step on the way to significantly
reduce the _vhe version.  Have a look at the following patches and the
end result and let me know if you still have concerns.

Thanks,
-Christoffer

> 
> > 
> > Reviewed-by: Andrew Jones <drjo...@redhat.com>
> > Reviewed-by: Marc Zyngier <marc.zyng...@arm.com>
> > Signed-off-by: Christoffer Dall <christoffer.d...@linaro.org>
> > ---
> >  arch/arm64/kvm/hyp/switch.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c
> > index accfe9a016f9..05fba76ec918 100644
> > --- a/arch/arm64/kvm/hyp/switch.c
> > +++ b/arch/arm64/kvm/hyp/switch.c
> > @@ -345,9 +345,7 @@ int kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)
> >     struct kvm_cpu_context *guest_ctxt;
> >     u64 exit_code;
> >  
> > -   vcpu = kern_hyp_va(vcpu);
> > -
> > -   host_ctxt = kern_hyp_va(vcpu->arch.host_cpu_context);
> > +   host_ctxt = vcpu->arch.host_cpu_context;
> >     host_ctxt->__hyp_running_vcpu = vcpu;
> >     guest_ctxt = &vcpu->arch.ctxt;
> >  
> > -- 
> > 2.14.2
> > 
> > _______________________________________________
> > kvmarm mailing list
> > kvmarm@lists.cs.columbia.edu
> > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to