[PATCH 2/2] KVM: PPC: Book3E: Emulate MCSRR0/1 SPR and rfmci instruction
Scott Wood
scottwood at freescale.com
Wed Jul 10 04:29:22 EST 2013
On 07/09/2013 12:46:32 PM, Alexander Graf wrote:
> On 07/09/2013 07:16 PM, Scott Wood wrote:
>> On 07/08/2013 01:45:58 PM, Alexander Graf wrote:
>>>
>>> On 03.07.2013, at 15:30, Mihai Caraman wrote:
>>>
>>> > Some guests are making use of return from machine check
>>> instruction
>>> > to do crazy things even though the 64-bit kernel doesn't handle
>>> yet
>>> > this interrupt. Emulate MCSRR0/1 SPR and rfmci instruction
>>> accordingly.
>>> >
>>> > Signed-off-by: Mihai Caraman <mihai.caraman at freescale.com>
>>> > ---
>>> > arch/powerpc/include/asm/kvm_host.h | 1 +
>>> > arch/powerpc/kvm/booke_emulate.c | 25
>>> +++++++++++++++++++++++++
>>> > arch/powerpc/kvm/timing.c | 1 +
>>> > 3 files changed, 27 insertions(+), 0 deletions(-)
>>> >
>>> > diff --git a/arch/powerpc/include/asm/kvm_host.h
>>> b/arch/powerpc/include/asm/kvm_host.h
>>> > index af326cd..0466789 100644
>>> > --- a/arch/powerpc/include/asm/kvm_host.h
>>> > +++ b/arch/powerpc/include/asm/kvm_host.h
>>> > @@ -148,6 +148,7 @@ enum kvm_exit_types {
>>> > EMULATED_TLBWE_EXITS,
>>> > EMULATED_RFI_EXITS,
>>> > EMULATED_RFCI_EXITS,
>>> > + EMULATED_RFMCI_EXITS,
>>>
>>> I would quite frankly prefer to see us abandon the whole exit
>>> timing framework in the kernel and instead use trace points. Then
>>> we don't have to maintain all of this randomly exercised code.
>>
>> Would this map well to tracepoints? We're not trying to track
>> discrete events, so much as accumulated time spent in different
>> areas.
>
> I think so. We'd just have to emit tracepoints as soon as we enter
> handle_exit and in prepare_to_enter. Then a user space program should
> have everything it needs to create statistics out of that. It would
> certainly simplify the entry/exit path.
I was hoping that wasn't going to be your answer. :-)
Such a change would introduce a new dependency, more complexity, and
the possibility for bad totals to result from a ring buffer filling
faster than userspace can drain it.
I also don't see how it would simplify entry/exit, since we'd still
need to take timestamps in the same places, in order to record a final
event that says how long a particular event took.
-Scott
More information about the Linuxppc-dev
mailing list