> -----Original Message----- > From: kvm-ppc-owner@xxxxxxxxxxxxxxx [mailto:kvm-ppc- > owner@xxxxxxxxxxxxxxx] On Behalf Of Alexander Graf > Sent: Wednesday, July 04, 2012 6:14 PM > To: Caraman Mihai Claudiu-B02008 > Cc: kvm-ppc@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linuxppc- > dev@xxxxxxxxxxxxxxxx; qemu-ppc@xxxxxxxxxx > Subject: Re: [Qemu-ppc] [RFC PATCH 15/17] KVM: PPC64: bookehv: Add > support for interrupt handling > > > On 25.06.2012, at 14:26, Mihai Caraman wrote: > > > Add bookehv interrupt handling support for 64-bit hosts. Change common > stack > > layout to refer PPC_LR_STKOFF kernel constant. Dispatch the 64-bit > execution > > flow to the existing kvm_handler_common asm macro. Update input > register > > values documentation. > > Only the bolted version of TLB miss exception handlers is supported > now. > > > > Signed-off-by: Mihai Caraman <mihai.caraman@xxxxxxxxxxxxx> > > --- > > arch/powerpc/include/asm/kvm_booke_hv_asm.h | 12 +++- > > arch/powerpc/kvm/bookehv_interrupts.S | 120 > +++++++++++++++++++++++++-- > > 2 files changed, 122 insertions(+), 10 deletions(-) > > > > diff --git a/arch/powerpc/include/asm/kvm_booke_hv_asm.h > b/arch/powerpc/include/asm/kvm_booke_hv_asm.h > > index 30a600f..8be6f87 100644 > > --- a/arch/powerpc/include/asm/kvm_booke_hv_asm.h > > +++ b/arch/powerpc/include/asm/kvm_booke_hv_asm.h > > @@ -1,5 +1,5 @@ > > /* > > - * Copyright 2010-2011 Freescale Semiconductor, Inc. > > + * Copyright 2010-2012 Freescale Semiconductor, Inc. > > * > > * This program is free software; you can redistribute it and/or modify > > * it under the terms of the GNU General Public License, version 2, as > > @@ -17,6 +17,7 @@ > > * there are no exceptions for which we fall through directly to > > * the normal host handler. > > * > > + * 32-bit host > > * Expected inputs (normal exceptions): > > * SCRATCH0 = saved r10 > > * r10 = thread struct > > @@ -33,6 +34,15 @@ > > * *(r8 + GPR9) = saved r9 > > * *(r8 + GPR10) = saved r10 (r10 not yet clobbered) > > * *(r8 + GPR11) = saved r11 > > + * > > + * 64-bit host > > + * Expected inputs (exception types GEN/DBG/CRIT/MC): > > + * r13 = PACA_POINTER > > + * r10 = saved CR > > + * SPRN_SPRG_##type##_SCRATCH = saved r13 > > + * *(r13 + PACA_EX##type + EX_R10) = saved r10 > > + * *(r13 + PACA_EX##type + EX_R11) = saved r11 > > + * Only the bolted version of TLB miss exception handlers is supported > now. > > */ > > .macro DO_KVM intno srr1 > > #ifdef CONFIG_KVM_BOOKE_HV > > diff --git a/arch/powerpc/kvm/bookehv_interrupts.S > b/arch/powerpc/kvm/bookehv_interrupts.S > > index dff8ed4..04097de 100644 > > --- a/arch/powerpc/kvm/bookehv_interrupts.S > > +++ b/arch/powerpc/kvm/bookehv_interrupts.S > > @@ -12,10 +12,11 @@ > > * along with this program; if not, write to the Free Software > > * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, > USA. > > * > > - * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. > > + * Copyright (C) 2010-2012 Freescale Semiconductor, Inc. > > * > > * Author: Varun Sethi <varun.sethi@xxxxxxxxxxxxx> > > * Author: Scott Wood <scotwood@xxxxxxxxxxxxx> > > + * Author: Mihai Caraman <mihai.caraman@xxxxxxxxxxxxx> > > * > > * This file is derived from arch/powerpc/kvm/booke_interrupts.S > > */ > > @@ -30,7 +31,11 @@ > > #include <asm/bitsperlong.h> > > #include <asm/thread_info.h> > > > > +#ifdef CONFIG_64BIT > > +#include <asm/exception-64e.h> > > +#else > > #include "../kernel/head_booke.h" /* for THREAD_NORMSAVE() */ > > +#endif > > > > > > +#ifdef CONFIG_64BIT > > +/* > > + * For input register values, see > arch/powerpc/include/asm/kvm_booke_hv_asm.h > > + */ > > +.macro kvm_handler intno scratch, paca_ex, ex_r10, ex_r11, srr0, srr1, > flags > > + _GLOBAL(kvmppc_handler_\intno\()_\srr1) > > Is this code so vastly different from the 32bit variant that they can't > be the same with a few simple ifdef's here and there? As you can see from input register values things are quite different. I strived to keep the code common, the only divergence is in the kvm_handler definitions. -Mike -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html