On 31.03.2011, at 10:06, Liu Yu-B13201 wrote:

> 
> 
>> -----Original Message-----
>> From: kvm-ppc-ow...@vger.kernel.org 
>> [mailto:kvm-ppc-ow...@vger.kernel.org] On Behalf Of Alexander Graf
>> Sent: Thursday, March 31, 2011 3:51 PM
>> To: Liu Yu-B13201
>> Cc: Wood Scott-B07421; kvm-ppc@vger.kernel.org
>> Subject: Re: [PATCH v5 4/4] KVM: PPC: e500: Save/restore SPE state
>> 
>> 
>> On 31.03.2011, at 05:21, Liu Yu-B13201 wrote:
>> 
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: kvm-ppc-ow...@vger.kernel.org 
>>>> [mailto:kvm-ppc-ow...@vger.kernel.org] On Behalf Of Scott Wood
>>>> Sent: Thursday, March 31, 2011 7:35 AM
>>>> To: ag...@suse.de
>>>> Cc: kvm-ppc@vger.kernel.org
>>>> Subject: [PATCH v5 4/4] KVM: PPC: e500: Save/restore SPE state
>>>> 
>>>> This is done lazily.  The SPE save will be done only if 
>> the guest has
>>>> used SPE since the last preemption or heavyweight exit.  
>>>> Restore will be
>>>> done only on demand, when enabling MSR_SPE in the shadow MSR, 
>>>> in response
>>>> to an SPE fault or mtmsr emulation.
>>>> 
>>>> For SPEFSCR, Linux already switches it on context switch 
>>>> (non-lazily), so
>>>> the only remaining bit is to save it between qemu and the guest.
>>>> 
>>>> Signed-off-by: Liu Yu <yu....@freescale.com>
>>>> Signed-off-by: Scott Wood <scottw...@freescale.com>
>>>> ---
>>>> v5: disable preemption when restoring SPE state
>>>> 
>>>> Saving SPE state is only done from a preempt notifier or 
>> vcpu_put(),
>>>> where preemption is already disabled.
>>>> 
>>>> The other patches in this series are the same as v4.
>>>> 
>>>> arch/powerpc/include/asm/kvm_host.h  |    6 +++
>>>> arch/powerpc/include/asm/reg_booke.h |    1 +
>>>> arch/powerpc/kernel/asm-offsets.c    |    6 +++
>>>> arch/powerpc/kvm/booke.c             |   72 
>>>> +++++++++++++++++++++++++++++++++-
>>>> arch/powerpc/kvm/booke.h             |   18 ++-------
>>>> arch/powerpc/kvm/booke_interrupts.S  |   40 +++++++++++++++++++
>>>> arch/powerpc/kvm/e500.c              |   19 ++++++++-
>>>> 7 files changed, 145 insertions(+), 17 deletions(-)
>>>> 
>>> 
>>> I think the patch miss the bit to handle the case that
>>> if guest clear the MSR_SPE.
>> 
>> Right. On set_msr the shadow_msr should get MSR_SPE removed. 
>> Thanks for the catch!
>> 
> 
> BTW,
> looks like guest trap on MSR[SPE] in para virt mode for now, is it?
> If we don't want to trap on that, then shadow_msr doesn't work here.
> That's the intend to use msr_block..

I see. I still like it better when we explicitly set the MSR value that's used 
while running the guest. Makes it harder for things to slip through. Also, so 
far paravirt is disabled for BookE.

So what happens is that since MSR_SPE is disabled, we get a 
BOOKE_INTERRUPT_SPE_UNAVAIL. At that point, we need to check if it's enabled 
inside the guest already or if we merely need to activate the flag. That's what 
the patch does. We'd have to do the exact same when using msr_block, no? The 
only difference is that we'd set msr_block instead of shadow_msr when we are 
actually able to use the SPE inside the guest.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to