[SRU][F][PATCH 0/1] Hipersocket page allocation failure on Ubuntu 20.04 based SSC environments (LP: 1959529)
frank.heimes at canonical.com
frank.heimes at canonical.com
Fri Feb 4 06:47:53 UTC 2022
BugLink: https://bugs.launchpad.net/bugs/1959529
SRU Justification:
[Impact]
* On IBM IDAA environments (SSC) hipersocket page allocation failures can occur
on Ubuntu Server 20.04 based SSC
(and presumably on regular LPAR installation, too)
* This happens on kernel 5.4.0-73-generic, probably on all 5.4 kernels.
* Error messages like the following can be found at the logs:
"kworker/u760:28: page allocation failure"
* The IBM LTC Networking team has identified that this is caused by the missing
upstream commit: 714c9108851743bb718fbc1bfb81290f12a53854.
* This commit got upstream accepted with v5.7, but is not included in 5.4.
[Fix]
* upstream (since v5.7):
714c9108851743bb718fbc1bfb81290f12a53854 714c91088517 "s390/qeth: use memory reserves to back RX buffers"
https://launchpadlibrarian.net/583947110/0001-s390-qeth-use-memory-reserves-to-back-RX-buffers_backport.patch
* The upstream commit does not apply cleanly on focal master-next by just
cherry-picking it, due to different driver code and context,
hence the need of the backport.
[Test Case]
* An IBM Z or LinuxONE III SSC environment is needed that is attached to a
Hipersocket (virtual network) and with that one or more (Hipersocket-based)
qeth device.
* LPAR needs to run Ubuntu Server 20.04 with kernel 5.4.
* Now drive heavy network traffic over this (Hipersocket-based) qeth device,
e.g. using stress-ng.
* Monitor the logs for:
"kworker/u760:28: page allocation failure: order:0, mode:0xa20(GFP_ATOMIC),
nodemask=(null),cpuset=/,mems_allowed=0"
* Due to the special environment, test and verification is done by IBM.
[Regression Potential / What can go wrong]
* The patch changes only two lines in the qeth buffer pool code.
they are therefore quite traceable.
* The page allocation is changed by calling alloc_page differently.
The second change is the adjustment of the pointer due to the above.
* If the new way of allocation is errorneous, it will either be identified
at compile time or at verification of this bug.
* Because of that a test kernel was build at PPA:
https://launchpad.net/~fheimes/+archive/ubuntu/lp1959529
to identify any build/compile issues.
* Since the original upstream commit is already in kernel v5.7,
is was already tested to some extend in groovy and all newer releases.
* This patch changes s390x-specific qeth driver code only in:
drivers/s390/net/qeth_core_main.c
[Other]
* All Ubuntu releases of groovy newer have this patch/commit included,
hence this SRU is for focal only.
Julian Wiedmann (1):
s390/qeth: use memory reserves to back RX buffers
drivers/s390/net/qeth_core_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--
2.25.1
More information about the kernel-team
mailing list