qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 28/35] kvm: x86: Introduce kvmclock device to sa


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 28/35] kvm: x86: Introduce kvmclock device to save/restore its state
Date: Tue, 18 Jan 2011 11:09:01 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Lightning/1.0b1 Thunderbird/3.0.10

On 01/18/2011 10:56 AM, Jan Kiszka wrote:

The device model topology is 100% a hidden architectural detail.
This is true for the sysbus, it is obviously not the case for PCI and
similarly discoverable buses. There we have a guest-explorable topology
that is currently equivalent to the the qdev layout.

But we also don't do PCI passthrough so we really haven't even explored how that maps in qdev. I don't know if qemu-kvm has attempted to qdev-ify it.

Management and analysis tools must be able to traverse the system buses
and find guest devices this way.
We need to provide a compatible interface to the guest.  If you agree
with my above statements, then you'll also agree that we can do this
without keeping the device model topology stable.

But we also need to provide a compatible interface to management tools.
Exposing the device model topology as a compatible interface
artificially limits us.  It's far better to provide higher level
supported interfaces to give us the flexibility to change the device
model as we need to.
How do you want to change qdev to keep the guest and management tool
view stable while branching off kvm sub-buses?

The qdev device model is not a stable interface. I think that's been clear from the very beginning.

  Please propose such
extensions so that they can be discussed. IIUC, that would be second
relation between qdev and qbus instances besides the physical topology.
What further use cases (besides passing kvm_state around) do you have in
mind?

The -device interface is a stable interface. Right now, you don't specify any type of identifier of the pci bus when you create a PCI device. It's implied in the interface.

   If they create a device on bus X, it
must never end up on bus Y just because it happens to be KVM-assisted or
has some other property.
Nope.  This is exactly what should happen.

90% of the devices in the device model are not created by management
tools.  They're part of a chipset.  The chipset has well defined
extension points and we provide management interfaces to create devices
on those extension points.  That is, interfaces to create PCI devices.

Creating kvm irqchips via the management tool would be one simple way
(not the only one, though) to enable/disable kvm assistance for those
devices.

It's automatically created as part of the CPUs or as part of the chipset. How to enable/disable kvm assistance is a property of the CPU and/or chipset.

Regards,

Anthony Liguori


Jan





reply via email to

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