[SRU][F][H][PATCH 0/1] zcrypt DD: Toleration for new IBM Z Crypto Hardware (LP: 1954680)
frank.heimes at canonical.com
frank.heimes at canonical.com
Tue Dec 14 11:34:17 UTC 2021
BugLink: https://bugs.launchpad.net/bugs/1954680
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 bd39654a2282c1a51c044575a6bc00d641d5dfd1 "s390/AP: support new dynamic AP bus size limit"
[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/ap/cardxx/max_msg_size sysfs attributes.
* 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/s390/crypto/ap_*.*" and
"/drivers/s390/crypto/zcrypt_*.*")
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_send_ep11_cprb some additional calculations
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 the patched zcrypt driver is already tested to some extend
based on Impish (since with these cherry-picks the zcrypt driver is largely
the same now).
* Hence the SRU is only needed for Focal
and Hirsute (just to avoid regressions on upgrades).
Harald Freudenberger (1):
s390/AP: support new dynamic AP bus size limit
drivers/s390/crypto/ap_bus.c | 50 +++++++++++++++++-------
drivers/s390/crypto/ap_bus.h | 11 ++++--
drivers/s390/crypto/ap_card.c | 16 +++++++-
drivers/s390/crypto/ap_queue.c | 2 +-
drivers/s390/crypto/zcrypt_api.c | 6 +++
drivers/s390/crypto/zcrypt_cex4.c | 9 ++---
drivers/s390/crypto/zcrypt_msgtype50.c | 26 ++++++-------
drivers/s390/crypto/zcrypt_msgtype6.c | 54 ++++++++++++++------------
drivers/s390/crypto/zcrypt_msgtype6.h | 2 -
drivers/s390/crypto/zcrypt_queue.c | 6 +--
10 files changed, 116 insertions(+), 66 deletions(-)
--
2.25.1
More information about the kernel-team
mailing list