Allow vmexit profiling utility to run

Allow direct access to the cycle counter from VMs and just return
gracefully on an hvc #0 call.

Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
KVM: ARM: Introduce more trace events

We would like to see some more detailed trace events for performance
profiling.

Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
ARM: KVM: move one-time init to its own function

As more code "to be run only once per vcpu" is expected, move
the VGIC init code into a separate function.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
ARM: KVM: Power State Coordination Interface implementation

Implement the PSCI specification (ARM DEN 0022A) to control
virtual CPUs being "powered" on or off.

PSCI/KVM is detected using the KVM_CAP_ARM_PSCI capability.

A virtual CPU can now be initialized in a "powered off" state,
using the KVM_ARM_VCPU_POWER_OFF feature flag.

The guest can use either SMC or HVC to execute a PSCI function.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>

Conflicts:

	arch/arm/kvm/arm.c
	include/uapi/linux/kvm.h
KVM: ARM: Change psci_call return value to bool

To avoid either using -1 or -EINVAL in return from kvm_psci_call change
the function to return a bool like the coprocessor handling functions
do.  Also clearly document this on on the function.

Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>

Conflicts:

	arch/arm/kvm/arm.c