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



Reply via email to