** Description changed:

+ SRU Justification:
+ ==================
+ 
+ [Impact]
+ 
+ * With zpci_disable() working, 'lockdep' detected a potential deadlock
+ (in the s390x zPCI subsystem).
+ 
+ * The deadlock is between recovering a PCI function via the
+ /sys/bus/pci/devices/<dev>/recover attribute vs powering it off via
+ /sys/bus/pci/slots/<slot>/power.
+ 
+ [Fix]
+ 
+ * Backport 1: https://launchpadlibrarian.net/479554961/0001-s390-pci-
+ Recover-handle-in-clp_set_pci_fn.patch
+ 
+ * Backport 2: https://launchpadlibrarian.net/478714295/0001-s390-pci-
+ Fix-possible-deadlock-in-recover_store.patch
+ 
+ [Test Case]
+ 
+ * It's best to (re-)test using the kernel's locking validator, also
+ known as 'lockdep'.
+ 
+ * Since this potential deadlock was identified by lockdep.
+ 
+ [Regression Potential]
+ 
+ * The regression potential can be considered as moderate, since:
+ 
+ * It is purely s390x specific code (arch/s390/include/asm/pci.h and
+ arch/s390/pci/{pci.c,pci_clp.c,pci_sysfs.c}).
+ 
+ * It only affects the zPCI, the s390x specific PCI code layer.
+ 
+ * PCI cards available for s390x are optional cards (RoCE and zEDC) and
+ not very wide-spread.
+ 
+ * The states between such a deadlock can happen (recover and power off)
+ are non standard and usually undesired states.
+ 
+ * The patches are upstream accepted since 5.6 and already landed in eoan
+ and focal.
+ 
+ [Other Info]
+ 
+ * Patches 17cdec960cf7 "s390/pci: Recover handle in clp_set_pci_fn()"
+ and 576c75e36c68 "s390/pci: Fix possible deadlock in recover_store()"
+ are upstream accepted since kernel 5.6, but they don't apply cleanly on
+ bionic master-next, hence backports are needed:
+ 
+ * 0001-s390-pci-Recover-handle-in-clp_set_pci_fn.patch is a backport of
+ 17cdec960cf776b20b1fb08c622221babe591d51 17cdec960cf7 "s390/pci: Recover
+ handle in clp_set_pci_fn()"
+ 
+ * 0001-s390-pci-Fix-possible-deadlock-in-recover_store.patch is a
+ backport of 576c75e36c689bec6a940e807bae27291ab0c0de 576c75e36c68
+ "s390/pci: Fix possible deadlock in recover_store()"
+ 
+ * Both patches/commits already landed in focal (with LP 1863768) and in eoan 
(with LP 1868324).
+ __________
+ 
  This Bug tracks the necessary backport for the Linux Kernel
  to enable proper reset/recovery of PCI Functions in the error state.
  There is a related fix to s390-tools but the relevant zpcictl command
  is not part of Ubuntu 18.04
  
  Upstream this includes the following commits:
  
  In the Kernel:
  
  17cdec960cf776b20b1fb08c622221babe591d51 s390/pci: Recover handle in 
clp_set_pci_fn()
  Backport patch attached.
  
- 
  576c75e36c689bec6a940e807bae27291ab0c0de s390/pci: Fix possible deadlock in 
recover_store()
  applies cleanly but for the second a small backport change is necessary.
  
  These fixes are already in 20.04 but need also be applied to 18.04.

** Changed in: linux (Ubuntu Bionic)
       Status: Confirmed => In Progress

** Changed in: ubuntu-z-systems
       Status: Confirmed => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1870320

Title:
  [UBUNTU 18.04] zpcictl --reset - contribution for kernel

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1870320/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to