All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 0/7] ARM64: KVM: Cross type vCPU support
@ 2017-01-16  9:33 Shannon Zhao
  2017-01-16  9:33 ` [PATCH RFC 1/7] ARM64: KVM: Add the definition of ID registers Shannon Zhao
                   ` (6 more replies)
  0 siblings, 7 replies; 30+ messages in thread
From: Shannon Zhao @ 2017-01-16  9:33 UTC (permalink / raw)
  To: kvmarm; +Cc: marc.zyngier, qemu-arm, wu.wubin

From: Shannon Zhao <shannon.zhao@linaro.org>

This patch set adds support for Cross type vCPU in KVM-ARM64. It allows
userspace to request a different vCPU type with the physical ones and
check whether the physical CPUs could support that specific vCPU. If so,
KVM will trap the ID registers and return guest with the values from
usersapce.

This patch set is not complete since the CPU Errata is not considered
and currently it only checks if the id_aa64mmfr0_el1 register value is
legal. I want this as an example and need some feedback from folks if
this approach is right or proper.

You can test this patch set with QEMU using
-cpu cortex-a53/cortex-a57/generic/cortex-a72

These patches can be fetched from:
https://git.linaro.org/people/shannon.zhao/linux-mainline.git cross_vcpu_rfc

You corresponding QEMU patches can be fetched from:
https://git.linaro.org/people/shannon.zhao/qemu.git cross_vcpu_rfc

Thanks,
Shannon

Shannon Zhao (7):
  ARM64: KVM: Add the definition of ID registers
  ARM64: KVM: Add reset handlers for all ID registers
  ARM64: KVM: Reset ID registers when creating the VCPUs
  ARM64: KVM: emulate accessing ID registers
  ARM64: KVM: Support cross type vCPU
  ARM64: KVM: Support heterogeneous system
  ARM64: KVM: Add user set handler for id_aa64mmfr0_el1

 arch/arm/kvm/arm.c                   |  36 ++++-
 arch/arm64/include/asm/kvm_coproc.h  |   1 +
 arch/arm64/include/asm/kvm_emulate.h |   3 +
 arch/arm64/include/asm/kvm_host.h    |  49 +++++-
 arch/arm64/include/uapi/asm/kvm.h    |   1 +
 arch/arm64/kvm/guest.c               |  18 ++-
 arch/arm64/kvm/hyp/sysreg-sr.c       |   2 +
 arch/arm64/kvm/sys_regs.c            | 290 +++++++++++++++++++++++------------
 include/uapi/linux/kvm.h             |   2 +
 9 files changed, 296 insertions(+), 106 deletions(-)

-- 
2.0.4

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2017-03-15 15:31 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16  9:33 [PATCH RFC 0/7] ARM64: KVM: Cross type vCPU support Shannon Zhao
2017-01-16  9:33 ` [PATCH RFC 1/7] ARM64: KVM: Add the definition of ID registers Shannon Zhao
2017-01-28 12:07   ` Andrew Jones
2017-01-16  9:33 ` [PATCH RFC 2/7] ARM64: KVM: Add reset handlers for all " Shannon Zhao
2017-01-28 12:36   ` Andrew Jones
2017-03-09 10:19   ` Christoffer Dall
2017-01-16  9:33 ` [PATCH RFC 3/7] ARM64: KVM: Reset ID registers when creating the VCPUs Shannon Zhao
2017-01-28 13:32   ` Andrew Jones
2017-01-16  9:33 ` [PATCH RFC 4/7] ARM64: KVM: emulate accessing ID registers Shannon Zhao
2017-01-28 13:49   ` Andrew Jones
2017-03-09 10:28   ` Christoffer Dall
2017-01-16  9:33 ` [PATCH RFC 5/7] ARM64: KVM: Support cross type vCPU Shannon Zhao
2017-01-28 14:47   ` Andrew Jones
2017-03-09 10:56     ` Christoffer Dall
2017-01-16  9:33 ` [PATCH RFC 6/7] ARM64: KVM: Support heterogeneous system Shannon Zhao
2017-01-28 14:55   ` Andrew Jones
2017-03-09 15:21     ` Suzuki K Poulose
2017-03-15 11:50     ` Christoffer Dall
2017-03-15 12:51       ` Andrew Jones
2017-03-15 13:36         ` Christoffer Dall
2017-03-15 14:06           ` Andrew Jones
2017-03-15 14:21             ` Peter Maydell
2017-03-15 14:42               ` Andrew Jones
2017-03-15 14:49             ` Mark Rutland
2017-03-15 15:22             ` Christoffer Dall
2017-03-15 15:32               ` Andrew Jones
2017-01-16  9:33 ` [PATCH RFC 7/7] ARM64: KVM: Add user set handler for id_aa64mmfr0_el1 Shannon Zhao
2017-01-28 15:22   ` Andrew Jones
2017-03-09 12:52   ` Christoffer Dall
2017-03-09 15:03     ` Mark Rutland

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.