public inbox for kvm-ppc@vger.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: kvm-ppc@vger.kernel.org
Cc: "kvm@vger.kernel.org mailing list" <kvm@vger.kernel.org>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Gleb Natapov <gleb@redhat.com>, Paul Mackerras <paulus@samba.org>
Subject: [PATCH 40/42] KVM: PPC: Book3S HV: Improve real-mode handling of external interrupts
Date: Fri, 26 Apr 2013 18:30:35 +0000	[thread overview]
Message-ID: <1367001037-10394-62-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1367001037-10394-1-git-send-email-agraf@suse.de>

From: Paul Mackerras <paulus@samba.org>

This streamlines our handling of external interrupts that come in
while we're in the guest.  First, when waking up a hardware thread
that was napping, we split off the "napping due to H_CEDE" case
earlier, and use the code that handles an external interrupt (0x500)
in the guest to handle that too.  Secondly, the code that handles
those external interrupts now checks if any other thread is exiting
to the host before bouncing an external interrupt to the guest, and
also checks that there is actually an external interrupt pending for
the guest before setting the LPCR MER bit (mediated external request).

This also makes sure that we clear the "ceded" flag when we handle a
wakeup from cede in real mode, and fixes a potential infinite loop
in kvmppc_run_vcpu() which can occur if we ever end up with the ceded
flag set but MSR[EE] off.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/asm/reg.h          |    1 +
 arch/powerpc/kvm/book3s_hv.c            |    5 +-
 arch/powerpc/kvm/book3s_hv_rmhandlers.S |  138 +++++++++++++++++--------------
 3 files changed, 80 insertions(+), 64 deletions(-)

diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index c9c67fc..7993224 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -290,6 +290,7 @@
 #define     LPCR_PECE1	0x00002000	/* decrementer can cause exit */
 #define     LPCR_PECE2	0x00001000	/* machine check etc can cause exit */
 #define   LPCR_MER	0x00000800	/* Mediated External Exception */
+#define   LPCR_MER_SH	11
 #define   LPCR_LPES    0x0000000c
 #define   LPCR_LPES0   0x00000008      /* LPAR Env selector 0 */
 #define   LPCR_LPES1   0x00000004      /* LPAR Env selector 1 */
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 1619191..178521e 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -1384,9 +1384,12 @@ static int kvmppc_run_vcpu(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
 			break;
 		vc->runner = vcpu;
 		n_ceded = 0;
-		list_for_each_entry(v, &vc->runnable_threads, arch.run_list)
+		list_for_each_entry(v, &vc->runnable_threads, arch.run_list) {
 			if (!v->arch.pending_exceptions)
 				n_ceded += v->arch.ceded;
+			else
+				v->arch.ceded = 0;
+		}
 		if (n_ceded = vc->n_runnable)
 			kvmppc_vcore_blocked(vc);
 		else
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index fd3b72d..b02f91e 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -97,50 +97,51 @@ kvm_start_guest:
 	li	r0,1
 	stb	r0,PACA_NAPSTATELOST(r13)
 
-	/* get vcpu pointer, NULL if we have no vcpu to run */
-	ld	r4,HSTATE_KVM_VCPU(r13)
-	cmpdi	cr1,r4,0
+	/* were we napping due to cede? */
+	lbz	r0,HSTATE_NAPPING(r13)
+	cmpwi	r0,0
+	bne	kvm_end_cede
+
+	/*
+	 * We weren't napping due to cede, so this must be a secondary
+	 * thread being woken up to run a guest, or being woken up due
+	 * to a stray IPI.  (Or due to some machine check or hypervisor
+	 * maintenance interrupt while the core is in KVM.)
+	 */
 
 	/* Check the wake reason in SRR1 to see why we got here */
 	mfspr	r3,SPRN_SRR1
 	rlwinm	r3,r3,44-31,0x7		/* extract wake reason field */
 	cmpwi	r3,4			/* was it an external interrupt? */
-	bne	27f
-
-	/*
-	 * External interrupt - for now assume it is an IPI, since we
-	 * should never get any other interrupts sent to offline threads.
-	 * Only do this for secondary threads.
-	 */
-	beq	cr1,25f
-	lwz	r3,VCPU_PTID(r4)
-	cmpwi	r3,0
-	beq	27f
-25:	ld	r5,HSTATE_XICS_PHYS(r13)
-	li	r0,0xff
-	li	r6,XICS_MFRR
-	li	r7,XICS_XIRR
+	bne	27f			/* if not */
+	ld	r5,HSTATE_XICS_PHYS(r13)
+	li	r7,XICS_XIRR		/* if it was an external interrupt, */
 	lwzcix	r8,r5,r7		/* get and ack the interrupt */
 	sync
 	clrldi.	r9,r8,40		/* get interrupt source ID. */
-	beq	27f			/* none there? */
-	cmpwi	r9,XICS_IPI
-	bne	26f
+	beq	28f			/* none there? */
+	cmpwi	r9,XICS_IPI		/* was it an IPI? */
+	bne	29f
+	li	r0,0xff
+	li	r6,XICS_MFRR
 	stbcix	r0,r5,r6		/* clear IPI */
-26:	stwcix	r8,r5,r7		/* EOI the interrupt */
+	stwcix	r8,r5,r7		/* EOI the interrupt */
+	sync				/* order loading of vcpu after that */
 
-27:	/* XXX should handle hypervisor maintenance interrupts etc. here */
-
-	/* reload vcpu pointer after clearing the IPI */
+	/* get vcpu pointer, NULL if we have no vcpu to run */
 	ld	r4,HSTATE_KVM_VCPU(r13)
 	cmpdi	r4,0
 	/* if we have no vcpu to run, go back to sleep */
 	beq	kvm_no_guest
+	b	kvmppc_hv_entry
 
-	/* were we napping due to cede? */
-	lbz	r0,HSTATE_NAPPING(r13)
-	cmpwi	r0,0
-	bne	kvm_end_cede
+27:	/* XXX should handle hypervisor maintenance interrupts etc. here */
+	b	kvm_no_guest
+28:	/* SRR1 said external but ICP said nope?? */
+	b	kvm_no_guest
+29:	/* External non-IPI interrupt to offline secondary thread? help?? */
+	stw	r8,HSTATE_SAVED_XIRR(r13)
+	b	kvm_no_guest
 
 .global kvmppc_hv_entry
 kvmppc_hv_entry:
@@ -483,20 +484,20 @@ toc_tlbie_lock:
 	mtctr	r6
 	mtxer	r7
 
+	ld	r10, VCPU_PC(r4)
+	ld	r11, VCPU_MSR(r4)
 kvmppc_cede_reentry:		/* r4 = vcpu, r13 = paca */
 	ld	r6, VCPU_SRR0(r4)
 	ld	r7, VCPU_SRR1(r4)
-	ld	r10, VCPU_PC(r4)
-	ld	r11, VCPU_MSR(r4)	/* r11 = vcpu->arch.msr & ~MSR_HV */
 
+	/* r11 = vcpu->arch.msr & ~MSR_HV */
 	rldicl	r11, r11, 63 - MSR_HV_LG, 1
 	rotldi	r11, r11, 1 + MSR_HV_LG
 	ori	r11, r11, MSR_ME
 
 	/* Check if we can deliver an external or decrementer interrupt now */
 	ld	r0,VCPU_PENDING_EXC(r4)
-	li	r8,(1 << BOOK3S_IRQPRIO_EXTERNAL)
-	oris	r8,r8,(1 << BOOK3S_IRQPRIO_EXTERNAL_LEVEL)@h
+	lis	r8,(1 << BOOK3S_IRQPRIO_EXTERNAL_LEVEL)@h
 	and	r0,r0,r8
 	cmpdi	cr1,r0,0
 	andi.	r0,r11,MSR_EE
@@ -524,10 +525,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_206)
 	/* Move SRR0 and SRR1 into the respective regs */
 5:	mtspr	SPRN_SRR0, r6
 	mtspr	SPRN_SRR1, r7
-	li	r0,0
-	stb	r0,VCPU_CEDED(r4)	/* cancel cede */
 
 fast_guest_return:
+	li	r0,0
+	stb	r0,VCPU_CEDED(r4)	/* cancel cede */
 	mtspr	SPRN_HSRR0,r10
 	mtspr	SPRN_HSRR1,r11
 
@@ -686,6 +687,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)
 	/* External interrupt, first check for host_ipi. If this is
 	 * set, we know the host wants us out so let's do it now
 	 */
+do_ext_interrupt:
 	lbz	r0, HSTATE_HOST_IPI(r13)
 	cmpwi	r0, 0
 	bne	ext_interrupt_to_host
@@ -698,19 +700,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)
 	lwzcix	r3, r5, r7
 	rlwinm.	r0, r3, 0, 0xffffff
 	sync
-	bne	1f
+	beq	3f		/* if nothing pending in the ICP */
 
-	/* Nothing pending in the ICP, check for mediated interrupts
-	 * and bounce it to the guest
-	 */
-	andi.	r0, r11, MSR_EE
-	beq	ext_interrupt_to_host /* shouldn't happen ?? */
-	mfspr	r5, SPRN_LPCR
-	andi.	r0, r5, LPCR_MER
-	bne	bounce_ext_interrupt
-	b	ext_interrupt_to_host /* shouldn't happen ?? */
-
-1:	/* We found something in the ICP...
+	/* We found something in the ICP...
 	 *
 	 * If it's not an IPI, stash it in the PACA and return to
 	 * the host, we don't (yet) handle directing real external
@@ -735,16 +727,33 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)
 	bne-	1f
 
 	/* Allright, looks like an IPI for the guest, we need to set MER */
-	mfspr	r8,SPRN_LPCR
-	ori	r8,r8,LPCR_MER
-	mtspr	SPRN_LPCR,r8
+3:
+	/* Check if any CPU is heading out to the host, if so head out too */
+	ld	r5, HSTATE_KVM_VCORE(r13)
+	lwz	r0, VCORE_ENTRY_EXIT(r5)
+	cmpwi	r0, 0x100
+	bge	ext_interrupt_to_host
+
+	/* See if there is a pending interrupt for the guest */
+	mfspr	r8, SPRN_LPCR
+	ld	r0, VCPU_PENDING_EXC(r9)
+	/* Insert EXTERNAL_LEVEL bit into LPCR at the MER bit position */
+	rldicl.	r0, r0, 64 - BOOK3S_IRQPRIO_EXTERNAL_LEVEL, 63
+	rldimi	r8, r0, LPCR_MER_SH, 63 - LPCR_MER_SH
+	beq	2f
 
 	/* And if the guest EE is set, we can deliver immediately, else
 	 * we return to the guest with MER set
 	 */
 	andi.	r0, r11, MSR_EE
-	bne	bounce_ext_interrupt
-	mr	r4, r9
+	beq	2f
+	mtspr	SPRN_SRR0, r10
+	mtspr	SPRN_SRR1, r11
+	li	r10, BOOK3S_INTERRUPT_EXTERNAL
+	li	r11, (MSR_ME << 1) | 1	/* synthesize MSR_SF | MSR_ME */
+	rotldi	r11, r11, 63
+2:	mr	r4, r9
+	mtspr	SPRN_LPCR, r8
 	b	fast_guest_return
 
 	/* We raced with the host, we need to resend that IPI, bummer */
@@ -1487,15 +1496,6 @@ ignore_hdec:
 	mr	r4,r9
 	b	fast_guest_return
 
-bounce_ext_interrupt:
-	mr	r4,r9
-	mtspr	SPRN_SRR0,r10
-	mtspr	SPRN_SRR1,r11
-	li	r10,BOOK3S_INTERRUPT_EXTERNAL
-	li	r11,(MSR_ME << 1) | 1	/* synthesize MSR_SF | MSR_ME */
-	rotldi	r11,r11,63
-	b	fast_guest_return
-
 _GLOBAL(kvmppc_h_set_dabr)
 	std	r4,VCPU_DABR(r3)
 	/* Work around P7 bug where DABR can get corrupted on mtspr */
@@ -1601,6 +1601,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)
 	b	.
 
 kvm_end_cede:
+	/* get vcpu pointer */
+	ld	r4, HSTATE_KVM_VCPU(r13)
+
 	/* Woken by external or decrementer interrupt */
 	ld	r1, HSTATE_HOST_R1(r13)
 
@@ -1640,6 +1643,16 @@ kvm_end_cede:
 	li	r0,0
 	stb	r0,HSTATE_NAPPING(r13)
 
+	/* Check the wake reason in SRR1 to see why we got here */
+	mfspr	r3, SPRN_SRR1
+	rlwinm	r3, r3, 44-31, 0x7	/* extract wake reason field */
+	cmpwi	r3, 4			/* was it an external interrupt? */
+	li	r12, BOOK3S_INTERRUPT_EXTERNAL
+	mr	r9, r4
+	ld	r10, VCPU_PC(r9)
+	ld	r11, VCPU_MSR(r9)
+	beq	do_ext_interrupt	/* if so */
+
 	/* see if any other thread is already exiting */
 	lwz	r0,VCORE_ENTRY_EXIT(r5)
 	cmpwi	r0,0x100
@@ -1659,8 +1672,7 @@ kvm_cede_prodded:
 
 	/* we've ceded but we want to give control to the host */
 kvm_cede_exit:
-	li	r3,H_TOO_HARD
-	blr
+	b	hcall_real_fallback
 
 	/* Try to handle a machine check in real mode */
 machine_check_realmode:
-- 
1.6.0.2


  parent reply	other threads:[~2013-04-26 18:30 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-26  8:24 [PATCH 00/20] KVM: PPC: In-kernel MPIC support with irqfd v4 Alexander Graf
2013-04-26  8:24 ` [PATCH 01/20] KVM: Add KVM_IRQCHIP_NUM_PINS in addition to KVM_IOAPIC_NUM_PINS Alexander Graf
2013-04-26  8:24 ` [PATCH 02/20] KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING Alexander Graf
2013-04-26  8:24 ` [PATCH 03/20] KVM: Drop __KVM_HAVE_IOAPIC condition on irq routing Alexander Graf
2013-04-26  8:24 ` [PATCH 04/20] KVM: Remove kvm_get_intr_delivery_bitmask Alexander Graf
2013-04-26  8:24 ` [PATCH 05/20] KVM: Move irq routing to generic code Alexander Graf
2013-04-26  8:24 ` [PATCH 06/20] KVM: Extract generic irqchip logic into irqchip.c Alexander Graf
2013-04-26  8:24 ` [PATCH 07/20] KVM: Move irq routing setup to irqchip.c Alexander Graf
2013-04-26  8:24 ` [PATCH 08/20] KVM: Move irqfd resample cap handling to generic code Alexander Graf
2013-04-26  8:24 ` [PATCH 09/20] kvm: add device control API Alexander Graf
2013-04-26  8:24 ` [PATCH 10/20] kvm/ppc/mpic: import hw/openpic.c from QEMU Alexander Graf
2013-04-26  8:24 ` [PATCH 11/20] kvm/ppc/mpic: remove some obviously unneeded code Alexander Graf
2013-04-26  8:24 ` [PATCH 12/20] kvm/ppc/mpic: adapt to kernel style and environment Alexander Graf
2013-04-26  8:24 ` [PATCH 13/20] kvm/ppc/mpic: in-kernel MPIC emulation Alexander Graf
2013-04-26  8:24 ` [PATCH 14/20] kvm/ppc/mpic: add KVM_CAP_IRQ_MPIC Alexander Graf
2013-04-26  8:24 ` [PATCH 15/20] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC Alexander Graf
2013-04-26  8:24 ` [PATCH 16/20] KVM: PPC: MPIC: Add support for KVM_IRQ_LINE Alexander Graf
2013-04-26  8:24 ` [PATCH 17/20] KVM: PPC: MPIC: Restrict to e500 platforms Alexander Graf
2013-04-26  8:24 ` [PATCH 18/20] KVM: IA64: Carry non-ia64 changes into ia64 Alexander Graf
2013-04-26  8:24 ` [PATCH 19/20] kvm: destroy emulated devices on VM exit Alexander Graf
2013-04-26  8:24 ` [PATCH 20/20] kvm/ppc/mpic: Eliminate mmio_mapped Alexander Graf
2013-04-26 18:29 ` [PATCH 00/20] KVM: PPC: In-kernel MPIC support with irqfd v4 Alexander Graf
2013-04-26 18:29   ` [PATCH 01/20] KVM: Add KVM_IRQCHIP_NUM_PINS in addition to KVM_IOAPIC_NUM_PINS Alexander Graf
2013-04-26 18:29   ` [PATCH 02/20] KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING Alexander Graf
2013-04-26 18:29   ` [PATCH 03/20] KVM: Drop __KVM_HAVE_IOAPIC condition on irq routing Alexander Graf
2013-04-26 18:29   ` [PATCH 04/20] KVM: Remove kvm_get_intr_delivery_bitmask Alexander Graf
2013-04-26 18:29   ` [PATCH 05/20] KVM: Move irq routing to generic code Alexander Graf
2013-04-26 18:29   ` [PATCH 06/20] KVM: Extract generic irqchip logic into irqchip.c Alexander Graf
2013-04-26 18:29   ` [PATCH 07/20] KVM: Move irq routing setup to irqchip.c Alexander Graf
2013-04-26 18:29   ` [PATCH 08/20] KVM: Move irqfd resample cap handling to generic code Alexander Graf
2013-04-26 18:29   ` [PATCH 09/20] kvm: add device control API Alexander Graf
2013-04-26 18:29   ` [PATCH 10/20] kvm/ppc/mpic: import hw/openpic.c from QEMU Alexander Graf
2013-04-26 18:29   ` [PATCH 11/20] kvm/ppc/mpic: remove some obviously unneeded code Alexander Graf
2013-04-26 18:29   ` [PATCH 12/20] kvm/ppc/mpic: adapt to kernel style and environment Alexander Graf
2013-04-26 18:29   ` [PATCH 13/20] kvm/ppc/mpic: in-kernel MPIC emulation Alexander Graf
2013-04-26 18:29   ` [PATCH 14/20] kvm/ppc/mpic: add KVM_CAP_IRQ_MPIC Alexander Graf
2013-04-26 18:29   ` [PATCH 15/20] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC Alexander Graf
2013-04-26 18:29   ` [PATCH 16/20] KVM: PPC: MPIC: Add support for KVM_IRQ_LINE Alexander Graf
2013-04-26 18:29   ` [PATCH 17/20] KVM: PPC: MPIC: Restrict to e500 platforms Alexander Graf
2013-04-26 18:29   ` [PATCH 18/20] KVM: IA64: Carry non-ia64 changes into ia64 Alexander Graf
2013-04-26 18:29   ` [PATCH 19/20] kvm: destroy emulated devices on VM exit Alexander Graf
2013-04-26 18:29   ` [PATCH 20/20] kvm/ppc/mpic: Eliminate mmio_mapped Alexander Graf
2013-04-26 18:29   ` [PULL 00/42] ppc patch queue 2013-04-26 for 3.10 Alexander Graf
2013-04-28 10:05     ` Gleb Natapov
2013-04-26 18:29   ` [PATCH 01/42] KVM: PPC: cache flush for kernel managed pages Alexander Graf
2013-04-26 18:29   ` [PATCH 02/42] KVM: PPC: debug stub interface parameter defined Alexander Graf
2013-04-26 18:29   ` [PATCH 03/42] Rename EMULATE_DO_PAPR to EMULATE_EXIT_USER Alexander Graf
2013-04-26 18:29   ` [PATCH 04/42] KVM: extend EMULATE_EXIT_USER to support different exit reasons Alexander Graf
2013-04-26 18:30   ` [PATCH 05/42] booke: exit to user space if emulator request Alexander Graf
2013-04-26 18:30   ` [PATCH 06/42] KVM: PPC: Book3E: Refactor ONE_REG ioctl implementation Alexander Graf
2013-04-26 18:30   ` [PATCH 07/42] KVM: PPC: e500: Expose MMU registers via ONE_REG Alexander Graf
2013-04-26 18:30   ` [PATCH 08/42] KVM: PPC: e500: Move vcpu's MMU configuration to dedicated functions Alexander Graf
2013-04-26 18:30   ` [PATCH 09/42] KVM: PPC: e500: Add support for TLBnPS registers Alexander Graf
2013-04-26 18:30   ` [PATCH 10/42] KVM: PPC: e500: Add support for EPTCFG register Alexander Graf
2013-04-26 18:30   ` [PATCH 11/42] KVM: PPC: e500: Remove E.PT and E.HV.LRAT categories from VCPUs Alexander Graf
2013-04-26 18:30   ` [PATCH 12/42] KVM: PPC: e500mc: Enable e6500 cores Alexander Graf
2013-04-26 18:30   ` [PATCH 13/42] KVM: PPC: e500: Add e6500 core to Kconfig description Alexander Graf
2013-04-26 18:30   ` [PATCH 14/42] KVM: PPC: Book3S HV: Make HPT reading code notice R/C bit changes Alexander Graf
2013-04-26 18:30   ` [PATCH 15/42] KVM: PPC: Book3S HV: Report VPA and DTL modifications in dirty map Alexander Graf
2013-04-26 18:30   ` [PATCH 16/42] KVM: Add KVM_IRQCHIP_NUM_PINS in addition to KVM_IOAPIC_NUM_PINS Alexander Graf
2013-04-28  5:41     ` Gleb Natapov
2013-04-28  9:46       ` Alexander Graf
2013-04-26 18:30   ` [PATCH 17/42] KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING Alexander Graf
2013-04-26 18:30   ` [PATCH 18/42] KVM: Drop __KVM_HAVE_IOAPIC condition on irq routing Alexander Graf
2013-04-26 18:30   ` [PATCH 19/42] KVM: Remove kvm_get_intr_delivery_bitmask Alexander Graf
2013-04-26 18:30   ` [PATCH 20/42] KVM: Move irq routing to generic code Alexander Graf
2013-04-26 18:30   ` [PATCH 21/42] KVM: Extract generic irqchip logic into irqchip.c Alexander Graf
2013-04-26 18:30   ` [PATCH 22/42] KVM: Move irq routing setup to irqchip.c Alexander Graf
2013-04-26 18:30   ` [PATCH 23/42] KVM: Move irqfd resample cap handling to generic code Alexander Graf
2013-04-26 18:30   ` [PATCH 24/42] kvm: add device control API Alexander Graf
2013-04-26 18:30   ` [PATCH 25/42] kvm/ppc/mpic: import hw/openpic.c from QEMU Alexander Graf
2013-04-26 18:30   ` [PATCH 26/42] kvm/ppc/mpic: remove some obviously unneeded code Alexander Graf
2013-04-26 18:30   ` [PATCH 27/42] kvm/ppc/mpic: adapt to kernel style and environment Alexander Graf
2013-04-26 18:30   ` [PATCH 28/42] kvm/ppc/mpic: in-kernel MPIC emulation Alexander Graf
2013-04-26 18:30   ` [PATCH 29/42] kvm/ppc/mpic: add KVM_CAP_IRQ_MPIC Alexander Graf
2013-04-26 18:30   ` [PATCH 30/42] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC Alexander Graf
2013-04-26 18:30   ` [PATCH 31/42] KVM: PPC: MPIC: Add support for KVM_IRQ_LINE Alexander Graf
2013-04-26 18:30   ` [PATCH 32/42] KVM: PPC: MPIC: Restrict to e500 platforms Alexander Graf
2013-04-26 18:30   ` [PATCH 33/42] KVM: IA64: Carry non-ia64 changes into ia64 Alexander Graf
2013-04-26 18:30   ` [PATCH 34/42] kvm: destroy emulated devices on VM exit Alexander Graf
2013-04-28  5:43     ` Gleb Natapov
2013-04-28  9:47       ` Alexander Graf
2013-04-26 18:30   ` [PATCH 35/42] kvm/ppc/mpic: Eliminate mmio_mapped Alexander Graf
2013-04-26 18:30   ` [PATCH 36/42] KVM: PPC: Book3S: Add infrastructure to implement kernel-side RTAS calls Alexander Graf
2013-04-26 18:30   ` [PATCH 37/42] KVM: PPC: Book3S: Add kernel emulation for the XICS interrupt controller Alexander Graf
2013-04-26 18:30   ` [PATCH 38/42] KVM: PPC: Book3S HV: Speed up wakeups of CPUs on HV KVM Alexander Graf
2013-04-26 18:30   ` [PATCH 39/42] KVM: PPC: Book3S HV: Add support for real mode ICP in XICS emulation Alexander Graf
2013-04-26 18:30   ` Alexander Graf [this message]
2013-04-26 18:30   ` [PATCH 41/42] KVM: PPC: Book3S: Add support for ibm,int-on/off RTAS calls Alexander Graf
2013-04-26 18:30   ` [PATCH 42/42] KVM: PPC: Book3S: Facilities to save/restore XICS presentation ctrler state Alexander Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1367001037-10394-62-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=gleb@redhat.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox