Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2015-02-16 Thread Anup Patel
Hi Christoffer, On Sun, Feb 15, 2015 at 9:03 PM, Christoffer Dall wrote: > Hi Anup, > > On Mon, Jan 12, 2015 at 09:49:13AM +0530, Anup Patel wrote: >> On Mon, Jan 12, 2015 at 12:41 AM, Christoffer Dall >> wrote: >> > On Tue, Dec 30, 2014 at 11:19:13AM +0530, Anu

Re: vexpress: Framebuffer broken with KVM enabled

2015-02-16 Thread Anup Patel
On Mon, Feb 16, 2015 at 2:43 PM, Jan Kiszka wrote: > Hi, > > next issue related to KVM/QEMU on the TK1: The guest image I'm running > gives proper framebuffer output when in emulation mode. Once KVM is > enabled, the screen is - at best - only initially updated. Sometimes I > see the famous tux im

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2015-01-13 Thread Anup Patel
On Mon, Jan 12, 2015 at 12:41 AM, Christoffer Dall wrote: > On Tue, Dec 30, 2014 at 11:19:13AM +0530, Anup Patel wrote: >> (dropping previous conversation for easy reading) >> >> Hi Marc/Christoffer, >> >> I tried implementing PMU context-switch via C code >

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2015-01-11 Thread Anup Patel
On Mon, Jan 12, 2015 at 12:41 AM, Christoffer Dall wrote: > On Tue, Dec 30, 2014 at 11:19:13AM +0530, Anup Patel wrote: >> (dropping previous conversation for easy reading) >> >> Hi Marc/Christoffer, >> >> I tried implementing PMU context-switch via C code >

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2015-01-07 Thread Anup Patel
On Tue, Dec 30, 2014 at 11:19 AM, Anup Patel wrote: > (dropping previous conversation for easy reading) > > Hi Marc/Christoffer, > > I tried implementing PMU context-switch via C code > in EL1 mode and in atomic context with irqs disabled. > The context switch itself wor

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-12-29 Thread Anup Patel
(dropping previous conversation for easy reading) Hi Marc/Christoffer, I tried implementing PMU context-switch via C code in EL1 mode and in atomic context with irqs disabled. The context switch itself works perfectly fine but irq forwarding is not clean for PMU irq. I found another issue that i

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-27 Thread Anup Patel
On Thu, Nov 27, 2014 at 4:10 PM, Marc Zyngier wrote: > On 27/11/14 10:22, Anup Patel wrote: >> On Tue, Nov 25, 2014 at 7:12 PM, Christoffer Dall >> wrote: >>> On Tue, Nov 25, 2014 at 06:17:03PM +0530, Anup Patel wrote: >>>> Hi Christoffer, >>>> &

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-27 Thread Anup Patel
On Tue, Nov 25, 2014 at 7:12 PM, Christoffer Dall wrote: > On Tue, Nov 25, 2014 at 06:17:03PM +0530, Anup Patel wrote: >> Hi Christoffer, >> >> On Mon, Nov 24, 2014 at 8:07 PM, Christoffer Dall >> wrote: >> > On Mon, Nov 24, 2014 at 02:14:48PM +0530, Anup Pat

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-25 Thread Anup Patel
Hi Christoffer, On Mon, Nov 24, 2014 at 8:07 PM, Christoffer Dall wrote: > On Mon, Nov 24, 2014 at 02:14:48PM +0530, Anup Patel wrote: >> On Fri, Nov 21, 2014 at 5:19 PM, Christoffer Dall >> wrote: >> > On Fri, Nov 21, 2014 at 04:06:05PM +0530, Anup Patel wro

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-24 Thread Anup Patel
On Fri, Nov 21, 2014 at 5:19 PM, Christoffer Dall wrote: > On Fri, Nov 21, 2014 at 04:06:05PM +0530, Anup Patel wrote: >> Hi Christoffer, >> >> On Fri, Nov 21, 2014 at 3:29 PM, Christoffer Dall >> wrote: >> > On Thu, Nov 20, 2014 at 08:17:32PM +0530, Anup Pat

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-21 Thread Anup Patel
Hi Christoffer, On Fri, Nov 21, 2014 at 3:29 PM, Christoffer Dall wrote: > On Thu, Nov 20, 2014 at 08:17:32PM +0530, Anup Patel wrote: >> On Wed, Nov 19, 2014 at 8:59 PM, Christoffer Dall >> wrote: >> > On Tue, Nov 11, 2014 at 02:48:25PM +0530, Anup Patel wrote: >>

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-20 Thread Anup Patel
On Wed, Nov 19, 2014 at 8:59 PM, Christoffer Dall wrote: > On Tue, Nov 11, 2014 at 02:48:25PM +0530, Anup Patel wrote: >> Hi All, >> >> I have second thoughts about rebasing KVM PMU patches >> to Marc's irq-forwarding patches. >> >> The PMU IR

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-17 Thread Anup Patel
On Tue, Nov 11, 2014 at 2:48 PM, Anup Patel wrote: > Hi All, > > I have second thoughts about rebasing KVM PMU patches > to Marc's irq-forwarding patches. > > The PMU IRQs (when virtualized by KVM) are not exactly > forwarded IRQs because they are shared between Host

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-11 Thread Anup Patel
Hi All, I have second thoughts about rebasing KVM PMU patches to Marc's irq-forwarding patches. The PMU IRQs (when virtualized by KVM) are not exactly forwarded IRQs because they are shared between Host and Guest. Scenario1 - We might have perf running on Host and no KVM guest runni

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-11-08 Thread Anup Patel
> Thanks, > -Christoffer > > On Tue, Aug 05, 2014 at 02:54:09PM +0530, Anup Patel wrote: >> This patchset enables PMU virtualization in KVM ARM64. The >> Guest can now directly use PMU available on the host HW. >> >> The virtual PMU IRQ injection for Guest VCPUs

[PATCH v6 4/4] kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports it

2014-10-06 Thread Anup Patel
avkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre Przywara --- tools/kvm/arm/fdt.c | 51 ++- tools/kvm/arm/kvm-cpu.c |5 + 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm

[PATCH v6 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-10-06 Thread Anup Patel
but the returned target type is not known to KVMTOOL then we forcefully init VCPU with target type returned by KVM_ARM_PREFERRED_TARGET vm ioctl. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre Przywara --- tools/kvm/arm/aarch32/arm-cpu.c

[PATCH v6 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-10-06 Thread Anup Patel
-wide guest events as shutdown request in KVMTOOL. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre Przywara --- tools/kvm/kvm-cpu.c | 21 + 1 file changed, 21 insertions(+) diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c index

[PATCH v6 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-10-06 Thread Anup Patel
The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available in latest Linux-3.16-rcX or higher hence register aarch64 target type for it. This patch enables us to run KVMTOOL on X-Gene Potenza host. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre

[PATCH v6 0/4] kvmtool: ARM/ARM64: Misc updates

2014-10-06 Thread Anup Patel
o when handling KVM_EXIT_SYSTEM_EVENT Anup Patel (4): kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu kvmtool: ARM64: Add target type potenza for aarch64 kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports

Re: [PATCH v5 0/4] kvmtool: ARM/ARM64: Misc updates

2014-10-06 Thread Anup Patel
On 3 October 2014 21:47, Will Deacon wrote: > On Wed, Oct 01, 2014 at 11:34:51AM +0100, Anup Patel wrote: >> This patchset updates KVMTOOL to use some of the features >> supported by Linux-3.16 KVM ARM/ARM64, such as: >> >> 1. Target CPU == Host using KVM_ARM_PRE

[PATCH v5 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-10-01 Thread Anup Patel
-wide guest events as shutdown request in KVMTOOL. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre Przywara --- tools/kvm/kvm-cpu.c | 21 + 1 file changed, 21 insertions(+) diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c index

[PATCH v5 4/4] kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports it

2014-10-01 Thread Anup Patel
avkumar Sawargaonkar Signed-off-by: Anup Patel Reviewed-by: Andre Przywara --- tools/kvm/arm/fdt.c | 51 ++- tools/kvm/arm/kvm-cpu.c |5 + 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm

[PATCH v5 0/4] kvmtool: ARM/ARM64: Misc updates

2014-10-01 Thread Anup Patel
Changes since v1: - Drop the patch to fix compile error for aarch64 - Fallback to old method of trying all target types if KVM_ARM_PREFERRED_TARGET vm ioctl fails - Print more info when handling KVM_EXIT_SYSTEM_EVENT Anup Patel (4): kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine

[PATCH v5 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-10-01 Thread Anup Patel
but the returned target type is not known to KVMTOOL then we forcefully init VCPU with target type returned by KVM_ARM_PREFERRED_TARGET vm ioctl. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch32/arm-cpu.c |8 tools/kvm/arm

[PATCH v5 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-10-01 Thread Anup Patel
The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available in latest Linux-3.16-rcX or higher hence register aarch64 target type for it. This patch enables us to run KVMTOOL on X-Gene Potenza host. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch64

Re: [PATCH v4 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-10-01 Thread Anup Patel
On 30 September 2014 14:26, Andre Przywara wrote: > Hi Anup, > > thanks for the re-spin and sorry for the delay. > > Looks better now, some minor comments below. > > On 19/09/14 00:57, Anup Patel wrote: >> Instead, of trying out each and every target type we should >

Re: [PATCH v4 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-10-01 Thread Anup Patel
On 29 September 2014 22:30, Andre Przywara wrote: > > On 19/09/14 00:57, Anup Patel wrote: >> The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available >> in latest Linux-3.16-rcX or higher hence register aarch64 target >> type for it. >> >> This patch

[PATCH v4 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-09-18 Thread Anup Patel
-wide guest events as shutdown request in KVMTOOL. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/kvm-cpu.c | 21 + 1 file changed, 21 insertions(+) diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c index ee0a8ec..5180039 100644 --- a

[PATCH v4 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-09-18 Thread Anup Patel
but the returned target type is not known to KVMTOOL then we forcefully init VCPU with target type returned by KVM_ARM_PREFERRED_TARGET vm ioctl. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch32/arm-cpu.c |9 ++- tools/kvm/arm/aarch64/arm-cpu.c

[PATCH v4 4/4] kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports it

2014-09-18 Thread Anup Patel
avkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/fdt.c | 52 ++- tools/kvm/arm/kvm-cpu.c |5 + 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm/fdt.c index 186a718..a15450e 10

[PATCH v4 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-09-18 Thread Anup Patel
The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available in latest Linux-3.16-rcX or higher hence register aarch64 target type for it. This patch enables us to run KVMTOOL on X-Gene Potenza host. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch64

[PATCH v4 0/4] kvmtool: ARM/ARM64: Misc updates

2014-09-18 Thread Anup Patel
ET vm ioctl fails - Print more info when handling KVM_EXIT_SYSTEM_EVENT Anup Patel (4): kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu kvmtool: ARM64: Add target type potenza for aarch64 kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT kvmtool: ARM/

Re: [PATCH v3 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-09-16 Thread Anup Patel
On Wed, Sep 17, 2014 at 3:54 AM, Anup Patel wrote: > On Thu, Sep 11, 2014 at 9:37 PM, Andre Przywara > wrote: >> Anup, >> >> On 08/09/14 09:17, Anup Patel wrote: >>> The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available >>> in latest Linux

Re: [PATCH v3 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-09-16 Thread Anup Patel
On Wed, Sep 17, 2014 at 3:59 AM, Anup Patel wrote: > On Thu, Sep 11, 2014 at 9:56 PM, Andre Przywara > wrote: >> >> On 08/09/14 09:17, Anup Patel wrote: >>> The KVM_EXIT_SYSTEM_EVENT exit reason was added to define >>> architecture independent system-wide e

Re: [PATCH v3 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-09-16 Thread Anup Patel
On Wed, Sep 17, 2014 at 3:43 AM, Anup Patel wrote: > On Thu, Sep 11, 2014 at 9:24 PM, Andre Przywara > wrote: >> Hi Anup, >> >> On 08/09/14 09:17, Anup Patel wrote: >>> Instead, of trying out each and every target type we should >>> use KVM_ARM_PREFERRE

Re: [PATCH v3 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-09-16 Thread Anup Patel
On Thu, Sep 11, 2014 at 9:56 PM, Andre Przywara wrote: > > On 08/09/14 09:17, Anup Patel wrote: >> The KVM_EXIT_SYSTEM_EVENT exit reason was added to define >> architecture independent system-wide events for a Guest. >> >> Currently, it is used by in-kernel PSCI-0.2

Re: [PATCH v3 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-09-16 Thread Anup Patel
On Thu, Sep 11, 2014 at 9:37 PM, Andre Przywara wrote: > Anup, > > On 08/09/14 09:17, Anup Patel wrote: >> The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available >> in latest Linux-3.16-rcX or higher hence register aarch64 target >> type for it. >> >&g

Re: [PATCH v3 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-09-16 Thread Anup Patel
On Thu, Sep 11, 2014 at 9:24 PM, Andre Przywara wrote: > Hi Anup, > > On 08/09/14 09:17, Anup Patel wrote: >> Instead, of trying out each and every target type we should >> use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target type >> for KVM ARM/ARM64. >>

[PATCH v3 4/4] kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports it

2014-09-08 Thread Anup Patel
avkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/fdt.c | 52 ++- tools/kvm/arm/kvm-cpu.c |5 + 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm/fdt.c index 186a718..a15450e 10

[PATCH v3 0/4] kvmtool: ARM/ARM64: Misc updates

2014-09-08 Thread Anup Patel
ck to old method of trying all target types if KVM_ARM_PREFERRED_TARGET vm ioctl fails - Print more info when handling KVM_EXIT_SYSTEM_EVENT Anup Patel (4): kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu kvmtool: ARM64: Add target type potenza for aarch64 kv

[PATCH v3 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-09-08 Thread Anup Patel
but the returned target type is not known to KVMTOOL then we forcefully init VCPU with target type returned by KVM_ARM_PREFERRED_TARGET vm ioctl. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/kvm-cpu.c | 52

[PATCH v3 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-09-08 Thread Anup Patel
-wide guest events as shutdown request in KVMTOOL. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/kvm-cpu.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c index ee0a8ec..6d01192 100644 --- a

[PATCH v3 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-09-08 Thread Anup Patel
The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available in latest Linux-3.16-rcX or higher hence register aarch64 target type for it. This patch enables us to run KVMTOOL on X-Gene Potenza host. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch64

Re: [PATCH v2 4/4] kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports it

2014-08-29 Thread Anup Patel
Hi Andre, On 29 August 2014 14:41, Andre Przywara wrote: > Hi Anup, > > On 26/08/14 10:22, Anup Patel wrote: >> If in-kernel KVM support PSCI-0.2 emulation then we should set >> KVM_ARM_VCPU_PSCI_0_2 feature for each guest VCPU and also >> provide "arm,psci-0.

Re: [PATCH v2 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-08-29 Thread Anup Patel
Hi Andre, On 29 August 2014 14:40, Andre Przywara wrote: > (resent, that was the wrong account before ...) > > Hi Anup, > > On 26/08/14 10:22, Anup Patel wrote: >> Instead, of trying out each and every target type we should >> use KVM_ARM_PREFERRED_TARGET vm ioctl to d

[PATCH v2 3/4] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-08-26 Thread Anup Patel
-wide guest events as shutdown request in KVMTOOL. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/kvm-cpu.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c index ee0a8ec..6d01192 100644 --- a

[PATCH v2 4/4] kvmtool: ARM/ARM64: Provide PSCI-0.2 to guest when KVM supports it

2014-08-26 Thread Anup Patel
avkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/fdt.c | 39 +-- tools/kvm/arm/kvm-cpu.c |5 + 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm/fdt.c index 186a718..93849cf2 100644

[PATCH v2 2/4] kvmtool: ARM64: Add target type potenza for aarch64

2014-08-26 Thread Anup Patel
The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available in latest Linux-3.16-rcX or higher hence register aarch64 target type for it. This patch enables us to run KVMTOOL on X-Gene Potenza host. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch64

[PATCH v2 0/4] kvmtool: ARM/ARM64: Misc updates

2014-08-26 Thread Anup Patel
reason Changes since v1: - Drop the patch to fix compile error for aarch64 - Fallback to old method of trying all target types if KVM_ARM_PREFERRED_TARGET vm ioctl fails - Print more info when handling KVM_EXIT_SYSTEM_EVENT Anup Patel (4): kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to

[PATCH v2 1/4] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-08-26 Thread Anup Patel
Signed-off-by: Anup Patel --- tools/kvm/arm/kvm-cpu.c | 46 +++--- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/tools/kvm/arm/kvm-cpu.c b/tools/kvm/arm/kvm-cpu.c index aeaa4cf..c010e9c 100644 --- a/tools/kvm/arm/kvm-cpu.c +++ b/tools/kvm/arm

Re: [RFC PATCH 2/6] ARM64: perf: Re-enable overflow interrupt from interrupt handler

2014-08-07 Thread Anup Patel
On 6 August 2014 19:54, Will Deacon wrote: > On Tue, Aug 05, 2014 at 10:24:11AM +0100, Anup Patel wrote: >> A hypervisor will typically mask the overflow interrupt before >> forwarding it to Guest Linux hence we need to re-enable the overflow >> interrupt after clearing it

Re: [PATCH 5/5] kvmtool: ARM/ARM64: Provide PSCI-0.2 guest when in-kernel KVM supports it

2014-08-07 Thread Anup Patel
On 6 August 2014 18:26, Will Deacon wrote: > On Tue, Aug 05, 2014 at 09:49:59AM +0100, Anup Patel wrote: >> If in-kernel KVM support PSCI-0.2 emulation then we should set >> KVM_ARM_VCPU_PSCI_0_2 feature for each guest VCPU and also >> provide "arm,psci-0.2","

Re: [PATCH 4/5] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-08-07 Thread Anup Patel
On 6 August 2014 18:23, Will Deacon wrote: > On Tue, Aug 05, 2014 at 09:49:58AM +0100, Anup Patel wrote: >> The KVM_EXIT_SYSTEM_EVENT exit reason was added to define >> architecture independent system-wide events for a Guest. >> >> Currently, it is used by in-kernel P

Re: [PATCH 3/5] kvmtool: ARM64: Add target type potenza for aarch64

2014-08-07 Thread Anup Patel
On 6 August 2014 18:22, Will Deacon wrote: > On Tue, Aug 05, 2014 at 09:49:57AM +0100, Anup Patel wrote: >> The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available >> in latest Linux-3.16-rcX or higher hence register aarch64 target >> type for it. >> >> Thi

Re: [PATCH 2/5] kvmtool: ARM64: Fix compile error for aarch64

2014-08-07 Thread Anup Patel
On 6 August 2014 18:20, Will Deacon wrote: > On Tue, Aug 05, 2014 at 09:49:56AM +0100, Anup Patel wrote: >> The __ARM64_SYS_REG() macro is already defined in uapi/asm/kvm.h >> of Linux-3.16-rcX hence remove it from arm/aarch64/kvm-cpu.c > > I've been carrying a simil

Re: [PATCH 1/5] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-08-07 Thread Anup Patel
On 6 August 2014 18:18, Will Deacon wrote: > On Tue, Aug 05, 2014 at 09:49:55AM +0100, Anup Patel wrote: >> Instead, of trying out each and every target type we should use >> KVM_ARM_PREFERRED_TARGET vm ioctl to determine target type >> for KVM ARM/ARM64. >> >> We

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-08-05 Thread Anup Patel
On Tue, Aug 5, 2014 at 2:54 PM, Anup Patel wrote: > This patchset enables PMU virtualization in KVM ARM64. The > Guest can now directly use PMU available on the host HW. > > The virtual PMU IRQ injection for Guest VCPUs is managed by > small piece of code shared between KVM ARM and

Re: [RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-08-05 Thread Anup Patel
On 5 August 2014 15:02, Anup Patel wrote: > On Tue, Aug 5, 2014 at 2:54 PM, Anup Patel wrote: >> This patchset enables PMU virtualization in KVM ARM64. The >> Guest can now directly use PMU available on the host HW. >> >> The virtual PMU IRQ injection for Guest VCPUs i

[RFC PATCH 5/6] ARM64: KVM: Implement full context switch of PMU registers

2014-08-05 Thread Anup Patel
Guest and we only trap-n-emulate PMCR_EL0 accesses to fake number of PMU event counters to Guest. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar --- arch/arm64/include/asm/kvm_asm.h | 36 ++-- arch/arm64/kernel/asm-offsets.c |1 + arch/arm64/kvm/hyp-init.S

[RFC PATCH 2/6] ARM64: perf: Re-enable overflow interrupt from interrupt handler

2014-08-05 Thread Anup Patel
Sawargaonkar Signed-off-by: Anup Patel --- arch/arm64/kernel/perf_event.c |8 1 file changed, 8 insertions(+) diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index 47dfb8b..19fb140 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel

[RFC PATCH 6/6] ARM64: KVM: Upgrade to lazy context switch of PMU registers

2014-08-05 Thread Anup Patel
. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar --- arch/arm64/include/asm/kvm_asm.h |3 + arch/arm64/include/asm/kvm_host.h |3 + arch/arm64/kernel/asm-offsets.c |1 + arch/arm64/kvm/hyp.S | 63 -- arch/arm64/kvm/sys_regs.c | 248

[RFC PATCH 4/6] ARM/ARM64: KVM: Add common code PMU IRQ routing

2014-08-05 Thread Anup Patel
will also clear the "irq_pending" flag. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar --- arch/arm/include/asm/kvm_host.h |9 arch/arm/include/uapi/asm/kvm.h |1 + arch/arm/kvm/arm.c|6 +++ arch/arm/kvm/reset.c |

[RFC PATCH 3/6] ARM: perf: Re-enable overflow interrupt from interrupt handler

2014-08-05 Thread Anup Patel
Sawargaonkar Signed-off-by: Anup Patel --- arch/arm/kernel/perf_event_v7.c |8 1 file changed, 8 insertions(+) diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index 1d37568..581cca5 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel

[RFC PATCH 1/6] ARM64: Move PMU register related defines to asm/pmu.h

2014-08-05 Thread Anup Patel
To use the ARMv8 PMU related register defines from the KVM code, we move the relevant definitions to asm/pmu.h include file. We also add #ifndef __ASSEMBLY__ in order to use asm/pmu.h from assembly code. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar --- arch/arm64/include

[RFC PATCH 0/6] ARM64: KVM: PMU infrastructure support

2014-08-05 Thread Anup Patel
profiling KVM world-switch and other EL2 mode functions. All testing have been done using KVMTOOL on X-Gene Mustang and Foundation v8 Model for both Aarch32 and Aarch64 guest. Anup Patel (6): ARM64: Move PMU register related defines to asm/pmu.h ARM64: perf: Re-enable overflow interrupt from

Re: [PATCH 0/5] kvmtool: ARM/ARM64: Misc updates

2014-08-05 Thread Anup Patel
On 5 August 2014 14:19, Anup Patel wrote: > This patchset updates KVMTOOL to use some of the features > supported by Linux-3.16 KVM ARM/ARM64, such as: > > 1. Target CPU == Host using KVM_ARM_PREFERRED_TARGET vm ioctl > 2. Target CPU type Potenza for using KVMTOOL on X-Gene > 3.

[PATCH 5/5] kvmtool: ARM/ARM64: Provide PSCI-0.2 guest when in-kernel KVM supports it

2014-08-05 Thread Anup Patel
avkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/fdt.c | 39 +-- tools/kvm/arm/kvm-cpu.c |5 + 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm/fdt.c index 186a718..93849cf2 100644

[PATCH 3/5] kvmtool: ARM64: Add target type potenza for aarch64

2014-08-05 Thread Anup Patel
The VCPU target type KVM_ARM_TARGET_XGENE_POTENZA is available in latest Linux-3.16-rcX or higher hence register aarch64 target type for it. This patch enables us to run KVMTOOL on X-Gene Potenza host. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch64

[PATCH 4/5] kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT

2014-08-05 Thread Anup Patel
-wide guest events as same and shutdown the guest upon KVM_EXIT_SYSTEM_EVENT. Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/kvm-cpu.c |6 ++ 1 file changed, 6 insertions(+) diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c index ee0a8ec..e20ee4b

[PATCH 1/5] kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu

2014-08-05 Thread Anup Patel
: Anup Patel --- tools/kvm/arm/kvm-cpu.c | 21 - 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tools/kvm/arm/kvm-cpu.c b/tools/kvm/arm/kvm-cpu.c index aeaa4cf..7478f8f 100644 --- a/tools/kvm/arm/kvm-cpu.c +++ b/tools/kvm/arm/kvm-cpu.c @@ -34,6 +34,7 @@ struct

[PATCH 0/5] kvmtool: ARM/ARM64: Misc updates

2014-08-05 Thread Anup Patel
reason Anup Patel (5): kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu kvmtool: ARM64: Fix compile error for aarch64 kvmtool: ARM64: Add target type potenza for aarch64 kvmtool: Handle exit reason KVM_EXIT_SYSTEM_EVENT kvmtool: ARM/ARM64: Provide PSCI-0.2

[PATCH 2/5] kvmtool: ARM64: Fix compile error for aarch64

2014-08-05 Thread Anup Patel
The __ARM64_SYS_REG() macro is already defined in uapi/asm/kvm.h of Linux-3.16-rcX hence remove it from arm/aarch64/kvm-cpu.c Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Anup Patel --- tools/kvm/arm/aarch64/kvm-cpu.c | 11 --- 1 file changed, 11 deletions(-) diff --git a

Re: [PATCH 0/9] arm64: KVM: debug infrastructure support

2014-05-19 Thread Anup Patel
On 19 May 2014 14:58, Marc Zyngier wrote: > On Mon, May 19 2014 at 10:05:42 am BST, Anup Patel > wrote > > Hi Anup, > >> Overall the patchset looks good to me. >> >> The debug register usage by Guest will be very rare >> so a lazy save/restore makes lo

Re: [PATCH 0/9] arm64: KVM: debug infrastructure support

2014-05-19 Thread Anup Patel
On 7 May 2014 20:50, Marc Zyngier wrote: > This patch series adds debug support, a key feature missing from the > KVM/arm64 port. > > The main idea is to keep track of whether the debug registers are > "dirty" (changed by the guest) or not. In this case, perform the usual > save/restore dance, for

Re: [PATCH 1/9] arm64: KVM: rename pm_fake handler to trap_wi_raz

2014-05-19 Thread Anup Patel
Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH 9/9] arm64: KVM: enable trapping of all debug registers

2014-05-19 Thread Anup Patel
Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH 8/9] arm64: KVM: implement lazy world switch for debug registers

2014-05-19 Thread Anup Patel
E, MDE or KVM_ARM64_DEBUG_DIRTY > + // is set, we do a full save/restore cycle and disable trapping. > + add x25, x0, #VCPU_CONTEXT > + ldr x25, [x25, #CPU_SYSREG_OFFSET(MDSCR_EL1)] > + and x26, x25, #DBG_MDSCR_KDE > + and x25, x25, #DBG_MDSCR_MDE > +

Re: [PATCH 7/9] arm64: KVM: add trap handlers for AArch32 debug registers

2014-05-19 Thread Anup Patel
Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH 6/9] arm64: KVM: check ordering of all system register tables

2014-05-19 Thread Anup Patel
Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH 5/9] arm64: KVM: use separate tables for AArch32 32 and 64bit traps

2014-05-19 Thread Anup Patel
Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH 4/9] arm64: KVM: common infrastructure for handling AArch32 CP14/CP15

2014-05-19 Thread Anup Patel
Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH 3/9] arm64: KVM: add trap handlers for AArch64 debug registers

2014-05-19 Thread Anup Patel
EEHBR32_EL1 */ > { Op0(0b10), Op1(0b010), CRn(0b0001), CRm(0b0000), Op2(0b000), > NULL, reset_val, TEEHBR32_EL1, 0 }, > + > + /* MDCCSR_EL1 */ > + { Op0(0b10), Op1(0b011), CRn(0b), CRm(0b0001), Op2(0b000), > + trap_wi_raz }, > + /* DBGDTR_EL0 */ > + { Op0(0b10), Op1(0b011), CRn(0b), CRm(0b0100), Op2(0b000), > + trap_wi_raz }, > + /* DBGDTR[TR]X_EL0 */ > + { Op0(0b10), Op1(0b011), CRn(0b), CRm(0b0101), Op2(0b000), > + trap_wi_raz }, > + > /* DBGVCR32_EL2 */ > { Op0(0b10), Op1(0b100), CRn(0b), CRm(0b0111), Op2(0b000), > NULL, reset_val, DBGVCR32_EL2, 0 }, > -- > 1.8.3.4 > > ___ > kvmarm mailing list > kvm...@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm Looks good to me. FWIW, Reviewed-by: Anup Patel -- Anup -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

Re: [PATCH] ARM: KVM: add irqfd and irq routing support

2014-05-14 Thread Anup Patel
On Fri, May 9, 2014 at 6:15 PM, Eric Auger wrote: > This patch enables irqfd and irq routing on ARM. > > It turns on CONFIG_HAVE_KVM_EVENTFD and CONFIG_HAVE_KVM_IRQ_ROUTING > > irqfd framework enables to assign physical IRQs to guests. > > 1) user-side uses KVM_IRQFD VM ioctl to pass KVM a kvm_irq

[PATCH v11 11/12] ARM/ARM64: KVM: Emulate PSCI v0.2 CPU_SUSPEND

2014-04-28 Thread Anup Patel
icity, we implement CPU_SUSPEND emulation similar to WFI (Wait-for-interrupt) emulation and we also treat power-down request to be same as stand-by request. This is consistent with section 5.4.1 and section 5.4.2 of PSCI v0.2 specification. Signed-off-by: Anup Patel Signed-off-by: Pranav

[PATCH v11 10/12] ARM/ARM64: KVM: Fix CPU_ON emulation for PSCI v0.2

2014-04-28 Thread Anup Patel
t;context id" and returns INVALID_PARAMETERS if target CPU is already running. This patch updates kvm_psci_vcpu_on() such that it works for both PSCI v0.1 and PSCI v0.2. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Reviewed-by: Christoffer Dall Acked-by: Marc Zyngier -

[PATCH v11 12/12] ARM/ARM64: KVM: Advertise KVM_CAP_ARM_PSCI_0_2 to user space

2014-04-28 Thread Anup Patel
We have PSCI v0.2 emulation available in KVM ARM/ARM64 hence advertise this to user space (i.e. QEMU or KVMTOOL) via KVM_CHECK_EXTENSION ioctl. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Acked-by: Christoffer Dall Acked-by: Marc Zyngier --- arch/arm/kvm/arm.c |1

[PATCH v11 09/12] ARM/ARM64: KVM: Emulate PSCI v0.2 MIGRATE_INFO_TYPE and related functions

2014-04-28 Thread Anup Patel
t;Not Supported" 2. MIGRATE_INFO_TYPE - Return 2 i.e. Trusted OS is not present 3. MIGRATE_INFO_UP_CPU - Returns "Not Supported" Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Reviewed-by: Christoffer Dall Acked-by: Marc Zyngier --- arch/arm/kvm/psci.c | 21

[PATCH v11 07/12] ARM/ARM64: KVM: Emulate PSCI v0.2 SYSTEM_OFF and SYSTEM_RESET

2014-04-28 Thread Anup Patel
using KVM_EXIT_SYSTEM_EVENT exit reasons. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Reviewed-by: Christoffer Dall Acked-by: Marc Zyngier --- arch/arm/kvm/psci.c | 46 +++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff

[PATCH v11 08/12] ARM/ARM64: KVM: Emulate PSCI v0.2 AFFINITY_INFO

2014-04-28 Thread Anup Patel
This patch adds emulation of PSCI v0.2 AFFINITY_INFO function call for KVM ARM/ARM64. This is a VCPU-level function call which will be used to determine current state of given affinity level. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Reviewed-by: Christoffer Dall Acked

[PATCH v11 04/12] KVM: Documentation: Add info regarding KVM_ARM_VCPU_PSCI_0_2 feature

2014-04-28 Thread Anup Patel
feature. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Acked-by: Christoffer Dall Acked-by: Marc Zyngier --- Documentation/virtual/kvm/api.txt |2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index

[PATCH v11 05/12] ARM/ARM64: KVM: Make kvm_psci_call() return convention more flexible

2014-04-28 Thread Anup Patel
of such system-level PSCI functions are: PSCI v0.2 SYSTEM_OFF and SYSTEM_RESET. This patch updates kvm_psci_call() to return three types of values: 1) > 0 (success) 2) = 0 (success but exit to user space) 3) < 0 (errors) Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Rev

[PATCH v11 06/12] KVM: Add KVM_EXIT_SYSTEM_EVENT to user space API header

2014-04-28 Thread Anup Patel
ific 'flags' of a system-level event using the kvm_run structure. This newly added KVM_EXIT_SYSTEM_EVENT will be used by KVM ARM/ARM64 in-kernel PSCI v0.2 support to reset/shutdown VMs. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Reviewed-by: Christoffer Dall

[PATCH v11 03/12] ARM/ARM64: KVM: Add base for PSCI v0.2 emulation

2014-04-28 Thread Anup Patel
v0.2 interface for VCPUs, the user space (i.e. QEMU or KVMTOOL) will have to set KVM_ARM_VCPU_PSCI_0_2 feature when doing VCPU init using KVM_ARM_VCPU_INIT ioctl. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Acked-by: Christoffer Dall Acked-by: Marc Zyngier --- arch/arm

[PATCH v11 00/12] In-kernel PSCI v0.2 emulation for KVM ARM/ARM64

2014-04-28 Thread Anup Patel
I and KVM_PSCI_RET_INVAL - Added kvm_psci_version() to get PSCI version available to VCPU - Fixed grammer in Documentation/virtual/kvm/api.txt V1: - Initial RFC PATCH Anup Patel (12): KVM: Add capability to advertise PSCI v0.2 support ARM/ARM64: KVM: Add common header for PSCI related defines ARM/A

[PATCH v11 01/12] KVM: Add capability to advertise PSCI v0.2 support

2014-04-28 Thread Anup Patel
User space (i.e. QEMU or KVMTOOL) should be able to check whether KVM ARM/ARM64 supports in-kernel PSCI v0.2 emulation. For this purpose, we define KVM_CAP_ARM_PSCI_0_2 in KVM user space interface header. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Acked-by: Christoffer

[PATCH v11 02/12] ARM/ARM64: KVM: Add common header for PSCI related defines

2014-04-28 Thread Anup Patel
KVMTOOL). Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Signed-off-by: Ashwin Chaugule --- include/uapi/linux/Kbuild |1 + include/uapi/linux/psci.h | 90 + 2 files changed, 91 insertions(+) create mode 100644 include/uapi

[PATCH v10 12/12] ARM/ARM64: KVM: Advertise KVM_CAP_ARM_PSCI_0_2 to user space

2014-04-21 Thread Anup Patel
We have PSCI v0.2 emulation available in KVM ARM/ARM64 hence advertise this to user space (i.e. QEMU or KVMTOOL) via KVM_CHECK_EXTENSION ioctl. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Acked-by: Christoffer Dall Acked-by: Marc Zyngier --- arch/arm/kvm/arm.c |1

[PATCH v10 11/12] ARM/ARM64: KVM: Emulate PSCI v0.2 CPU_SUSPEND

2014-04-21 Thread Anup Patel
icity, we implement CPU_SUSPEND emulation similar to WFI (Wait-for-interrupt) emulation and we also treat power-down request to be same as stand-by request. This is consistent with section 5.4.1 and section 5.4.2 of PSCI v0.2 specification. Signed-off-by: Anup Patel Signed-off-by: Pranav

[PATCH v10 10/12] ARM/ARM64: KVM: Fix CPU_ON emulation for PSCI v0.2

2014-04-21 Thread Anup Patel
t;context id" and returns INVALID_PARAMETERS if target CPU is already running. This patch updates kvm_psci_vcpu_on() such that it works for both PSCI v0.1 and PSCI v0.2. Signed-off-by: Anup Patel Signed-off-by: Pranavkumar Sawargaonkar Reviewed-by: Christoffer Dall Acked-by: Marc Zyngier -

  1   2   >