xen: introduce new machine for IGD passthrough
v5 cover xen: introduce new machine for IGD passthrough
v5:
* Simplify to make sure its really inherited from the standard one in patch #3
* Then drop the original patch #3
v4:
* Rebase on latest tree
* Drop patch #2
* Regenerate patches after Michael introduce patch #1
* We need to use this pci_type as a index to reuse I440FX_PCI_DEVICE()
* Test: boot with a preinstalled winxp ./i386-softmmu/qemu-system-i386 -hda winxp-32.img -m 2560 -boot c -machine pc
v3:
* Drop patch #4
* Add one patch #1 from Michael
* Rebase
* In./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc
v2:
* Fix some coding style
* New patch to separate i440fx_init
* Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough
* Based on patch #2 to regenerate
* Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3
* Test: boot with a preinstalled ubuntu 14.04 ./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc
As we discussed we need to create a separate machine to support current IGD passthrough.
----------------------------------------------------------------
Michael S. Tsirkin (1):
i440fx: make types configurable at run-time
Tiejun Chen (3):
pc_init1: pass parameters just with types xen:hw:pci-host:piix: create host bridge to passthrough xen:hw:i386:pc_piix: introduce new machine for IGD passthrough
hw/i386/pc_piix.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----- hw/pci-host/piix.c | 24 +++++++++++++++++++----- include/hw/i386/pc.h | 8 +++++++- 3 files changed, 81 insertions(+), 11 deletions(-)
Thanks
Tiejun
PATCH v5 1/4 i440fx: make types configurable at run-time
From: "Michael S. Tsirkin" <[email protected]>
Xen wants to supply a different pci and host devices, inheriting i440fx devices. Make types configurable.
--- hw/i386/pc_piix.c | 4 +++- hw/pci-host/piix.c | 9 ++++----- include/hw/i386/pc.h | 6 +++++- 3 files changed, 12 insertions(+), 7 deletions(-)
v5:
* Nothing is changed.
v4:
* Just add From: Michael S. Tsirkin <[email protected]>
v3:
* New patch from Michael
hw/i386/pc_piix.c +3 -1
@@ -201,7 +201,9 @@ static void pc_init1(MachineState *machine, }if (pci_enabled) { - pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, &isa_bus, gsi, + pci_bus = i440fx_init(TYPE_I440FX_PCI_HOST_BRIDGE, + TYPE_I440FX_PCI_DEVICE, + &i440fx_state, &piix3_devfn, &isa_bus, gsi, system_memory, system_io, machine->ram_size, below_4g_mem_size, above_4g_mem_size,
hw/pci-host/piix.c +4 -5
@@ -40,7 +40,6 @@* http://download.intel.com/design/chipsets/datashts/29054901.pdf */ -#define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost"#define I440FX_PCI_HOST_BRIDGE (obj) \ OBJECT_CHECK(I440FXState, (obj), TYPE_I440FX_PCI_HOST_BRIDGE)
@@ -91,7 +90,6 @@ typedef struct PIIX3State {MemoryRegion rcr_mem; } PIIX3State; -#define TYPE_I440FX_PCI_DEVICE "i440FX"#define I440FX_PCI_DEVICE (obj) \ OBJECT_CHECK(PCII440FXState, (obj), TYPE_I440FX_PCI_DEVICE)
@@ -305,7 +303,8 @@ static int i440fx_initfn(PCIDevice *dev)return 0 ; } -PCIBus *i440fx_init(PCII440FXState **pi440fx_state, +PCIBus *i440fx_init(const char *host_type, const char *pci_type, + PCII440FXState **pi440fx_state, int *piix3_devfn, ISABus **isa_bus, qemu_irq *pic, MemoryRegion *address_space_mem,
@@ -325,7 +324,7 @@ PCIBus *i440fx_init(PCII440FXState **pi440fx_state,unsigned i;I440FXState *i440fx; - dev =qdev_create (NULL ,TYPE_I440FX_PCI_HOST_BRIDGE ); + dev =qdev_create (NULL , host_type); s =PCI_HOST_BRIDGE (dev); b =pci_bus_new (dev,NULL , pci_address_space, address_space_io,0 ,TYPE_PCI_BUS );
@@ -333,7 +332,7 @@ PCIBus *i440fx_init(PCII440FXState **pi440fx_state,object_property_add_child (qdev_get_machine (),"i440fx" ,OBJECT (dev),NULL );qdev_init_nofail (dev); - d =pci_create_simple (b,0 ,TYPE_I440FX_PCI_DEVICE ); + d =pci_create_simple (b,0 , pci_type); *pi440fx_state =I440FX_PCI_DEVICE (d); f = *pi440fx_state; f->system_memory = address_space_mem;
include/hw/i386/pc.h +5 -1
@@ -235,7 +235,11 @@ extern int no_hpet;struct PCII440FXState ;typedef struct PCII440FXState PCII440FXState ; -PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn, +#define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost" +#define TYPE_I440FX_PCI_DEVICE "i440FX" + +PCIBus *i440fx_init(const char *host_type, const char *pci_type, + PCII440FXState **pi440fx_state, int *piix_devfn, ISABus **isa_bus, qemu_irq *pic, MemoryRegion *address_space_mem, MemoryRegion *address_space_io,
Signature · 1 line
1.9.1
PATCH v5 2/4 pc_init1: pass parameters just with types
In reply to Tiejun ChenPass types to configure pc_init1().
--- hw/i386/pc_piix.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
v5:
* Nothing is changed.
v4:
* New patch to work for patch #1
hw/i386/pc_piix.c +11 -6
@@ -74,7 +74,9 @@ static bool has_reserved_memory = true;/* PC hardware initialisation */ static void pc_init1 (MachineState *machine,int pci_enabled, -int kvmclock_enabled) +int kvmclock_enabled, +const char *host_type, +const char *pci_type) {PCMachineState *pc_machine =PC_MACHINE (machine);MemoryRegion *system_memory =get_system_memory ();
@@ -201,8 +203,8 @@ static void pc_init1(MachineState *machine, }if (pci_enabled) { - pci_bus = i440fx_init(TYPE_I440FX_PCI_HOST_BRIDGE, - TYPE_I440FX_PCI_DEVICE, + pci_bus = i440fx_init(host_type, + pci_type, &i440fx_state, &piix3_devfn, &isa_bus, gsi, system_memory, system_io, machine->ram_size, below_4g_mem_size,
@@ -303,7 +305,8 @@ static void pc_init1(MachineState *machine,static void pc_init_pci (MachineState *machine) { -pc_init1 (machine,1 ,1 ); +pc_init1 (machine,1 ,1 ,TYPE_I440FX_PCI_HOST_BRIDGE , +TYPE_I440FX_PCI_DEVICE ); }static void pc_compat_2_0 (MachineState *machine)
@@ -419,7 +422,8 @@ static void pc_init_pci_1_2(MachineState *machine)static void pc_init_pci_no_kvmclock (MachineState *machine) {pc_compat_1_2 (machine); -pc_init1 (machine,1 ,0 ); +pc_init1 (machine,1 ,0 ,TYPE_I440FX_PCI_HOST_BRIDGE , +TYPE_I440FX_PCI_DEVICE ); }static void pc_init_isa (MachineState *machine)
@@ -437,7 +441,8 @@ static void pc_init_isa(MachineState *machine) }x86_cpu_compat_disable_kvm_features (FEAT_KVM ,KVM_FEATURE_PV_EOI );enable_compat_apic_id_mode (); -pc_init1 (machine,0 ,1 ); +pc_init1 (machine,0 ,1 ,TYPE_I440FX_PCI_HOST_BRIDGE , +TYPE_I440FX_PCI_DEVICE ); }#ifdef CONFIG_XEN
Signature · 1 line
1.9.1
PATCH v5 3/4 xen:hw:pci-host:piix: create host bridge to passthrough
In reply to Tiejun ChenImplement a pci host bridge specific to passthrough. Actually this just inherits the standard one.
--- hw/pci-host/piix.c | 15 +++++++++++++++ include/hw/i386/pc.h | 2 ++ 2 files changed, 17 insertions(+)
v5:
* Simplify to make sure its really inherited from the standard one
v4:
* Rebase
v3:
* Rebase
v2:
* Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough
hw/pci-host/piix.c +15 -0
@@ -703,6 +703,20 @@ static const TypeInfo i440fx_info = { .class_init = i440fx_class_init, }; +static void xen_igd_passthrough_i440fx_class_init (ObjectClass *klass,void *data) +{ +DeviceClass *dc =DEVICE_CLASS (klass); + + dc->desc ="IGD PT XEN Host bridge" ; +} + +static const TypeInfo xen_igd_passthrough_i440fx_info = { + .name =TYPE_XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE , + .parent =TYPE_I440FX_PCI_DEVICE , + .instance_size =sizeof (PCII440FXState), + .class_init = xen_igd_passthrough_i440fx_class_init, +}; +static const char *i440fx_pcihost_root_bus_path (PCIHostState *host_bridge,PCIBus *rootbus) {
@@ -744,6 +758,7 @@ static const TypeInfo i440fx_pcihost_info = {static void i440fx_register_types (void ) {type_register_static (&i440fx_info); +type_register_static (&xen_igd_passthrough_i440fx_info);type_register_static (&piix3_info);type_register_static (&piix3_xen_info);type_register_static (&i440fx_pcihost_info);
include/hw/i386/pc.h +2 -0
@@ -238,6 +238,8 @@ typedef struct PCII440FXState PCII440FXState;#define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost"#define TYPE_I440FX_PCI_DEVICE "i440FX" +#define TYPE_XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "xen-igd-passthrough-i440FX" + PCIBus *i440fx_init(const char *host_type, const char *pci_type, PCII440FXState **pi440fx_state, int *piix_devfn, ISABus **isa_bus, qemu_irq *pic,
Signature · 1 line
1.9.1
PATCH v5 4/4 xen:hw:i386:pc_piix: introduce new machine for IGD passthrough
In reply to Tiejun ChenNow we can introduce a new machine, xenigd, specific to IGD passthrough. This can avoid involving other common codes.
--- 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
hw/i386/pc_piix.c +43 -0
@@ -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 }
Signature · 1 line
1.9.1
Re: [Qemu-devel] [v5][PATCH 4/4] xen:hw:i386:pc_piix: introduce new machine for IGD passthrough
Quoted 4 lines · Tiejun Chen
Now we can introduce a new machine, xenigd, specific to IGD passthrough. This can avoid involving other common codes.
Signed-off-by Tiejun Chen <[email protected]>
This broke make check since the new machine was not blacklisted.
I sent a patch to fix this,
pls make sure make check passes when posting patches.
Quoted 97 lines
--- 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
hw/i386/pc_piix.c +43
-0@@ -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 }Signature · 1 line
1.9.1
Re: [Qemu-devel] [v5][PATCH 4/4] xen:hw:i386:pc_piix: introduce new machine for IGD passthrough
Quoted 8 lines · Michael S. Tsirkin
Quoted 4 lines · Tiejun Chen
Now we can introduce a new machine, xenigd, specific to IGD passthrough. This can avoid involving other common codes.
Signed-off-by Tiejun Chen <[email protected]>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.
Quoted 1 line
I sent a patch to fix this,
Thanks so much. I guest what you fixed should be as follows,
tests/qom-test.c +1 -1
@@ -16,7 +16,7 @@#include "qapi/qmp/types.h" static const char *blacklist_x86[] = { -"xenfv" ,"xenpv" ,NULL +"xenfv" ,"xenpv" ,"xenigd" ,NULL }; static const struct {
Quoted 1 line
pls make sure make check passes when posting patches.
Definitely.
Thanks
Tiejun
Quoted 101 lines
Quoted 99 lines
--- 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
hw/i386/pc_piix.c +43
-1@@ -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
Michael,
Any further comments to this revision?
Thanks
Tiejun
Quoted 53 lines · Tiejun Chen
v5:
* Simplify to make sure its really inherited from the standard one in patch #3
* Then drop the original patch #3v4:
* Rebase on latest tree
* Drop patch #2
* Regenerate patches after Michael introduce patch #1
* We need to use thispci_typeas a index to reuseI440FX_PCI_DEVICE()
* Test: boot with a preinstalled winxp ./i386-softmmu/qemu-system-i386 -hda winxp-32.img -m 2560 -boot c -machine pcv3:
* Drop patch #4
* Add one patch #1 from Michael
* Rebase
* In./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pcv2:
* Fix some coding style
* New patch to separatei440fx_init
* Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough
* Based on patch #2 to regenerate
* Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3
* Test: boot with a preinstalled ubuntu 14.04 ./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pcAs we discussed we need to create a separate machine to support current IGD passthrough.
----------------------------------------------------------------
Michael S. Tsirkin (1):
i440fx: make types configurable at run-timeTiejun Chen (3):
pc_init1: pass parameters just with types xen:hw:pci-host:piix: create host bridge to passthrough xen:hw:i386:pc_piix: introduce new machine for IGD passthroughhw/i386/pc_piix.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----- hw/pci-host/piix.c | 24 +++++++++++++++++++----- include/hw/i386/pc.h | 8 +++++++- 3 files changed, 81 insertions(+), 11 deletions(-)Thanks
Tiejun
Quoted 31 lines · Tiejun Chen
v5:
* Simplify to make sure its really inherited from the standard one in patch #3
* Then drop the original patch #3v4:
* Rebase on latest tree
* Drop patch #2
* Regenerate patches after Michael introduce patch #1
* We need to use thispci_typeas a index to reuseI440FX_PCI_DEVICE()
* Test: boot with a preinstalled winxp ./i386-softmmu/qemu-system-i386 -hda winxp-32.img -m 2560 -boot c -machine pcv3:
* Drop patch #4
* Add one patch #1 from Michael
* Rebase
* In./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pcv2:
* Fix some coding style
* New patch to separatei440fx_init
* Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough
* Based on patch #2 to regenerate
* Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3
* Test: boot with a preinstalled ubuntu 14.04 ./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc
Quoted 2 lines
As we discussed we need to create a separate machine to support current IGD passthrough.
That's a clean way to add a new machine so I will queue this up, but I note this does not do anything by itself. So I'll keep it in my queue - this way you don't need to re-post - but I think we should defer merging until we see the actual users.
Quoted 16 lines
----------------------------------------------------------------
Michael S. Tsirkin (1):
i440fx: make types configurable at run-timeTiejun Chen (3):
pc_init1: pass parameters just with types xen:hw:pci-host:piix: create host bridge to passthrough xen:hw:i386:pc_piix: introduce new machine for IGD passthroughhw/i386/pc_piix.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----- hw/pci-host/piix.c | 24 +++++++++++++++++++----- include/hw/i386/pc.h | 8 +++++++- 3 files changed, 81 insertions(+), 11 deletions(-)Thanks
Tiejun
Quoted 32 lines · Michael S. Tsirkin
Quoted 31 lines · Tiejun Chen
v5:
* Simplify to make sure its really inherited from the standard one in patch #3
* Then drop the original patch #3v4:
* Rebase on latest tree
* Drop patch #2
* Regenerate patches after Michael introduce patch #1
* We need to use thispci_typeas a index to reuseI440FX_PCI_DEVICE()
* Test: boot with a preinstalled winxp ./i386-softmmu/qemu-system-i386 -hda winxp-32.img -m 2560 -boot c -machine pcv3:
* Drop patch #4
* Add one patch #1 from Michael
* Rebase
* In./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pcv2:
* Fix some coding style
* New patch to separatei440fx_init
* Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough
* Based on patch #2 to regenerate
* Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3
* Test: boot with a preinstalled ubuntu 14.04 ./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc
Quoted 5 lines
Quoted 2 lines
As we discussed we need to create a separate machine to support current IGD passthrough.
That's a clean way to add a new machine so I will queue this up, but I note this does not do anything by itself. So I'll keep it in my queue -
Yes, currently its just useless.
As you know, to support IGD passthrough involves many things, qemu, xen, native driver, and so forth. So I want to send them separately to avoid too many comments I need to address one time.
Quoted 2 lines
this way you don't need to re-post - but I think we should defer merging until we see the actual users.
Understood.
Looks I can start to step next to push forward the remains.
Thanks for your time and comments.
Tiejun
Quoted 19 lines
Quoted 17 lines
----------------------------------------------------------------
Michael S. Tsirkin (1):
i440fx: make types configurable at run-timeTiejun Chen (3):
pc_init1: pass parameters just with types xen:hw:pci-host:piix: create host bridge to passthrough xen:hw:i386:pc_piix: introduce new machine for IGD passthroughhw/i386/pc_piix.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----- hw/pci-host/piix.c | 24 +++++++++++++++++++----- include/hw/i386/pc.h | 8 +++++++- 3 files changed, 81 insertions(+), 11 deletions(-)Thanks
Tiejun
Quoted 4 lines · Tiejun Chen
v5:
* Simplify to make sure its really inherited from the standard one in patch #3
* Then drop the original patch #3
I carried
i440fx: make types configurable at run-time
pc_init1: pass parameters just with types xen:hw:pci-host:piix: create host bridge to passthrough
qom-test: blacklist xenigd
xen:hw:i386:pc_piix: introduce new machine for IGD passthrough
on my branch for a while now, but I'm not sure it's all still needed. If yes simply include these patches next time you repost the patchset.
Signature · 1 line
MST
Quoted 6 lines · Michael S. Tsirkin
Quoted 4 lines · Tiejun Chen
v5:
* Simplify to make sure its really inherited from the standard one in patch #3
* Then drop the original patch #3
Quoted 8 lines
I carried
i440fx: make types configurable at run-time
pc_init1: pass parameters just with types xen:hw:pci-host:piix: create host bridge to passthrough
qom-test: blacklist xenigd
xen:hw:i386:pc_piix: introduce new machine for IGD passthroughon my branch for a while now, but I'm not sure it's all still needed.
They may not be necessary since you and Paolo already are fine to live without that separate machine specific to IGD passthrough.
Quoted 2 lines
If yes simply include these patches next time you repost the patchset.
Anyway, I will comment this point once I can issue next revision.
Thanks for your reminder.
Tiejun