diff mbox

[v5,4/4] xen:hw:i386:pc_piix: introduce new machine for IGD passthrough

Message ID 53ED9EB9.4060708@intel.com
State New
Headers show

Commit Message

Tiejun Chen Aug. 15, 2014, 5:46 a.m. UTC
On 2014/8/15 0:03, Michael S. Tsirkin wrote:
> On Tue, Aug 12, 2014 at 05:49:17PM +0800, Tiejun Chen wrote:
>> Now we can introduce a new machine, xenigd, specific to IGD
>> passthrough. This can avoid involving other common codes.
>>
>> Signed-off-by: Tiejun Chen <tiejun.chen@intel.com>
>
> This broke make check since the new machine was not
> blacklisted.

Sorry I didn't realize we have such a good test that we can do in case 
of qemu.

Often I just do compile and run to validate a fix. Now I'd like to keep 
this in my mind.

> I sent a patch to fix this,

Thanks so much. I guest what you fixed should be as follows,



> pls make sure make check passes when posting patches.

Definitely.

Thanks
Tiejun

>
>
>> ---
>>   hw/i386/pc_piix.c | 43 +++++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 43 insertions(+)
>>
>> v5:
>>
>> * Nothing is changed.
>>
>> v4:
>>
>> * Rebase
>>
>> v3:
>>
>> * Rebase
>>
>> v2:
>>
>> * Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3
>>
>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>> index 2bf8046..9d37f18 100644
>> --- a/hw/i386/pc_piix.c
>> +++ b/hw/i386/pc_piix.c
>> @@ -309,6 +309,15 @@ static void pc_init_pci(MachineState *machine)
>>                TYPE_I440FX_PCI_DEVICE);
>>   }
>>
>> +
>> +#ifdef CONFIG_XEN
>> +static void xen_igd_passthrough_pc_init_pci(MachineState *machine)
>> +{
>> +    pc_init1(machine, 1, 1, TYPE_I440FX_PCI_HOST_BRIDGE,
>> +             TYPE_XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE);
>> +}
>> +#endif
>> +
>>   static void pc_compat_2_0(MachineState *machine)
>>   {
>>       /* This value depends on the actual DSDT and SSDT compiled into
>> @@ -457,6 +466,18 @@ static void pc_xen_hvm_init(MachineState *machine)
>>           pci_create_simple(bus, -1, "xen-platform");
>>       }
>>   }
>> +
>> +static void xen_igd_passthrough_pc_hvm_init(MachineState *machine)
>> +{
>> +    PCIBus *bus;
>> +
>> +    xen_igd_passthrough_pc_init_pci(machine);
>> +
>> +    bus = pci_find_primary_bus();
>> +    if (bus != NULL) {
>> +        pci_create_simple(bus, -1, "xen-platform");
>> +    }
>> +}
>>   #endif
>>
>>   #define PC_I440FX_MACHINE_OPTIONS \
>> @@ -906,6 +927,27 @@ static QEMUMachine xenfv_machine = {
>>           { /* end of list */ }
>>       },
>>   };
>> +
>> +static QEMUMachine xenigd_machine = {
>> +    PC_COMMON_MACHINE_OPTIONS,
>> +    .name = "xenigd",
>> +    .desc = "Xen Fully-virtualized PC specific to IGD",
>> +    .init = xen_igd_passthrough_pc_hvm_init,
>> +    .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
>>
>>   static void pc_machine_init(void)
>> @@ -929,6 +971,7 @@ static void pc_machine_init(void)
>>       qemu_register_pc_machine(&isapc_machine);
>>   #ifdef CONFIG_XEN
>>       qemu_register_pc_machine(&xenfv_machine);
>> +    qemu_register_pc_machine(&xenigd_machine);
>>   #endif
>>   }
>>
>> --
>> 1.9.1
>
>
diff mbox

Patch

diff --git a/tests/qom-test.c b/tests/qom-test.c
index 4246382..10799e2 100644
--- a/tests/qom-test.c
+++ b/tests/qom-test.c
@@ -16,7 +16,7 @@ 
  #include "qapi/qmp/types.h"

  static const char *blacklist_x86[] = {
-    "xenfv", "xenpv", NULL
+    "xenfv", "xenpv", "xenigd", NULL
  };

  static const struct {