On Wed, Apr 29, 2020 at 09:14:26AM +0000, Ani Sinha wrote: > > > > On Apr 29, 2020, at 2:26 PM, Michael S. Tsirkin <m...@redhat.com> wrote: > > > > Even if it seems to work for guests now, if we don't stick to emulating > > capabilities that hardware interfaces provide we can never be sure it > > will keep working. > > OS es use ACPI for PCI bridges: > https://github.com/qemu/qemu/blob/master/docs/pcie.txt > They use “_EJ0” to detect jot unplug capability: > https://uefi.org/sites/default/files/resources/ACPI_3.pdf > > 6.3.3 _EJx (Eject) These control methods are optional and are supplied for > devices that support a software-controlled VCRstyle ejection mechanism or > that require an action be performed such as isolation of power/data lines > before the device can be removed from the system. To support warm (system is > in a sleep state) and hot (system is in S0) removal, an _EJx control method > is listed for each sleep state from which the device supports removal, where > x is the sleeping state supported. For example, _EJ0 indicates the device > supports hot removal; _EJ1–EJ4 indicate the device supports warm removal.
Yes. So if there's no _EJx then it's reasonable to assume you can't isolate the slot, and so no hot-plug will happen either. > > Note that “these control methods are optional” line. If the OS adheres to the > spec, it should not expect them to exist all the time. > -- MST