On Sat, 2017-11-25 at 16:03 +1100, Paul Mackerras wrote: > On Thu, Nov 23, 2017 at 03:36:18PM +1100, Benjamin Herrenschmidt wrote: > > This stores the MMU mode (real vs. virt) in the PACA on exceptions > > that do a KVM test. > > > > At the moment, we do this unconditionally in those exceptions due > > to how the macro system is put together. In the future we could > > find a way to only do it when actually exiting a guest. > > > > This will avoid a pile of mfmsr in the KVM exit path > > Comments below... > > > diff --git a/arch/powerpc/include/asm/kvm_book3s_asm.h b/arch/powerpc/include/asm/kvm_book3s_asm.h > > index 83596f32f50b..7775a278e56e 100644 > > --- a/arch/powerpc/include/asm/kvm_book3s_asm.h > > +++ b/arch/powerpc/include/asm/kvm_book3s_asm.h > > @@ -118,6 +118,7 @@ struct kvmppc_host_state { > > void __iomem *xive_tima_phys; > > void __iomem *xive_tima_virt; > > u32 saved_xirr; > > + u8 exit_virt; /* MMU mode on exception exit */ > > This is being added in the #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE > section of this struct, but as far as I can see we will need the new > field in the case where only PR and not HV is configured. Did you try > compiling a PR-only config? Nope. There is another problem is that it causes the fixed handler to be to big for at least one interrupt (haven't check which one, it's the build bot who notified me). I need to re-think that. I might have to either do separate do_* entry points or something like that too... Ben.