qemu-devel
[Top][All Lists]
Advanced

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

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


From: Marc Zyngier
Subject: Re: [Qemu-devel] [RFC 0/2] target-arm: Provide '-cpu host' when running KVM
Date: Wed, 14 Aug 2013 09:27:37 +0100
User-agent: Roundcube Webmail/0.7.2

On 2013-08-14 09:16, Alexander Graf wrote:
On 14.08.2013, at 10:11, Marc Zyngier wrote:

On 2013-08-14 07:32, Alexander Graf wrote:
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.

Well, we're already there. A15 supports both classic page tables and LPAE.

You can discover which one is being used by inspecting the guest, and I'd fully expect future versions of the architecture to expose bits in the ID
registers indicating the various supported extensions.

Can you fetch those from user space? If so, we should probably create
a "host" CPU type class on the fly from the host's ID registers that
adjusts itself to the correct callbacks.

All the ID registers are available to userspace as part of the one-reg API. What the guest actually uses (for example classic vs LPAE) can be found out by looking at other registers (in this example SCTRL) that have to be exported anyway (at least for VM migration).

        M.
--
Fast, cheap, reliable. Pick two.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]