From: Mihai Caraman <mihai.caraman@freescale.com> To: <kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>, <linuxppc-dev@lists.ozlabs.org>, <qemu-ppc@nongnu.org> Cc: Mihai Caraman <mihai.caraman@freescale.com> Subject: [RFC PATCH 04/17] KVM: PPC64: booke: Add guest computation mode for irq delivery Date: Mon, 25 Jun 2012 15:26:22 +0300 [thread overview] Message-ID: <1340627195-11544-5-git-send-email-mihai.caraman@freescale.com> (raw) In-Reply-To: <1340627195-11544-1-git-send-email-mihai.caraman@freescale.com> When delivering guest IRQs, update MSR computaion mode according to guest interrupt computation mode found in EPCR. Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com> --- arch/powerpc/kvm/booke.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index d15c4b5..93b48e0 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c @@ -287,6 +287,7 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, bool crit; bool keep_irq = false; enum int_class int_class; + ulong msr_cm = 0; /* Truncate crit indicators in 32 bit mode */ if (!(vcpu->arch.shared->msr & MSR_SF)) { @@ -299,6 +300,10 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, /* ... and we're in supervisor mode */ crit = crit && !(vcpu->arch.shared->msr & MSR_PR); +#ifdef CONFIG_64BIT + msr_cm = vcpu->arch.epcr & SPRN_EPCR_ICM ? MSR_CM : 0; +#endif + if (priority == BOOKE_IRQPRIO_EXTERNAL_LEVEL) { priority = BOOKE_IRQPRIO_EXTERNAL; keep_irq = true; @@ -381,7 +386,8 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, set_guest_esr(vcpu, vcpu->arch.queued_esr); if (update_dear == true) set_guest_dear(vcpu, vcpu->arch.queued_dear); - kvmppc_set_msr(vcpu, vcpu->arch.shared->msr & msr_mask); + kvmppc_set_msr(vcpu, (vcpu->arch.shared->msr & msr_mask) + | msr_cm); if (!keep_irq) clear_bit(priority, &vcpu->arch.pending_exceptions); -- 1.7.4.1
WARNING: multiple messages have this Message-ID (diff)
From: Mihai Caraman <mihai.caraman@freescale.com> To: kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, qemu-ppc@nongnu.org Cc: Mihai Caraman <mihai.caraman@freescale.com> Subject: [RFC PATCH 04/17] KVM: PPC64: booke: Add guest computation mode for irq delivery Date: Mon, 25 Jun 2012 12:26:22 +0000 [thread overview] Message-ID: <1340627195-11544-5-git-send-email-mihai.caraman@freescale.com> (raw) In-Reply-To: <1340627195-11544-1-git-send-email-mihai.caraman@freescale.com> When delivering guest IRQs, update MSR computaion mode according to guest interrupt computation mode found in EPCR. Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com> --- arch/powerpc/kvm/booke.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index d15c4b5..93b48e0 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c @@ -287,6 +287,7 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, bool crit; bool keep_irq = false; enum int_class int_class; + ulong msr_cm = 0; /* Truncate crit indicators in 32 bit mode */ if (!(vcpu->arch.shared->msr & MSR_SF)) { @@ -299,6 +300,10 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, /* ... and we're in supervisor mode */ crit = crit && !(vcpu->arch.shared->msr & MSR_PR); +#ifdef CONFIG_64BIT + msr_cm = vcpu->arch.epcr & SPRN_EPCR_ICM ? MSR_CM : 0; +#endif + if (priority = BOOKE_IRQPRIO_EXTERNAL_LEVEL) { priority = BOOKE_IRQPRIO_EXTERNAL; keep_irq = true; @@ -381,7 +386,8 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, set_guest_esr(vcpu, vcpu->arch.queued_esr); if (update_dear = true) set_guest_dear(vcpu, vcpu->arch.queued_dear); - kvmppc_set_msr(vcpu, vcpu->arch.shared->msr & msr_mask); + kvmppc_set_msr(vcpu, (vcpu->arch.shared->msr & msr_mask) + | msr_cm); if (!keep_irq) clear_bit(priority, &vcpu->arch.pending_exceptions); -- 1.7.4.1
next prev parent reply other threads:[~2012-06-25 12:26 UTC|newest] Thread overview: 203+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-06-25 12:26 [RFC PATCH 00/17] KVM: PPC: 64-bit Book3E support Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-25 12:26 ` [RFC PATCH 01/17] KVM: PPC64: booke: Set interrupt computation mode for 64-bit host Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 13:22 ` Alexander Graf 2012-07-04 13:22 ` Alexander Graf 2012-07-04 13:22 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 02/17] KVM: PPC64: booke: Add EPCR support in mtspr/mfspr emulation Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 13:21 ` Alexander Graf 2012-07-04 13:21 ` Alexander Graf 2012-07-04 13:21 ` Alexander Graf 2012-07-04 14:14 ` Caraman Mihai Claudiu-B02008 2012-07-04 14:14 ` Caraman Mihai Claudiu-B02008 2012-07-04 14:14 ` Caraman Mihai Claudiu-B02008 2012-07-04 14:53 ` Alexander Graf 2012-07-04 14:53 ` Alexander Graf 2012-07-04 14:53 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 03/17] KVM: PPC64: booke: Add EPCR support in sregs Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-25 12:59 ` Avi Kivity 2012-06-25 12:59 ` Avi Kivity 2012-06-25 12:59 ` Avi Kivity 2012-06-25 13:24 ` Caraman Mihai Claudiu-B02008 2012-06-25 13:24 ` Caraman Mihai Claudiu-B02008 2012-06-25 13:36 ` Avi Kivity 2012-06-25 13:36 ` Avi Kivity 2012-06-25 13:36 ` Avi Kivity 2012-06-26 22:34 ` Scott Wood 2012-06-26 22:34 ` Scott Wood 2012-06-26 22:34 ` Scott Wood 2012-06-27 11:41 ` Caraman Mihai Claudiu-B02008 2012-06-27 11:41 ` Caraman Mihai Claudiu-B02008 2012-06-27 11:41 ` Caraman Mihai Claudiu-B02008 2012-06-27 15:23 ` Scott Wood 2012-06-27 15:23 ` Scott Wood 2012-07-04 13:33 ` [Qemu-ppc] " Alexander Graf 2012-07-04 13:33 ` Alexander Graf 2012-07-04 13:33 ` Alexander Graf 2012-07-05 11:49 ` Caraman Mihai Claudiu-B02008 2012-07-05 11:49 ` Caraman Mihai Claudiu-B02008 2012-07-05 11:49 ` Caraman Mihai Claudiu-B02008 2012-07-05 12:12 ` Alexander Graf 2012-07-05 12:12 ` Alexander Graf 2012-07-05 12:12 ` Alexander Graf 2012-07-05 12:54 ` Caraman Mihai Claudiu-B02008 2012-07-05 12:54 ` Caraman Mihai Claudiu-B02008 2012-07-05 12:54 ` Caraman Mihai Claudiu-B02008 2012-07-11 18:07 ` Alexander Graf 2012-07-11 18:07 ` Alexander Graf 2012-07-11 18:07 ` Alexander Graf 2012-06-25 12:26 ` Mihai Caraman [this message] 2012-06-25 12:26 ` [RFC PATCH 04/17] KVM: PPC64: booke: Add guest computation mode for irq delivery Mihai Caraman 2012-07-04 13:40 ` [Qemu-ppc] " Alexander Graf 2012-07-04 13:40 ` Alexander Graf 2012-07-04 13:40 ` Alexander Graf 2012-07-05 9:28 ` Caraman Mihai Claudiu-B02008 2012-07-05 9:28 ` Caraman Mihai Claudiu-B02008 2012-07-05 9:28 ` Caraman Mihai Claudiu-B02008 2012-07-05 23:51 ` Scott Wood 2012-07-05 23:51 ` Scott Wood 2012-07-05 23:51 ` Scott Wood 2012-07-06 7:03 ` Alexander Graf 2012-07-06 7:03 ` Alexander Graf 2012-07-06 7:03 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 05/17] KVM: PPC: booke: Extend MAS2 EPN mask for 64-bit Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 13:49 ` [Qemu-ppc] " Alexander Graf 2012-07-04 13:49 ` Alexander Graf 2012-07-04 13:49 ` Alexander Graf 2012-07-05 11:14 ` Caraman Mihai Claudiu-B02008 2012-07-05 11:14 ` Caraman Mihai Claudiu-B02008 2012-07-05 11:14 ` Caraman Mihai Claudiu-B02008 2012-10-08 10:10 ` Alexander Graf 2012-10-08 10:10 ` Alexander Graf 2012-10-08 10:10 ` Alexander Graf 2012-10-08 13:06 ` Caraman Mihai Claudiu-B02008 2012-10-08 13:06 ` Caraman Mihai Claudiu-B02008 2012-10-08 13:06 ` Caraman Mihai Claudiu-B02008 2012-10-08 13:10 ` Alexander Graf 2012-10-08 13:10 ` Alexander Graf 2012-10-08 13:10 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 06/17] KVM: PPC: e500: Add emulation helper for getting instruction ea Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 13:56 ` Alexander Graf 2012-07-04 13:56 ` Alexander Graf 2012-07-04 13:56 ` Alexander Graf 2012-07-05 11:39 ` Caraman Mihai Claudiu-B02008 2012-07-05 11:39 ` Caraman Mihai Claudiu-B02008 2012-07-05 11:39 ` Caraman Mihai Claudiu-B02008 2012-07-11 17:53 ` Alexander Graf 2012-07-11 17:53 ` Alexander Graf 2012-07-11 17:53 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 07/17] KVM: PPC: e500: Mask ea's high 32-bits in 32/64 instr emulation Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 14:00 ` [Qemu-ppc] " Alexander Graf 2012-07-04 14:00 ` Alexander Graf 2012-07-04 14:00 ` Alexander Graf 2012-07-04 14:05 ` Alexander Graf 2012-07-04 14:05 ` Alexander Graf 2012-07-04 14:05 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 08/17] KVM: PPC: e500mc: Fix tlbilx emulation for 64-bit guests Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-06 14:54 ` Alexander Graf 2012-07-06 14:54 ` Alexander Graf 2012-07-06 14:54 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 09/17] KVM: PPC64: booke: Hard disable interrupts when entering guest Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 14:14 ` [Qemu-ppc] " Alexander Graf 2012-07-04 14:14 ` Alexander Graf 2012-07-04 14:14 ` Alexander Graf 2012-07-04 22:21 ` Benjamin Herrenschmidt 2012-07-04 22:21 ` Benjamin Herrenschmidt 2012-07-06 23:03 ` Caraman Mihai Claudiu-B02008 2012-07-06 23:03 ` Caraman Mihai Claudiu-B02008 2012-07-06 23:03 ` Caraman Mihai Claudiu-B02008 2012-06-25 12:26 ` [RFC PATCH 10/17] PowerPC: booke64: Refactor exception prolog for save/restore regs Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-26 22:12 ` Benjamin Herrenschmidt 2012-06-26 22:12 ` Benjamin Herrenschmidt 2012-06-26 22:12 ` Benjamin Herrenschmidt 2012-06-27 11:49 ` Caraman Mihai Claudiu-B02008 2012-06-27 11:49 ` Caraman Mihai Claudiu-B02008 2012-06-27 11:49 ` Caraman Mihai Claudiu-B02008 2012-06-25 12:26 ` [RFC PATCH 11/17] PowerPC: booke64: Fix machine check handler to use the right prolog Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-26 22:13 ` Benjamin Herrenschmidt 2012-06-26 22:13 ` Benjamin Herrenschmidt 2012-06-26 22:13 ` Benjamin Herrenschmidt 2012-06-25 12:26 ` [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM kernel hooks Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 14:29 ` [Qemu-ppc] " Alexander Graf 2012-07-04 14:29 ` Alexander Graf 2012-07-04 14:29 ` Alexander Graf 2012-07-04 15:27 ` Caraman Mihai Claudiu-B02008 2012-07-04 15:27 ` Caraman Mihai Claudiu-B02008 2012-07-04 15:27 ` Caraman Mihai Claudiu-B02008 2012-07-04 15:45 ` Alexander Graf 2012-07-04 15:45 ` Alexander Graf 2012-07-04 15:45 ` Alexander Graf 2012-07-04 18:15 ` Caraman Mihai Claudiu-B02008 2012-07-04 18:15 ` Caraman Mihai Claudiu-B02008 2012-07-04 18:15 ` Caraman Mihai Claudiu-B02008 2012-07-06 0:19 ` Scott Wood 2012-07-06 0:19 ` Scott Wood 2012-07-06 0:19 ` Scott Wood 2012-07-04 22:25 ` Benjamin Herrenschmidt 2012-07-04 22:25 ` Benjamin Herrenschmidt 2012-07-04 22:25 ` Benjamin Herrenschmidt 2012-07-06 22:33 ` Caraman Mihai Claudiu-B02008 2012-07-06 22:33 ` Caraman Mihai Claudiu-B02008 2012-07-06 22:33 ` Caraman Mihai Claudiu-B02008 2012-07-06 23:11 ` Alexander Graf 2012-07-06 23:11 ` Alexander Graf 2012-07-06 23:11 ` Alexander Graf 2012-07-07 8:39 ` Caraman Mihai Claudiu-B02008 2012-07-07 8:39 ` Caraman Mihai Claudiu-B02008 2012-07-07 8:39 ` Caraman Mihai Claudiu-B02008 2012-07-11 22:25 ` Alexander Graf 2012-07-11 22:25 ` Alexander Graf 2012-07-11 22:25 ` Alexander Graf 2012-07-11 22:28 ` Benjamin Herrenschmidt 2012-07-11 22:28 ` Benjamin Herrenschmidt 2012-07-11 22:28 ` Benjamin Herrenschmidt 2012-07-11 22:35 ` Alexander Graf 2012-07-11 22:35 ` Alexander Graf 2012-07-11 22:43 ` Benjamin Herrenschmidt 2012-07-11 22:43 ` Benjamin Herrenschmidt 2012-07-11 22:43 ` Benjamin Herrenschmidt 2012-07-11 22:51 ` Alexander Graf 2012-07-11 22:51 ` Alexander Graf 2012-07-11 22:51 ` Alexander Graf 2012-06-25 12:26 ` [RFC PATCH 13/17] PowerPC: booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-26 22:16 ` Benjamin Herrenschmidt 2012-06-26 22:16 ` Benjamin Herrenschmidt 2012-06-26 22:16 ` Benjamin Herrenschmidt 2012-07-05 15:51 ` Caraman Mihai Claudiu-B02008 2012-07-05 15:51 ` Caraman Mihai Claudiu-B02008 2012-07-05 15:51 ` Caraman Mihai Claudiu-B02008 2012-06-26 22:24 ` Scott Wood 2012-06-26 22:24 ` Scott Wood 2012-06-26 22:24 ` Scott Wood 2012-06-25 12:26 ` [RFC PATCH 14/17] KVM: PPC32: bookehv: Remove GET_VCPU macro from exception handler Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-25 12:26 ` [RFC PATCH 15/17] KVM: PPC64: bookehv: Add support for interrupt handling Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-07-04 15:13 ` [Qemu-ppc] " Alexander Graf 2012-07-04 15:13 ` Alexander Graf 2012-07-04 15:13 ` Alexander Graf 2012-07-04 15:37 ` Caraman Mihai Claudiu-B02008 2012-07-04 15:37 ` Caraman Mihai Claudiu-B02008 2012-07-04 15:37 ` Caraman Mihai Claudiu-B02008 2012-07-04 15:46 ` Alexander Graf 2012-07-04 15:46 ` Alexander Graf 2012-07-04 15:46 ` Alexander Graf 2012-07-04 18:21 ` Caraman Mihai Claudiu-B02008 2012-07-04 18:21 ` Caraman Mihai Claudiu-B02008 2012-07-04 18:21 ` Caraman Mihai Claudiu-B02008 2012-06-25 12:26 ` [RFC PATCH 16/17] KVM: PPC: e500: Silence bogus GCC warning in tlb code Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman 2012-06-25 12:26 ` [RFC PATCH 17/17] KVM: PPC: booke: Fix get_tb() compile error on 64-bit Mihai Caraman 2012-06-25 12:26 ` Mihai Caraman
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=1340627195-11544-5-git-send-email-mihai.caraman@freescale.com \ --to=mihai.caraman@freescale.com \ --cc=kvm-ppc@vger.kernel.org \ --cc=kvm@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=qemu-ppc@nongnu.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.