Avi Kivity <a...@redhat.com> writes: > On 05/14/2010 08:03 PM, Markus Armbruster wrote: >> Avi Kivity<a...@redhat.com> writes: >> >> >>> On 05/14/2010 11:50 AM, Markus Armbruster wrote: [...] >>>> We have a list of buses, each containing a list of device functions. >>>> Not sure the additional level of nesting you propose buys us anything. >>>> >>>> >>> A slot is the hotpluggable entity. Open your computer and you can >>> actually see them. >>> >> QEMU doesn't really know that. >> > > How can that be? Do we signal hotplug notifications to a function or > to a slot? > > Can we hotplug a single function in an already occupied slot?
What I meant to say: we have no concept of "slot" in the higher level interfaces, we have only bus and device. If a PCI device has multiple functions, we have a separate qdev device for each function. You can't unplug a "slot" (concept doesn't exist in qdev), only a qdev device. Naturally, when you unplug a qdev device, all functions in the same PCI slot need to go. This happens deep down in the bowels of ACPI, in piix4_device_hotplug(). qdev is not aware of this magic relation between the qdev devices for functions in the same slot. [...]