Re: [PATCH 2/2] kvm: ppc: booke: check range page invalidation progress on page setup

2013-10-07 Thread Paolo Bonzini
Il 04/10/2013 15:38, Alexander Graf ha scritto: On 07.08.2013, at 12:03, Bharat Bhushan wrote: When the MM code is invalidating a range of pages, it calls the KVM kvm_mmu_notifier_invalidate_range_start() notifier function, which calls kvm_unmap_hva_range(), which arranges to flush all the

Re: [PATCH] KVM: PPC: Book3S HV: Fix typo in saving DSCR

2013-10-07 Thread Paolo Bonzini
Il 04/10/2013 15:10, Alexander Graf ha scritto: On 21.09.2013, at 01:53, Paul Mackerras wrote: This fixes a typo in the code that saves the guest DSCR (Data Stream Control Register) into the kvm_vcpu_arch struct on guest exit. The effect of the typo was that the DSCR value was saved in

Re: [RFC PATCH] KVM: PPC: Book3S: MMIO emulation support for little endian guests

2013-10-07 Thread Cedric Le Goater
Hi Alex, On 10/04/2013 02:50 PM, Alexander Graf wrote: On 03.10.2013, at 13:03, Cédric Le Goater wrote: MMIO emulation reads the last instruction executed by the guest and then emulates. If the guest is running in Little Endian mode, the instruction needs to be byte-swapped before being

[PATCH 0/3] KVM: PPC: Book3S: MMIO support for Little Endian guests

2013-10-07 Thread Cédric Le Goater
MMIO emulation reads the last instruction executed by the guest and then emulates. If the guest is running in Little Endian mode, the instruction needs to be byte-swapped before being emulated. The first patches add simple helper routines to load instructions from the guest. It prepares ground

Re: [RFC PATCH] KVM: PPC: Book3S: MMIO emulation support for little endian guests

2013-10-07 Thread Cedric Le Goater
On 10/04/2013 03:48 PM, Aneesh Kumar K.V wrote: Cédric Le Goater c...@fr.ibm.com writes: MMIO emulation reads the last instruction executed by the guest and then emulates. If the guest is running in Little Endian mode, the instruction needs to be byte-swapped before being emulated. This

[PATCH 1/3] KVM: PPC: Book3S: add helper routine to load guest instructions

2013-10-07 Thread Cédric Le Goater
This patch adds an helper routine kvmppc_ld_inst() to load an instruction form the guest. This routine will be modified in the next patches to take into account the endian order of the guest. Signed-off-by: Cédric Le Goater c...@fr.ibm.com --- arch/powerpc/include/asm/kvm_book3s.h | 16

[PATCH 3/3] KVM: PPC: Book3S: MMIO emulation support for little endian guests

2013-10-07 Thread Cédric Le Goater
MMIO emulation reads the last instruction executed by the guest and then emulates. If the guest is running in Little Endian mode, the instruction needs to be byte-swapped before being emulated. This patch stores the last instruction in the endian order of the host, primarily doing a byte-swap if

[PATCH 2/3] KVM: PPC: Book3S: add helper routines to detect endian order

2013-10-07 Thread Cédric Le Goater
They will be used to decide whether to byte-swap or not. When Little Endian host kernels come, these routines will need to be changed accordingly. Signed-off-by: Cédric Le Goater c...@fr.ibm.com --- arch/powerpc/include/asm/kvm_book3s.h | 10 ++ 1 file changed, 10 insertions(+) diff

Re: [RFC PATCH] KVM: PPC: Book3S: MMIO emulation support for little endian guests

2013-10-07 Thread Alexander Graf
On 07.10.2013, at 16:23, Cedric Le Goater c...@fr.ibm.com wrote: Hi Alex, On 10/04/2013 02:50 PM, Alexander Graf wrote: On 03.10.2013, at 13:03, Cédric Le Goater wrote: MMIO emulation reads the last instruction executed by the guest and then emulates. If the guest is running in Little

RE: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Bhushan Bharat-R65777
-Original Message- From: Alexander Graf [mailto:ag...@suse.de] Sent: Friday, October 04, 2013 4:46 PM To: Bhushan Bharat-R65777 Cc: Wood Scott-B07421; kvm-ppc@vger.kernel.org; k...@vger.kernel.org Subject: Re: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

Re: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Alexander Graf
On 07.10.2013, at 17:15, Bhushan Bharat-R65777 r65...@freescale.com wrote: -Original Message- From: Alexander Graf [mailto:ag...@suse.de] Sent: Friday, October 04, 2013 4:46 PM To: Bhushan Bharat-R65777 Cc: Wood Scott-B07421; kvm-ppc@vger.kernel.org; k...@vger.kernel.org

RE: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Bhushan Bharat-R65777
at least when I can avoid it. With the current code the compiler would be smart enough to just optimize out the complete branch. Sure. My point is, where would you be calling that where the entire file isn't predicated on (or selecting) CONFIG_KVM_GUEST or similar? We don't do

Re: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Alexander Graf
On 07.10.2013, at 17:43, Bhushan Bharat-R65777 r65...@freescale.com wrote: at least when I can avoid it. With the current code the compiler would be smart enough to just optimize out the complete branch. Sure. My point is, where would you be calling that where the entire file isn't

RE: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Bhushan Bharat-R65777
-Original Message- From: kvm-ppc-ow...@vger.kernel.org [mailto:kvm-ppc-ow...@vger.kernel.org] On Behalf Of Alexander Graf Sent: Monday, October 07, 2013 9:16 PM To: Bhushan Bharat-R65777 Cc: Wood Scott-B07421; kvm-ppc@vger.kernel.org; k...@vger.kernel.org Subject: Re: [PATCH 1/2]

Re: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Alexander Graf
On 07.10.2013, at 18:04, Bhushan Bharat-R65777 r65...@freescale.com wrote: -Original Message- From: kvm-ppc-ow...@vger.kernel.org [mailto:kvm-ppc-ow...@vger.kernel.org] On Behalf Of Alexander Graf Sent: Monday, October 07, 2013 9:16 PM To: Bhushan Bharat-R65777 Cc: Wood

RE: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Bhushan Bharat-R65777
-Original Message- From: Alexander Graf [mailto:ag...@suse.de] Sent: Monday, October 07, 2013 9:43 PM To: Bhushan Bharat-R65777 Cc: Wood Scott-B07421; kvm-ppc@vger.kernel.org; k...@vger.kernel.org Subject: Re: [PATCH 1/2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

[PATCH -V2 05/14] kvm: powerpc: book3s: Add kvmppc_ops callback

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com This patch add a new callback kvmppc_ops. This will help us in enabling both HV and PR KVM together in the same kernel. The actual change to enable them together is done in the later patch in the series. Signed-off-by: Aneesh Kumar K.V

[PATCH -V2 03/14] kvm: powerpc: book3s: pr: Rename KVM_BOOK3S_PR to KVM_BOOK3S_PR_POSSIBLE

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com With later patches supporting PR kvm as a kernel module, the changes that has to be built into the main kernel binary to enable PR KVM module is now selected via KVM_BOOK3S_PR_POSSIBLE Signed-off-by: Aneesh Kumar K.V

[PATCH -V2 12/14] kvm: Add struct kvm arg to memslot APIs

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com We will use that in the later patch to find the kvm ops handler Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com --- arch/arm/kvm/arm.c | 5 +++-- arch/ia64/kvm/kvm-ia64.c | 5 +++--

[PATCH -V2 09/14] kvm: powerpc: book3s: pr: move PR related tracepoints to a separate header

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com This patch moves PR related tracepoints to a separate header. This enables in converting PR to a kernel module which will be done in later patches Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com ---

[PATCH -V2 13/14] kvm: powerpc: book3s: Allow the HV and PR selection per virtual machine

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com This moves the kvmppc_ops callbacks to be a per VM entity. This enables us to select HV and PR mode when creating a VM. We also allow both kvm-hv and kvm-pr kernel module to be loaded. To achieve this we move /dev/kvm ownership to kvm.ko

[PATCH -V2 08/14] kvm: powerpc: book3s: Add is_hv_enabled to kvmppc_ops

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com This help us to identify whether we are running with hypervisor mode KVM enabled. The change is needed so that we can have both HV and PR kvm enabled in the same kernel. If both HV and PR KVM are included, interrupts come in to the HV

[PATCH -V2 04/14] kvm: powerpc: book3s: Add a new config variable CONFIG_KVM_BOOK3S_HV_POSSIBLE

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com This help ups to select the relevant code in the kernel code when we later move HV and PR bits as seperate modules. The patch also makes the config options for PR KVM selectable Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com

[PATCH -V2 11/14] kvm: powerpc: book3s: Support building HV and PR KVM as module

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com --- arch/powerpc/kvm/Kconfig | 6 +++--- arch/powerpc/kvm/Makefile | 11 --- arch/powerpc/kvm/book3s.c | 12 +++-

[PATCH -V2 10/14] kvm: powerpc: booke: Move booke related tracepoints to separate header

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com --- arch/powerpc/kvm/booke.c | 4 +- arch/powerpc/kvm/e500_mmu.c | 2 +- arch/powerpc/kvm/e500_mmu_host.c | 3 +- arch/powerpc/kvm/trace.h | 204

[PATCH -V2 01/14] kvm: powerpc: book3s: remove kvmppc_handler_highmem label

2013-10-07 Thread Aneesh Kumar K.V
From: Paul Mackerras pau...@samba.org This label is not used now. Signed-off-by: Paul Mackerras pau...@samba.org Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com --- arch/powerpc/kvm/book3s_hv_interrupts.S | 3 --- arch/powerpc/kvm/book3s_interrupts.S| 3 --- 2 files changed,

[PATCH -V2 00/14] Allow PR and HV KVM to coexist in one kernel

2013-10-07 Thread Aneesh Kumar K.V
Hi All, This patch series support enabling HV and PR KVM together in the same kernel. We extend machine property with new property kvm_type. A value of HV will force HV KVM and PR PR KVM. If we don't specify kvm_type we will select the fastest KVM mode. ie, HV if that is supported otherwise PR.

[PATCH -V2 06/14] kvm: powerpc: booke: Convert BOOKE to use kvmppc_ops callbacks

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com Make required changes to get BOOKE configs to build with the introduction of kvmppc_ops callback Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com --- arch/powerpc/include/asm/kvm_ppc.h | 4 +-- arch/powerpc/kvm/44x.c

[PATCH -V2 02/14] kvm: powerpc: book3s: move book3s_64_vio_hv.c into the main kernel binary

2013-10-07 Thread Aneesh Kumar K.V
From: Paul Mackerras pau...@samba.org Since the code in book3s_64_vio_hv.c is called from real mode with HV KVM, and therefore has to be built into the main kernel binary, this makes it always built-in rather than part of the KVM module. It gets called from the KVM module by PR KVM, so this adds

[PATCH -V2 14/14] kvm: powerpc: book3s: drop is_hv_enabled

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com drop is_hv_enabled, because that should not be a callback property Signed-off-by: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com --- arch/powerpc/include/asm/kvm_ppc.h | 6 +- arch/powerpc/kvm/book3s.c | 6 +++---

[PATCH 0/2 v2] kvm/powerpc: hypercall related cleanup

2013-10-07 Thread Bharat Bhushan
From: Bharat Bhushan bharat.bhus...@freescale.com This patchset does some code cleanup around kvm-hypercall. v1-v2: - Review comment of previous patch. More information available in individual patch. Bharat Bhushan (2): kvm/powerpc: rename kvm_hypercall() to epapr_hypercall() kvm/powerpc:

[PATCH 1/2 v2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Bharat Bhushan
kvm_hypercall() have nothing KVM specific, so renamed to epapr_hypercall(). Also this in moved to arch/powerpc/include/asm/epapr_hcalls.h Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com --- v1-v2 - epapr_hypercall() is always defined and returns EV_UNIMPLEMENTED when

[PATCH 2/2 v2] kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0()

2013-10-07 Thread Bharat Bhushan
kvm_hypercall0() and friends have nothing KVM specific so moved to epapr_hypercall0() and friends. Also they are moved from arch/powerpc/include/asm/kvm_para.h to arch/powerpc/include/asm/epapr_hcalls.h Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com --- v1-v2 - No change

[PATCH -V2 07/14] kvm: powerpc: book3s: Cleanup interrupt handling code

2013-10-07 Thread Aneesh Kumar K.V
From: Aneesh Kumar K.V aneesh.ku...@linux.vnet.ibm.com With this patch if HV is included, interrupts come in to the HV version of the kvmppc_interrupt code, which then jumps to the PR handler, renamed to kvmppc_interrupt_pr, if the guest is a PR guest. This helps in enabling both HV and PR, which

Re: [PATCH 1/2 v2] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Scott Wood
On Mon, 2013-10-07 at 22:23 +0530, Bharat Bhushan wrote: kvm_hypercall() have nothing KVM specific, so renamed to epapr_hypercall(). Also this in moved to arch/powerpc/include/asm/epapr_hcalls.h Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com --- v1-v2 - epapr_hypercall() is

[PATCH 1/2 v3] kvm/powerpc: rename kvm_hypercall() to epapr_hypercall()

2013-10-07 Thread Bharat Bhushan
kvm_hypercall() have nothing KVM specific, so renamed to epapr_hypercall(). Also this in moved to arch/powerpc/include/asm/epapr_hcalls.h Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com --- v2-v3 - CONFIG_KVM_GUEST implies CONFIG_EPAPR_PARAVIRT, so using only CONFIG_EPAPR_PARAVIRT

[PATCH 2/2 v3] kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0()

2013-10-07 Thread Bharat Bhushan
kvm_hypercall0() and friends have nothing KVM specific so moved to epapr_hypercall0() and friends. Also they are moved from arch/powerpc/include/asm/kvm_para.h to arch/powerpc/include/asm/epapr_hcalls.h Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com --- v1-v2-v3 - no Change

[PATCH 0/2 v3] kvm/powerpc: hypercall related cleanup

2013-10-07 Thread Bharat Bhushan
From: Bharat Bhushan bharat.bhus...@freescale.com This patchset does some code cleanup around kvm-hypercall. v2-v3: - Individual patch changelog have information v1-v2: - Review comment of previous patch. More information available in individual patch. Bharat Bhushan (2): kvm/powerpc: