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: Alexander Graf
Subject: Re: [Qemu-devel] [RFC 0/2] target-arm: Provide '-cpu host' when running KVM
Date: Wed, 14 Aug 2013 10:16:19 +0200

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.


Alex




reply via email to

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