Re: [RFC 0/2] target-arm: Provide '-cpu host' when running KVM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 13.08.2013, at 20:03, Peter Maydell wrote:

> These patches add support to target-arm for '-cpu host'.
> The general semantics are the same as for ppc and x86 (ie "whatever
> the host kernel can support that looks basically like the host
> CPU"), but the mechanism is a little different.
> 
> The kernel API (currently still proposed rather than implemented,
> hence the RFC nature of this patchset) is that the existing
> KVM_ARM_VCPU_INIT supports a new 'target' value KVM_ARM_TARGET_HOST,
> which it treats as "whatever you are". On the userspace side,
> we use this if the kernel supports it. If it doesn't then we
> know the kernel must be an A15-on-A15 only one, and so can
> safely implement '-cpu host' with KVM_ARM_TARGET_CORTEX_A15.

How do you know what core specific registers QEMU can expect from this particular CPU? Imagine ARM changes the MMU implementation in the next ARMv8 CPU. With -cpu host you wouldn't be able to support gdbstub anymore, because you wouldn't know whether the MMU format is the old or the new one.

I really prefer the "probe the host, match it fuzzily with our own list, pick a specific own core" way of doing -cpu host. Then it's really only ever an alias and you don't have to worry about all these odd special cases.


Alex

> 
> In order to find out details of the vCPU so we can correctly
> set up our ARMCPU objects, we create a scratch VM and a single
> cpu within it; we can then use the existing "read registers"
> API to access the ID registers. We do this once at startup
> when we register the new QOM type.
> 
> ('-cpu host' is also going to be useful for AArch64 because
> it gives us a path to providing KVM support without having
> to implement a model of a specific v8 CPU and all its system
> registers...)
> 
> Peter Maydell (2):
>  target-arm: Don't hardcode KVM target CPU to be A15
>  target-arm: Provide '-cpu host' when running KVM
> 
> target-arm/helper.c |    6 ++
> target-arm/kvm.c    |  227 ++++++++++++++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 231 insertions(+), 2 deletions(-)
> 
> -- 
> 1.7.9.5
> 
> _______________________________________________
> kvmarm mailing list
> kvmarm@xxxxxxxxxxxxxxxxxxxxx
> https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm


_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm



[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux