[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/12] target-i386: Add ICC_BUS and attach apic,
From: |
li guang |
Subject: |
Re: [Qemu-devel] [PATCH 07/12] target-i386: Add ICC_BUS and attach apic, kvmvapic and cpu to it |
Date: |
Fri, 29 Mar 2013 15:22:47 +0800 |
在 2013-03-28四的 11:55 +0100,Igor Mammedov写道:
> On Wed, 27 Mar 2013 11:57:53 +0100
> Paolo Bonzini <address@hidden> wrote:
>
> > Il 21/03/2013 15:28, Igor Mammedov ha scritto:
> > > Introduce hot-pluggable ICC_BUS and convert APIC devices from SysBusDevice
> > > to ICCDevice wich has ICC_BUS as default one.
> > >
> > > * attach APIC and kvmvapic to ICC_BUS during creation
> > > * use memory API directly instead of using SysBus proxy functions
> > > * introduce get_icc_bus() for getting access to system wide ICC_BUS
> > > * make ICC_BUS default one for X86CPU class, so that device_add would
> > > set it for CPU instead of SysBus
> > > * attach cold-pluged CPUs to icc_bus in softmmu mode, so they could be
> > > uplugged in future
> > > * if kvmvapic init() fails return -1 instead of aborting.
[...]
> > > +};
> > > +
> > > +static BusState *icc_bus;
> > > +
> > > +BusState *get_icc_bus(void)
> > > +{
> > > + if (icc_bus == NULL) {
> > > + icc_bus = g_malloc0(icc_bus_info.instance_size);
> > > + qbus_create_inplace(icc_bus, TYPE_ICC_BUS, NULL, "icc-bus");
> > > + icc_bus->allow_hotplug = 1;
> > > + OBJECT(icc_bus)->free = g_free;
> >
> > You can just use qbus_create.
> >
> > > + object_property_add_child(container_get(qdev_get_machine(),
> > > + "/unattached"),
> >
> > Please put it straight under /machine, not /unattached.
>
> sure
>
> >
> > But actually, you lack a device that instantiates the bus. That device
> > would be a simple container device similar hw/a15mpcore.c, and would
>
> About a year ago something like that device was proposed "cpu_sockets", but
what about link<Socket> implementation which was mentioned by Andreas
few days ago at a thread discussion for acpi memory hotplug?
(http://list-archives.org/2012/12/18/qemu-devel-nongnu-org/rfc-patch-v4-00-30-acpi-memory-hotplug/f/4115902514)
do consider to implement a link<> property between CPU and cpu_socket?
> there was suggestion to drop it:
> http://lists.gnu.org/archive/html/qemu-devel/2012-02/msg02157.html
> So I've opted in favor of parent-less bus, but I could create it
> explicitly at board level as you suggest.
>
> However having parent sysbus device for icc-bus will allow to see it via
> monitor info qtree and reset on SysBus could be propagated through it as well,
> it may be good to add it later.
>
> > also take care of registering the MSI memory region. Create that device
>
> it probably impossible to do, because [kvm]apic sets its private callbacks
> to it when initializing memory region, and CPU just maps it at specified
> address, or this region and APIC might not even exists at all if qemu started
> with -apic feature flag.
>
> > in the boards, and you won't need a special object_property_add_child.
> >
> > get_icc_bus() would then become simply
> > object_resolve_path_type("icc-bus", TYPE_ICC_BUS, NULL) or something
> > like that.
> >
> > Paolo
> >
> > > + "icc-bus", OBJECT(icc_bus), NULL);
> > > + }
> > > + return BUS(icc_bus);
> > > +}
> > > +
- Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state to KVM and unstop it, (continued)
- Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state to KVM and unstop it, Andreas Färber, 2013/03/27
- Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state to KVM and unstop it, Igor Mammedov, 2013/03/27
- Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state to KVM and unstop it, Paolo Bonzini, 2013/03/27
- Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state to KVM and unstop it, Igor Mammedov, 2013/03/27
- [Qemu-devel] [PATCH 05/14] cpu: Pass CPUState to *cpu_synchronize_post*(), Igor Mammedov, 2013/03/27
- [Qemu-devel] [PATCH 06/14] cpu: call cpu_synchronize_post_init() from CPUClass.realize() if hotplugged, Igor Mammedov, 2013/03/27
- [Qemu-devel] [PATCH 07/14] cpu: introduce CPUClass.resume() method, Igor Mammedov, 2013/03/27
[Qemu-devel] [PATCH 07/12] target-i386: Add ICC_BUS and attach apic, kvmvapic and cpu to it, Igor Mammedov, 2013/03/21
[Qemu-devel] [PATCH 09/12] rtc: update rtc_cmos on CPU hot-plug, Igor Mammedov, 2013/03/21
[Qemu-devel] [PATCH 06/12] target-i386: replace FROM_SYSBUS() with QOM type cast, Igor Mammedov, 2013/03/21
[Qemu-devel] [PATCH 08/12] introduce CPU hot-plug notifier, Igor Mammedov, 2013/03/21
[Qemu-devel] [PATCH 10/12] acpi_piix4: add infrastructure to send CPU hot-plug GPE to guest, Igor Mammedov, 2013/03/21