All of lore.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>
Subject: [PATCH 31/42] KVM: PPC: MPIC: Add support for KVM_IRQ_LINE
Date: Fri, 26 Apr 2013 20:30:26 +0200	[thread overview]
Message-ID: <1367001037-10394-53-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1367001037-10394-1-git-send-email-agraf@suse.de>

Now that all pieces are in place for reusing generic irq infrastructure,
we can copy x86's implementation of KVM_IRQ_LINE irq injection and simply
reuse it for PPC, as it will work there just as well.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/uapi/asm/kvm.h |    1 +
 arch/powerpc/kvm/powerpc.c          |   13 +++++++++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h
index ca87106..03c7819 100644
--- a/arch/powerpc/include/uapi/asm/kvm.h
+++ b/arch/powerpc/include/uapi/asm/kvm.h
@@ -26,6 +26,7 @@
 #define __KVM_HAVE_SPAPR_TCE
 #define __KVM_HAVE_PPC_SMT
 #define __KVM_HAVE_IRQCHIP
+#define __KVM_HAVE_IRQ_LINE
 
 struct kvm_regs {
 	__u64 pc;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 5d046bb..d8e81e6 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -33,6 +33,7 @@
 #include <asm/cputhreads.h>
 #include <asm/irqflags.h>
 #include "timing.h"
+#include "irq.h"
 #include "../mm/mmu_decl.h"
 
 #define CREATE_TRACE_POINTS
@@ -939,6 +940,18 @@ static int kvm_vm_ioctl_get_pvinfo(struct kvm_ppc_pvinfo *pvinfo)
 	return 0;
 }
 
+int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_event,
+			  bool line_status)
+{
+	if (!irqchip_in_kernel(kvm))
+		return -ENXIO;
+
+	irq_event->status = kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID,
+					irq_event->irq, irq_event->level,
+					line_status);
+	return 0;
+}
+
 long kvm_arch_vm_ioctl(struct file *filp,
                        unsigned int ioctl, unsigned long arg)
 {
-- 
1.6.0.2


WARNING: multiple messages have this Message-ID (diff)
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>
Subject: [PATCH 31/42] KVM: PPC: MPIC: Add support for KVM_IRQ_LINE
Date: Fri, 26 Apr 2013 18:30:26 +0000	[thread overview]
Message-ID: <1367001037-10394-53-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1367001037-10394-1-git-send-email-agraf@suse.de>

Now that all pieces are in place for reusing generic irq infrastructure,
we can copy x86's implementation of KVM_IRQ_LINE irq injection and simply
reuse it for PPC, as it will work there just as well.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/uapi/asm/kvm.h |    1 +
 arch/powerpc/kvm/powerpc.c          |   13 +++++++++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h
index ca87106..03c7819 100644
--- a/arch/powerpc/include/uapi/asm/kvm.h
+++ b/arch/powerpc/include/uapi/asm/kvm.h
@@ -26,6 +26,7 @@
 #define __KVM_HAVE_SPAPR_TCE
 #define __KVM_HAVE_PPC_SMT
 #define __KVM_HAVE_IRQCHIP
+#define __KVM_HAVE_IRQ_LINE
 
 struct kvm_regs {
 	__u64 pc;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 5d046bb..d8e81e6 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -33,6 +33,7 @@
 #include <asm/cputhreads.h>
 #include <asm/irqflags.h>
 #include "timing.h"
+#include "irq.h"
 #include "../mm/mmu_decl.h"
 
 #define CREATE_TRACE_POINTS
@@ -939,6 +940,18 @@ static int kvm_vm_ioctl_get_pvinfo(struct kvm_ppc_pvinfo *pvinfo)
 	return 0;
 }
 
+int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_event,
+			  bool line_status)
+{
+	if (!irqchip_in_kernel(kvm))
+		return -ENXIO;
+
+	irq_event->status = kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID,
+					irq_event->irq, irq_event->level,
+					line_status);
+	return 0;
+}
+
 long kvm_arch_vm_ioctl(struct file *filp,
                        unsigned int ioctl, unsigned long arg)
 {
-- 
1.6.0.2


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

Thread overview: 180+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-26 18:29 [PATCH 00/20] KVM: PPC: In-kernel MPIC support with irqfd v4 Alexander Graf
2013-04-26 18:29 ` 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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 02/20] KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING Alexander Graf
2013-04-26 18:29   ` 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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 04/20] KVM: Remove kvm_get_intr_delivery_bitmask Alexander Graf
2013-04-26 18:29   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 05/20] KVM: Move irq routing to generic code Alexander Graf
2013-04-26 18:29   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 09/20] kvm: add device control API Alexander Graf
2013-04-26 18:29   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 13/20] kvm/ppc/mpic: in-kernel MPIC emulation Alexander Graf
2013-04-26 18:29   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 17/20] KVM: PPC: MPIC: Restrict to e500 platforms Alexander Graf
2013-04-26 18:29   ` 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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 19/20] kvm: destroy emulated devices on VM exit Alexander Graf
2013-04-26 18:29   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 20/20] kvm/ppc/mpic: Eliminate mmio_mapped Alexander Graf
2013-04-26 18:29   ` Alexander Graf
2013-04-26 18:29 ` [PULL 00/42] ppc patch queue 2013-04-26 for 3.10 Alexander Graf
2013-04-26 18:29   ` Alexander Graf
2013-04-28 10:05   ` Gleb Natapov
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   ` Alexander Graf
2013-04-26 18:29 ` [PATCH 02/42] KVM: PPC: debug stub interface parameter defined Alexander Graf
2013-04-26 18:29   ` 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   ` 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:29   ` 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   ` 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   ` 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   ` 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   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 12/42] KVM: PPC: e500mc: Enable e6500 cores Alexander Graf
2013-04-26 18:30   ` 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   ` 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   ` 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   ` 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-26 18:30   ` Alexander Graf
2013-04-28  5:41   ` Gleb Natapov
2013-04-28  5:41     ` Gleb Natapov
2013-04-28  9:46     ` Alexander Graf
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   ` 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   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 19/42] KVM: Remove kvm_get_intr_delivery_bitmask Alexander Graf
2013-04-26 18:30   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 20/42] KVM: Move irq routing to generic code Alexander Graf
2013-04-26 18:30   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 24/42] kvm: add device control API Alexander Graf
2013-04-26 18:30   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 28/42] kvm/ppc/mpic: in-kernel MPIC emulation Alexander Graf
2013-04-26 18:30   ` 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   ` 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   ` Alexander Graf
2013-04-26 18:30 ` Alexander Graf [this message]
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   ` 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   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 34/42] kvm: destroy emulated devices on VM exit Alexander Graf
2013-04-26 18:30   ` Alexander Graf
2013-04-28  5:43   ` Gleb Natapov
2013-04-28  5:43     ` Gleb Natapov
2013-04-28  9:47     ` Alexander Graf
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   ` 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   ` 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   ` 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   ` 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
2013-04-26 18:30 ` [PATCH 40/42] KVM: PPC: Book3S HV: Improve real-mode handling of external interrupts Alexander Graf
2013-04-26 18:30   ` Alexander Graf
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   ` Alexander Graf
2013-04-26 18:30 ` [PATCH 42/42] KVM: PPC: Book3S: Facilities to save/restore XICS presentation ctrler state Alexander Graf
2013-04-26 18:30   ` Alexander Graf
  -- strict thread matches above, loose matches on Subject: below --
2013-04-26  8:24 [PATCH 00/20] KVM: PPC: In-kernel MPIC support with irqfd v4 Alexander Graf
2013-04-26  8:24 ` 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   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 02/20] KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING Alexander Graf
2013-04-26  8:24   ` 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   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 04/20] KVM: Remove kvm_get_intr_delivery_bitmask Alexander Graf
2013-04-26  8:24   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 05/20] KVM: Move irq routing to generic code Alexander Graf
2013-04-26  8:24   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 09/20] kvm: add device control API Alexander Graf
2013-04-26  8:24   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 13/20] kvm/ppc/mpic: in-kernel MPIC emulation Alexander Graf
2013-04-26  8:24   ` 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   ` 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   ` 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   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 17/20] KVM: PPC: MPIC: Restrict to e500 platforms Alexander Graf
2013-04-26  8:24   ` 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   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 19/20] kvm: destroy emulated devices on VM exit Alexander Graf
2013-04-26  8:24   ` Alexander Graf
2013-04-26  8:24 ` [PATCH 20/20] kvm/ppc/mpic: Eliminate mmio_mapped Alexander Graf
2013-04-26  8:24   ` 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-53-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 \
    /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 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.