From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 2/2] KVM: PPC: Book3E: Emulate MCSRR0/1 SPR and rfmci instruction Date: Tue, 9 Jul 2013 13:29:22 -0500 Message-ID: <1373394562.8183.197@snotra> References: <1372858255-19708-1-git-send-email-mihai.caraman@freescale.com> <1372858255-19708-2-git-send-email-mihai.caraman@freescale.com> <1C2B7183-EF0F-4D97-9287-1068C9E97471@suse.de> <1373390162.8183.195@snotra> <51DC4C78.5080808@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; delsp=Yes; format=Flowed Content-Transfer-Encoding: 8BIT Cc: Mihai Caraman , , , To: Alexander Graf Return-path: In-Reply-To: <51DC4C78.5080808@suse.de> (from agraf@suse.de on Tue Jul 9 12:46:32 2013) Content-Disposition: inline Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 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 >>> > --- >>> > 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