zcrypt DD: Toleration for new IBM Z Crypto Hardware - (Backport to Ubuntu 20.04)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
High
|
Skipper Bug Screeners | ||
linux (Ubuntu) |
Fix Released
|
High
|
Frank Heimes | ||
Focal |
Fix Released
|
Undecided
|
Canonical Kernel Team | ||
Hirsute |
Invalid
|
Undecided
|
Canonical Kernel Team | ||
Impish |
Fix Released
|
Undecided
|
Frank Heimes | ||
Jammy |
Fix Released
|
High
|
Frank Heimes |
Bug Description
SRU Justification:
==================
[Impact]
* CEX8 hardware CryptoExpress adapter shall support quantum-safe crypto
and therefore require nowadays message sizes > 12kB.
* This change here is mainly required to support EP11 responses to admin requests at zNext
which due to QS certificates can grow larger than 12kB.
* It's to cover a minimal patch to provide toleration support for this feature
which shall be back-ported to all distribution releases in service at zNext
* This SRU requests belongs to the hardware enablement case.
[Fix]
* bd39654a2282 bd39654a2282c1a
[Test Plan]
* An Ubuntu 20.04 (respectively 21.04) LPAR or z/VM guest is needed
that has access to at least one online crypto domain.
* Ideally using a CEX8 adapter (but can be too early to get one).
* Then get the patched kernel installed (see PPA below).
* And look for the /sys/devices/
* On top IBM has some more in-depth zcrypt tests (see also LP#1933805).
[Where problems could occur]
* First of all the modification are limited to:
the zcrypt driver ("/drivers/
"/drivers/
hence are s390x platform specific and crypto specific and
should even affect CEX8 cards only.
So in case anything fails, it's limited to s390x cryptography,
which usually allows sw fall-backs.
* The function signature of ap_queue_info and ap_test_queue got modified,
which may lead to issues if called with the old signatures,
but that would be identified by the test compile already.
* Some minor new structures like 'info', 'ml' got introduced,
but are properly declared and initialized.
* The way ap_queue_info and ap_card_create get filled and used was changed,
therefore in some code areas slightly different data might be expected,
if not properly adapted to the new way.
But a verification test will prove this.
* The actual msg length is now handled based on bufsize rather than len
and with that zq is calculated in a different way (using zcrypt_queue_alloc)
which may cause some side effects if not properly (alloc)
or not thoroughly done.
* in _zcrypt_send_cprb and _zcrypt_
and checks (if-stmts) were introduced, but they look sane.
* New code to identify older cards got added, since message sizes > 12kB
are supported by CEX8 and higher only.
The dispatcher responsible for choosing the right card and queue is aware
of the individual card AP bus message limit.
But already at the user space tools it should be ensured that the right
card is used.
* Nevertheless, the patch is not small, hence s390x hardware crypto
zcrypt driver needs to be properly re-tested.
[Other Info]
* The above commit/patch is upstream accepted with 5.14.
* Impish's Kernel 5.13 was already patched, based on LP#1933805.
* With that there is already a certain level of testing that was done
based on Impish (since the zcrypt driver is largely the same now with
these cherry-picks).
* Hence the SRU is only needed for Focal
and Hirsute (just to avoid regressions on upgrades).
__________
Toleration support for new IBM Z crypto hardware - Backport to focal (20.04)
Patch from kernel 5.14:
Summary: s390/AP: support new dynamic AP bus size limit
Description: This patch provides support for new dynamic AP bus
and AP bus core code. There is support for a new
field 'ml' from the TAPQ query which indicates the
per card AP bus message size limit. This TAPQ
this patch exploits this new field and thus makes
it possible to send/receive AP messages greater
than the current limit of 12K.
Upstream-ID: bd39654a2282c1a
tags: | added: architecture-s39064 bugnameltc-195656 severity-high targetmilestone-inin2004 |
Changed in ubuntu: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
affects: | ubuntu → linux (Ubuntu) |
description: | updated |
description: | updated |
information type: | Private → Public |
Changed in linux (Ubuntu Hirsute): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done-hirsute removed: verification-needed-hirsute |
Incl. in jammy (since jammy is 5.15), hence updating 'affects jammy' entry to 'Fix Released'.