APPLIED: [SRU][F][PATCH 0/1] zPCI device hot-plug during boot may result in unusable device (LP: 1893778)

Khaled Elmously khalid.elmously at canonical.com
Wed Sep 16 04:01:52 UTC 2020


On 2020-09-03 11:57:12 , frank.heimes at canonical.com wrote:
> BugLink: https://bugs.launchpad.net/bugs/1893778
> 
> SRU Justification:
> 
> [Impact]
> 
> * If a PCI device (incl. virtio-pci) is hot-plugged during boot-up on s390x, it can be detected as an entry in CLP List PCI functions and via the hot-plug event.
> 
> * (This is basically equivalent to boot time probing on other architectures.)
> 
> * In such a case the hot-plug event will be stale, but Linux still tries to add and enable the device which leads to:
> 
> * a) a duplicate entry in zPCI internal device list
> 
> * b) an attempt to enable the device with a stale function handle
> 
> * In case b) the device will be placed in error state which makes it unusable.
> 
> [Fix]
> 
> * b76fee1bc56c31a9d2a49592810eba30cc06d61a b76fee1bc56c "s390/pci: ignore stale configuration request event"
> 
> [Test Case]
> 
> * Setup an Ubuntu Server 20.04 (focal) Linux operating system on an IBM Z or LinuxONE III LPAR.
> 
> * It's now easiest to test on KVM using virtio-pci (on s390x).
> 
> * Start a test virtual machine: sudo virsh start <test-guest>
> 
> * Attach and hotplug a virtio-pci device: sudo virsh attach-device <test-guest> hotplug_pci_block.xml
> 
> * Where hotplug_pci_block.xml looks like:
>    <disk device="disk" type="file">
>       <driver name="qemu" type="raw" />
>       <address type="pci">
>          <zpci fid="4660" uid="4660" />
>       </address>
>       <source file="testdisk.img" />
>       <target bus="virtio" dev="vdt" />
>    </disk>
> 
> [Regression Potential]
> 
> * The regression risk is moderate, since the modification is very limited and therefore manageable (additional if statement - two lines of code) and easily testable on KVM using virtio-pci.
> 
> * The changes are in the zPCI event code, so in worst-case it can happen that the event handling get harmed which may break zPCI entirely, affecting all PCI devices incl. virtio-pci (on s390x).
> 
> * A bug in PCI 'availability' handling also just lead to wrong states of PCI devices which make them unavailable, hence unusable.
> 
> * Notice that zPCI is the s390x-specific PCI implementation, modifications here do not affect any other architecture.
> 
> * And zPCI devices are less wide-spread compared to ccw devices on s390x.
> 
> * On top a test kernel was build and made available for further testing atesting can be easily done with virtio-pci on KVM.
> 
> [Other]
> 
> * The fix/patch got upstream accepted with kernel v5.9-rc2.
> 
> * But it landed already in groovy's proposed kernel 5.8 (Ubuntu-5.8.0-18.19), due to 'Groovy update: v5.8.4 upstream stable release' that is handled in LP 1893048.
> 
> * Hence this fix/patch need to be applied to focal only.
> 
> Niklas Schnelle (1):
>   s390/pci: ignore stale configuration request event
> 
>  arch/s390/pci/pci_event.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> -- 
> 2.25.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team



More information about the kernel-team mailing list