[20.04 FEAT] Support/enhancement of NVMe IPL
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Release Notes for Ubuntu |
Fix Released
|
Undecided
|
Unassigned | ||
Ubuntu on IBM z Systems |
Fix Released
|
High
|
Skipper Bug Screeners | ||
linux (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Focal |
Fix Released
|
Medium
|
Unassigned | ||
Groovy |
Fix Released
|
Medium
|
Unassigned | ||
Hirsute |
Fix Released
|
Medium
|
Unassigned | ||
s390-tools (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Wishlist
|
Canonical Foundations Team | ||
Groovy |
Fix Released
|
Undecided
|
Unassigned | ||
Hirsute |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
SRU Justification: (focal)
==================
[Impact]
* The base for being able to IPL (boot) NVMe devices on s390x was introduced with kernel 5.8.
* This got now requested (for hardware enablement reasons) for Ubuntu 20.04 LTS as well.
* On top a brand new commit got upstream accepted that introduces support for NVMe IPL kernel parameters, which is not yet in groovy.
[Fix]
* cherry pick of commit 3737e8ee4f2fc7e
* cherry pick of commit 23a457b8d57dc8d
does not apply cleanly, hence the following backport:
https:/
* cherry pick of commit d9f12e48d08ec08
[Test Case]
* IBM z15 or LinuxONE III hardware is needed with an NVMe device attached to a LPAR.
* Install the patched kernel on focal/20.04 installation and make sure that zipl re-ran (the patched version of zipl with the s390-tools commit mentioned in this LP bug - or take the s390-tools version for groovy for testing purposes).
* If everything is in place (means patched kernel, as well as patched s390-tools/zipl) an installation from scratch on an NVMe devices should be possible - in case everything needed landed on an updated image.
With the 20.04.2 image that should be the case.
[Regression Potential]
* There is a certain regression risk with these patches, because:
* the 'zipl' (s390x-specific) boot-loader is touched
* if something is wrong there, in worst-case systems where the modified zipl ran may no longer be bootable!
* The modifications are targetted towards nvme devices ('blkext' driver), but they are closely related to zFCP devices and share some code parts,
* hence in worst case they could have an impact on zFCP devices, too.
* But this is very unlikely, since a (largely) separate IPL type 'nvme' got introduced and NVMe ipl is handled in separate case statements and functions.
* The patches are all upstream accepted (the first two with 5.8, that last with v5.10-rc1, hence the latter one is as of today in linux-next).
* A patched focal kernel was build and shared for further testing. I did some regression testing with the patched kernel on non-NVMe systems - the NVMe based tests need to be done by IBM (due to the lack of hardware).
* All modifications are limited to the s390x architecture and there again to the unique way of booting aka IPL (arch/s390/
[Other]
* The general NVMe ipl (boot) functionality in given with 3737e8ee4f2f "s390: nvme ipl" and 23a457b8d57d "s390: nvme reipl" and is already proven to work with groovy.
* New for groovy AND focal is only "s390/ipl: support NVMe IPL kernel parameters".
* The entire set of commits/patches is only new for focal.
* The SRU for SRUing "s390/ipl: support NVMe IPL kernel parameters" to groovy/20.10 was handled by a separate request.
_______
SRU Justification: (groovy)
==================
[Impact]
* The basics for being able to IPL (boot) from NVMe devices on s390x were introduced with kernel 5.8.
* This was tested and is proven to work with groovy.
* Now a patch was requested to be added to groovy that introduces support for NVMe IPL kernel parameters.
[Fix]
* d9f12e48d08ec08
[Test Case]
* IBM z15 or LinuxONE III hardware is needed with an NVMe device attached to a LPAR.
* Just check if NVMe kernel parameters can be passed over.
* Due to the lack of hardware this test needs to be done by IBM.
[Regression Potential]
* There is a certain regression risk with this patch, since:
* The handling of 'scpdata' is changed, and with that the way how kernel cmd-line parameters are extracted from the NVMe IPL block, that is passed by the firmware to the kernel at boot time.
* If broken such a hand over will not work for NVMe anymore - which wouldn't be a very big problem for now, since booting w/o still works fine (as it does today).
* But in worst case it could break the hand over of cmd-line parameters for FCP devices, since some code is shared or even harm ipl in general.
* The patch is upstream accepted (with v5.10-rc1 - as of today in linux-next) and a patched groovy kernel was build and shared for further testing.
* All modifications are limited to the s390x architecture and there again to the unique way of booting aka IPL (s390/boot/ipl*).
[Other]
* This is in preparation for getting IPL (boot) from NVMe device support on s390x backported to focal (for hardware enablement reasons).
* Without having this patch in groovy, one may face a regression during upgrade from groovy to focal.
* Since it's planned to have the hirsute kernel on 5.1x, it will have this patch sooner or later.
* However, since the today's hirsute kernel is just based on groovy, I've added hirsute to the SRU.
Related branches
- Lukas Märdian (community): Approve
-
Diff: 1194 lines (+1160/-0)5 files modifieddebian/changelog (+17/-0)
debian/patches/s390-tools-sru-lp1902179-focal.patch (+689/-0)
debian/patches/s390-tools-sru-lp1903984-focal.patch (+49/-0)
debian/patches/s390-tools-sru-lp1908371-focal.patch (+402/-0)
debian/patches/series (+3/-0)
CVE References
tags: | added: architecture-s39064 bugnameltc-188732 severity-high targetmilestone-inin2004 |
Changed in ubuntu: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
affects: | ubuntu → linux (Ubuntu) |
Changed in ubuntu-z-systems: | |
importance: | Undecided → High |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
Changed in linux (Ubuntu): | |
assignee: | Skipper Bug Screeners (skipper-screen-team) → Frank Heimes (fheimes) |
summary: |
- [20.04 FEAT|Support of NVMe IPL with Ubuntu 20.04 + [20.04 FEAT]Support of NVMe IPL with Ubuntu 20.04 (kernel+s390-tools) |
Changed in ubuntu-z-systems: | |
status: | New → Incomplete |
tags: | added: fr-890 |
Changed in ubuntu-z-systems: | |
status: | Incomplete → Triaged |
Changed in s390-tools (Ubuntu Focal): | |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
Changed in linux (Ubuntu Focal): | |
assignee: | nobody → Frank Heimes (fheimes) |
Changed in linux (Ubuntu Hirsute): | |
assignee: | Frank Heimes (fheimes) → nobody |
summary: |
- [20.04 FEAT]Support of NVMe IPL with Ubuntu 20.04 (kernel+s390-tools) + [20.04 FEAT] Support/enhancement of NVMe IPL |
information type: | Private → Public |
Changed in linux (Ubuntu Hirsute): | |
status: | Fix Released → In Progress |
Changed in linux (Ubuntu Hirsute): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Groovy): | |
importance: | Undecided → Medium |
description: | updated |
Changed in linux (Ubuntu Groovy): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in s390-tools (Ubuntu Focal): | |
importance: | Undecided → Wishlist |
Changed in linux (Ubuntu Hirsute): | |
status: | In Progress → Fix Committed |
tags: | removed: verification-needed-focal verification-needed-groovy |
tags: | added: verification-done-focal verification-done-groovy |
tags: | removed: verification-done-focal verification-done-groovy |
tags: | added: verification-done-focal verification-done-groovy |
Changed in s390-tools (Ubuntu Focal): | |
milestone: | none → ubuntu-20.04.2 |
Changed in s390-tools (Ubuntu Focal): | |
status: | Triaged → In Progress |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Released |
The s390x NVMe kernel support went upstream with kernel 5.8 (LP 1886792), so it's already in groovy (and with that in hirsute).
The s390-tools 2.13 and 2.14 came with NMVe IPL support (for zipl), hence this was done for groovy (and with that for hirsute) based on LP 1884721.
Hence I marked groovy and hirsute as already fix released.