[PATCH 2/2] KVM: PPC: Book3S HV: Report VPA and DTL modifications in dirty map

2013-04-18 Thread Paul Mackerras
At present, the KVM_GET_DIRTY_LOG ioctl doesn't report modifications done by the host to the virtual processor areas (VPAs) and dispatch trace logs (DTLs) registered by the guest. This is because those modifications are done either in real mode or in the host kernel context, and in neither case do

[PATCH 1/2] KVM: PPC: Book3S HV: Make HPT reading code notice R/C bit changes

2013-04-18 Thread Paul Mackerras
At present, the code that determines whether a HPT entry has changed, and thus needs to be sent to userspace when it is copying the HPT, doesn't consider a hardware update to the reference and change bits (R and C) in the HPT entries to constitute a change that needs to be sent to userspace. This

[PATCH 0/2] KVM: PPC: Migration bugfixes for HV KVM

2013-04-18 Thread Paul Mackerras
This series of two patches fixes a couple of bugs in live migration under HV-style KVM on PPC. They only touch PPC/HV code and add no new APIs. The patches are against Alex Graf's kvm-ppc-next branch. I would like them to go in for 3.10. Paul. arch/powerpc/include/asm/kvm_book3s.h|3 +

[PATCH] KVM/PPC: emulate ehpriv

2013-04-18 Thread Tiejun Chen
We can provide this emulation to simplify more extension later. Signed-off-by: Tiejun Chen --- arch/powerpc/include/asm/disassemble.h |4 arch/powerpc/kvm/e500_emulate.c| 17 + 2 files changed, 21 insertions(+) diff --git a/arch/powerpc/include/asm/disassemble

Re: [PATCH 15/17] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC

2013-04-18 Thread Scott Wood
On 04/18/2013 08:09:23 PM, Alexander Graf wrote: On 19.04.2013, at 02:50, Scott Wood wrote: > On 04/18/2013 07:15:46 PM, Alexander Graf wrote: >> On 18.04.2013, at 23:39, Scott Wood wrote: >> > On 04/18/2013 09:11:55 AM, Alexander Graf wrote: >> >> +static inline int irqchip_in_kernel(struct kv

Re: [PATCH 15/17] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC

2013-04-18 Thread Alexander Graf
On 19.04.2013, at 02:50, Scott Wood wrote: > On 04/18/2013 07:15:46 PM, Alexander Graf wrote: >> On 18.04.2013, at 23:39, Scott Wood wrote: >> > On 04/18/2013 09:11:55 AM, Alexander Graf wrote: >> >> +static inline int irqchip_in_kernel(struct kvm *kvm) >> >> +{ >> >> + int ret = 0; >> >> + >> >>

Re: [PATCH 15/17] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC

2013-04-18 Thread Scott Wood
On 04/18/2013 07:15:46 PM, Alexander Graf wrote: On 18.04.2013, at 23:39, Scott Wood wrote: > On 04/18/2013 09:11:55 AM, Alexander Graf wrote: >> +static inline int irqchip_in_kernel(struct kvm *kvm) >> +{ >> + int ret = 0; >> + >> +#ifdef CONFIG_KVM_MPIC >> + ret = ret || (kvm->arch.

Re: [PATCH 15/17] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC

2013-04-18 Thread Alexander Graf
On 18.04.2013, at 23:39, Scott Wood wrote: > On 04/18/2013 09:11:55 AM, Alexander Graf wrote: >> Now that all the irq routing and irqfd pieces are generic, we can expose >> real irqchip support to all of KVM's internal helpers. >> This allows us to use irqfd with the in-kernel MPIC. >> Signed-off

Re: [PATCH 15/17] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC

2013-04-18 Thread Scott Wood
On 04/18/2013 09:11:55 AM, Alexander Graf wrote: Now that all the irq routing and irqfd pieces are generic, we can expose real irqchip support to all of KVM's internal helpers. This allows us to use irqfd with the in-kernel MPIC. Signed-off-by: Alexander Graf --- arch/powerpc/include/asm/kv

Re: [PATCH 17/17] KVM: PPC: MPIC: Restrict to e500 platforms

2013-04-18 Thread Alexander Graf
On 18.04.2013, at 16:29, Scott Wood wrote: > On 04/18/2013 09:11:57 AM, Alexander Graf wrote: >> The code as is doesn't make any sense on non-e500 platforms. > > Why? What actually breaks? It broke even compiling, because book3s doesn't provide anything for EPR for example. I fixed up the iss

Re: [PATCH 17/17] KVM: PPC: MPIC: Restrict to e500 platforms

2013-04-18 Thread Scott Wood
On 04/18/2013 09:11:57 AM, Alexander Graf wrote: The code as is doesn't make any sense on non-e500 platforms. Why? What actually breaks? You never answered my earlier question about whether 74xx is supported. MPC86xx is 74xx-derived and has an FSL MPIC. Plus, as pointed out earlier, this

[PATCH 01/17] KVM: Add KVM_IRQCHIP_NUM_PINS in addition to KVM_IOAPIC_NUM_PINS

2013-04-18 Thread Alexander Graf
The concept of routing interrupt lines to an irqchip is nothing that is IOAPIC specific. Every irqchip has a maximum number of pins that can be linked to irq lines. So let's add a new define that allows us to reuse generic code for non-IOAPIC platforms. Signed-off-by: Alexander Graf --- arch/x8

[PATCH 05/17] KVM: Move irq routing to generic code

2013-04-18 Thread Alexander Graf
The IRQ routing set ioctl lives in the hacky device assignment code inside of KVM today. This is definitely the wrong place for it. Move it to the much more natural kvm_main.c. Signed-off-by: Alexander Graf --- virt/kvm/assigned-dev.c | 30 -- virt/kvm/kvm_main.c

[PATCH 06/17] KVM: Extract generic irqchip logic into irqchip.c

2013-04-18 Thread Alexander Graf
The current irq_comm.c file contains pieces of code that are generic across different irqchip implementations, as well as code that is fully IOAPIC specific. Split the generic bits out into irqchip.c. Signed-off-by: Alexander Graf --- arch/x86/kvm/Makefile |2 +- include/trace/events/k

[PATCH 16/17] KVM: PPC: MPIC: Add support for KVM_IRQ_LINE

2013-04-18 Thread Alexander Graf
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 --- arch/powerpc/include/uapi/asm/kvm.h |1 + arch/powerpc/kv

[PATCH 02/17] KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING

2013-04-18 Thread Alexander Graf
Quite a bit of code in KVM has been conditionalized on availability of IOAPIC emulation. However, most of it is generically applicable to platforms that don't have an IOPIC, but a different type of irq chip. Make code that only relies on IRQ routing, not an APIC itself, on CONFIG_HAVE_KVM_IRQ_ROUT

[PATCH 09/17] kvm: add device control API

2013-04-18 Thread Alexander Graf
From: Scott Wood Currently, devices that are emulated inside KVM are configured in a hardcoded manner based on an assumption that any given architecture only has one way to do it. If there's any need to access device state, it is done through inflexible one-purpose-only IOCTLs (e.g. KVM_GET/SET_

[PATCH 08/17] KVM: Move irqfd resample cap handling to generic code

2013-04-18 Thread Alexander Graf
Now that we have most irqfd code completely platform agnostic, let's move irqfd's resample capability return to generic code as well. Signed-off-by: Alexander Graf --- arch/x86/kvm/x86.c |1 - virt/kvm/kvm_main.c |3 +++ 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/arc

[PATCH 00/17] KVM: PPC: In-kernel MPIC support with irqfd

2013-04-18 Thread Alexander Graf
Hi, This patch set contains a fully working implementation of the in-kernel MPIC from Scott with a few fixups and a new version of my irqfd generalization patch set. Major changes to my last irqfd set are: - depend on CONFIG_ defines rather than __KVM defines - fix compile issues - fix the

[PATCH 07/17] KVM: Move irq routing setup to irqchip.c

2013-04-18 Thread Alexander Graf
Setting up IRQ routes is nothing IOAPIC specific. Extract everything that really is generic code into irqchip.c and only leave the ioapic specific bits to irq_comm.c. Signed-off-by: Alexander Graf --- include/linux/kvm_host.h |3 ++ virt/kvm/irq_comm.c | 76 ++-

[PATCH 04/17] KVM: Remove kvm_get_intr_delivery_bitmask

2013-04-18 Thread Alexander Graf
The prototype has been stale for a while, I can't spot any real function define behind it. Let's just remove it. Signed-off-by: Alexander Graf --- include/linux/kvm_host.h |5 - 1 files changed, 0 insertions(+), 5 deletions(-) diff --git a/include/linux/kvm_host.h b/include/linux/kvm_ho

[PATCH 17/17] KVM: PPC: MPIC: Restrict to e500 platforms

2013-04-18 Thread Alexander Graf
The code as is doesn't make any sense on non-e500 platforms. Restrict it there, so that people don't get wrong ideas on what would actually work. This patch should get reverted as soon as it's possible to either run e500 guests on non-e500 hosts or the MPIC emulation gains support for non-e500 mod

[PATCH 14/17] kvm/ppc/mpic: add KVM_CAP_IRQ_MPIC

2013-04-18 Thread Alexander Graf
From: Scott Wood Enabling this capability connects the vcpu to the designated in-kernel MPIC. Using explicit connections between vcpus and irqchips allows for flexibility, but the main benefit at the moment is that it simplifies the code -- KVM doesn't need vm-global state to remember which MPIC

[PATCH 10/17] kvm/ppc/mpic: import hw/openpic.c from QEMU

2013-04-18 Thread Alexander Graf
From: Scott Wood This is QEMU's hw/openpic.c from commit abd8d4a4d6dfea7ddea72f095f993e1de941614e ("Update version for 1.4.0-rc0"), run through Lindent with no other changes to ease merging future changes between Linux and QEMU. Remaining style issues (including those introduced by Lindent) will

[PATCH 12/17] kvm/ppc/mpic: adapt to kernel style and environment

2013-04-18 Thread Alexander Graf
From: Scott Wood Remove braces that Linux style doesn't permit, remove space after '*' that Lindent added, keep error/debug strings contiguous, etc. Substitute type names, debug prints, etc. Signed-off-by: Scott Wood Signed-off-by: Alexander Graf --- arch/powerpc/kvm/mpic.c | 445 ++

[PATCH 11/17] kvm/ppc/mpic: remove some obviously unneeded code

2013-04-18 Thread Alexander Graf
From: Scott Wood Remove some parts of the code that are obviously QEMU or Raven specific before fixing style issues, to reduce the style issues that need to be fixed. Signed-off-by: Scott Wood Signed-off-by: Alexander Graf --- arch/powerpc/kvm/mpic.c | 344 ---

[PATCH 15/17] KVM: PPC: Support irq routing and irqfd for in-kernel MPIC

2013-04-18 Thread Alexander Graf
Now that all the irq routing and irqfd pieces are generic, we can expose real irqchip support to all of KVM's internal helpers. This allows us to use irqfd with the in-kernel MPIC. Signed-off-by: Alexander Graf --- arch/powerpc/include/asm/kvm_host.h |7 ++ arch/powerpc/include/uapi/asm/kvm

[PATCH 13/17] kvm/ppc/mpic: in-kernel MPIC emulation

2013-04-18 Thread Alexander Graf
From: Scott Wood Hook the MPIC code up to the KVM interfaces, add locking, etc. Signed-off-by: Scott Wood [agraf: add stub function for kvmppc_mpic_set_epr, non-booke, 64bit] Signed-off-by: Alexander Graf --- Documentation/virtual/kvm/devices/mpic.txt | 37 ++ arch/powerpc/include/asm/kvm_h

[PATCH 03/17] KVM: Drop __KVM_HAVE_IOAPIC condition on irq routing

2013-04-18 Thread Alexander Graf
We have a capability enquire system that allows user space to ask kvm whether a feature is available. The point behind this system is that we can have different kernel configurations with different capabilities and user space can adjust accordingly. Because features can always be non existent, we