** 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 Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1870320

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

Status in Ubuntu on IBM z Systems:
  In Progress
Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Bionic:
  In Progress
Status in linux source package in Eoan:
  Fix Released
Status in linux source package in Focal:
  Fix Released
Status in linux source package in Groovy:
  Fix Released

Bug description:
  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.

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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to