Hi Ani,
On 9/4/20 2:44 PM, Ani Sinha wrote:
Cold plugged bridges should not be hot unpluggable, even when their hotplug
property (acpi-pci-hotplug-with-bridge-support) is turned off. However, with
the current implementaton, windows would try to hot-unplug a pci bridge when
it's hotplug switch is off. This is regardless of whether there are devices
attached to the bridge. When devices are attached to the bridge, the bridge
is ultimately not hot-unpluggable. We have a demo video here:
https://youtu.be/pME2sjyQweo
In this fix, we identify a cold plugged bridge and for cold plugged bridges,
we do not add the appropriate amls and acpi methods that are used by the OS
to identify a hot-unpluggable pci device. After this change, Windows does not
show an option to eject the PCI bridge. A demo video is here:
https://youtu.be/kbgej5B9Hgs
While at it, I have also updated a stale comment.
This change is tested with a Windows 2012R2 guest image and Windows 2019 server
guest image running on Ubuntu 18.04 host. This change is based off of upstream
qemu master branch tag v5.1.0.
Can you add a test reproducer?
Looking at tests/qtest/virtio-rng-test.c it shouldn't be that
hard / time consuming.
I can add a unit test. If you look at the disassembled DSDT table, you can easily see that it’s adding the EJ0 method for the slot in which the bridge is attached.