[SRU][F][PATCH 0/1] s390x/pci: s390_pci_mmio_write/read fail when MIO instructions are available (LP: 1874055)

frank.heimes at canonical.com frank.heimes at canonical.com
Fri May 29 09:36:13 UTC 2020


Buglink: https://bugs.launchpad.net/bugs/1874055

SRU Justification:

[Impact]

* Code that is using s390_pci_mmio_write/read system calls on a z15 (that comes with enhanced PCI load/store instructions), fails with "Unable to handle kernel pointer dereference in virtual kernel address space".

* This issue happens if enablement for z15 PCI enhancements is in place and where customers run workloads which access PCI adapters from user space, like RoCE/RDMA.

* To solve this, the system call implementation needs to be improved to execute the enhanced PCI load/store instructions on behalf of the user space application,
  making use of the mappings into its virtual address space.

[Fix]

* f058599e22d59e594e5aae1dc10560568d8f4a8b f058599e22d5 "s390/pci: Fix s390_mmio_read/write with MIO"

[Test Case]

* Setting up a z15 with at least one PCI card (like RoCE) using an operating system that includes support and enablement for z15 (line 20.04).

* Install the rdma tools: sudo apt install ibverbs-providers ibverbs-utils

* Verify you have some RDMA devices (requires ConnectX adapter)
  $ ibv_devices
  device node GUID
  ------ ----------------
  mlx5_0 98039b0300c682b4

* Verify MIO instructions are enabled for the device
  $ cat /sys/bus/pci/devices/0000\:00\:00.0/mio_enabled
  1

* Try to run an RDMA application from user space, e.g. ibv_rc_pingpong
  server side:
  ibv_rc_pingpong -d mlx5_0 -g 0 &
  client side:
  ibv_rc_pingpong -d mlx5_0 -g 0 localhost

* Verify whether the kernel crashes or not.

* Verification needs to be done by IBM on z15 hardware.

[Regression Potential]

* There is some regression potential with having code changes in the zPCI sub-system.

* It could be that PCI hardware get harmed, but PCI hardware is not as wide-spread on s390x than ccw hardware components.

* Only z15 hardware is affected - no other s390x hardware that is supported by Ubuntu.

* However, the zPCI system is s390x only and the patch was accepted upstream with v5.7-rc7 and Linus commented:
  "And none of the fixes look like there's anything particularly scary going on. Most of it is very small, and the slightly larger patches aren't huge either and are well-contained (the two slightly larger patches are to s390 and rxrpc - and even those patches aren't really all _that_ big)"

[Other]

* Since the fix/patch got upstream accepted with kernel v5.7-rc7, it's already in groovy, hence this SRU is for focal only.

Niklas Schnelle (1):
  From: Niklas Schnelle <schnelle at linux.ibm.com>

 arch/s390/include/asm/pci_io.h |  10 +-
 arch/s390/pci/pci_mmio.c       | 213 ++++++++++++++++++++++++++++++++-
 2 files changed, 219 insertions(+), 4 deletions(-)

-- 
2.25.1




More information about the kernel-team mailing list