[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH, RFC]: qemu: hang-free/error-tolerant PCI hot-plug protocol
Hi, The interface for PCI hotplug is flexible enough to shoot ones-self in the foot. It is possible to try to insert a PCI device in to a slot already occupied by a qemu emulated device (NIC, PIIX, ISA-bridge, etc.) In this case qemu (wisely) refuses to do the hotplug. Since there is no way for a toolstack to query qemu's pci device layout there is no way to check for this ahead of time. In this case the toolstack must wait for device-model state to change to pci-inserted which never happens. I propose that when qemu decides not to hot-plug a device that it raise the "pci-inserted" status anyway. The tools must then check the "parameter" key in xenbus for a non-error string. In other words: send_command("pci-ins") wait_for_device_model("pci-inserted") if parameter[0-2] == "0x" { /* success */ }else{ /* fail */ } Unless there is some other way of dealing with this that I am missing? Thanks diff --git a/hw/piix4acpi.c b/hw/piix4acpi.c index 1efa77d..4d59ad4 100644 --- a/hw/piix4acpi.c +++ b/hw/piix4acpi.c @@ -620,6 +620,7 @@ void acpi_php_add(int devfn) if ( strlen(ret_str) > 0 ) xenstore_record_dm("parameter", ret_str); + xenstore_record_dm_state("pci-inserted"); return; } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |