Stefano Stabellini wrote on 2014-11-10: > On Mon, 10 Nov 2014, Zhang, Yang Z wrote: >> Igor Mammedov wrote on 2014-05-23: >>> if user starts QEMU with "-machine pc,accel=xen", then compat >>> property in xenfv won't work and it would cause error: >>> "Unsupported bus. Bus doesn't have property 'acpi-pcihp-bsel' set" >>> when PCI device is added with -device on QEMU CLI. >>> >>> In case of Xen instead of using compat property, just use the fact >>> that xen doesn't use QEMU's fw_cfg/acpi tables to switch piix4_pm >>> into legacy PCI hotplug mode when Xen is enabled. >> >> I am wondering why Xen cannot use new mechanism to do the hotplug. > > If I recall correctly the new mechanism is based on fw_cfg, right? > Xen doesn't have fw_cfg and it uses a different set of ACPI table, > built by one additional piece of firmware call "hvmloader" that KVM or QEMU > don't use.
Right. I forget that ACPI is built by hvmloader in Xen. :) > > >>> Signed-off-by: Igor Mammedov <imamm...@redhat.com> >>> --- >>> hw/acpi/piix4.c | 3 +++ >>> hw/i386/pc_piix.c | 11 ----------- >>> 2 files changed, 3 insertions(+), 11 deletions(-) diff --git >>> a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 227ea30..12542c3 >>> 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -501,6 >>> +501,9 @@ I2CBus *piix4_pm_init(PCIBus *bus, int devfn, uint32_t >>> smb_io_base, >>> s->irq = sci_irq; >>> s->smi_irq = smi_irq; >>> s->kvm_enabled = kvm_enabled; >>> + if (!fw_cfg) { >>> + s->use_acpi_pci_hotplug = false; >>> + } >>> >>> qdev_init_nofail(dev); >>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index >>> a13e8d6..067ff0c 100644 --- a/hw/i386/pc_piix.c +++ >>> b/hw/i386/pc_piix.c @@ -840,17 +840,6 @@ static QEMUMachine > xenfv_machine = { >>> .max_cpus = HVM_MAX_VCPUS, >>> .default_machine_opts = "accel=xen", >>> .hot_add_cpu = pc_hot_add_cpu, >>> - .compat_props = (GlobalProperty[]) { >>> - /* xenfv has no fwcfg and so does not load acpi from QEMU. >>> - * as such new acpi features don't work. >>> - */ >>> - { >>> - .driver = "PIIX4_PM", >>> - .property = "acpi-pci-hotplug-with-bridge-support", >>> - .value = "off", >>> - }, >>> - { /* end of list */ } >>> - }, >>> }; >>> #endif >> >> >> Best regards, >> Yang >> Best regards, Yang