[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