On 2014/6/25 14:24, Paolo Bonzini wrote:
Il 25/06/2014 04:17, Tiejun Chen ha scritto:
+ if (xen_enabled() && xen_has_gfx_passthru) {
+ d = pci_create_simple(b, 0, TYPE_I440FX_XEN_PCI_DEVICE);
+ *pi440fx_state = I440FX_XEN_PCI_DEVICE(d);
+ pci_create_pch(b);
+ } else {
+ d = pci_create_simple(b, 0, TYPE_I440FX_PCI_DEVICE);
+ *pi440fx_state = I440FX_PCI_DEVICE(d);
+ }
As mentioned in the review of v4, this should be a separate,
Xen-specific machine. pci_create_pch should not be called in generic PC
code.
I track this path:
qemu_register_pc_machine(&xenfv_machine);
|
+ .init = pc_xen_hvm_init,
|
+ pc_init_pci(machine);
|
+ pc_init1(machine, 1, 1);
|
+ i440fx_init()
So how to separate this to specific to xen? Or you mean we need to
create an new machine to address this scenario? But actually this is
same as xenfv_machine except for these little codes.
If you don't like this involve other cases, we may drop this chunk of
codes as a function to tweak with CONFIG_XEN. But this is not good as
well since this is device feature, so kvm may need this one day.
Thanks
Tiejun