Comment 0 for bug 2047382

Revision history for this message
Chengen Du (chengendu) wrote :

[Impact]
Hot-plugging SCSI disks for QEMU VMs booting with UEFI and using guest kernels >= 6.5 might be broken.
The inconsistency suggests a potential race condition.

[Fix]
Reverting the two specified commits appears to restore reliability.
==========
cc22522fd55e2 PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root bus
40613da52b13f PCI: acpiphp: Reassign resources on bridge if necessary
==========

Upstream has resolved the issue by reverting both commits through a commit placed below.
==========
5df12742b7e3a Revert "PCI: acpiphp: Reassign resources on bridge if necessary
==========

[Test Plan]
1. Create a VM
virt-install --name scsi_test --memory 2048 --vcpus 2 --boot uefi --disk path=/home/ubuntu/mantic-server-cloudimg-amd64.img,size=20,format=qcow2,bus=virtio -os-variant=ubuntu18.04 --graphics spice --network bridge=virbr0
2. Prepare two XMLs for adding a disk device
# cat disk.xml
<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='XXX.img'/>
  <target dev='vdX' bus='virtio'/>
</disk>
3. Hotplug the disk and check for success
virsh attach-device scsi_test XXX.xml

[Where problems could occur]
The patch reverts two commits that previously addressed long-standing issues related to hotplugging devices with large BARs. While this reversion may reintroduce legacy issues, it does not introduce new problems. The associated risks are deemed low, making it worthwhile to address timing issues during the hotplugging of SCSI disks in QEMU VM.