** Description changed: + SRU Justification: + ================== + + [Impact] + + * Hardware diagnose data (diag 318) of KVM guest kernel cannot be + handled. + + * A fix is needed to enhance problem determination of guest kernel under + KVM using DIAG 0x318 instruction execution. + + * The s390x diagnose 318 instruction sets the control program name code + (CPNC) and control program version code (CPVC) to provide useful + information regarding the OS during debugging. + + * The CPNC is explicitly set to 4 to indicate a Linux/KVM environment. + + [Fix] + + * In general the following 4 commits are needed: + + * 3fd8417f2c728d810a3b26d7e2008012ffb7fd01 3fd8417f2c72 "KVM: s390: add debug statement for diag 318 CPNC data" + https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1953334/+attachment/5545726/+files/0004-KVM-s390-add-debug-statement-for-diag-318-CPNC-data.patch + + * 6cbf1e960fa52e4c63a6dfa4cda8736375b34ccc 6cbf1e960fa5 "KVM: s390: remove diag318 reset code" + https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1953334/+attachment/5545725/+files/0003-KVM-s390-remove-diag318-reset-code.patch + + * 23a60f834406c8e3805328b630d09d5546b460c1 23a60f834406 "s390/kvm: diagnose 0x318 sync and reset" + https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1953334/+attachment/5545724/+files/0002-s390-kvm-diagnose-0x318-sync-and-reset.patch + + * a23816f3cdcbffe5dc6e8c331914b3f51b87c2f3 a23816f3cdcb "s390/setup: diag 318: refactor struct" + https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1953334/+attachment/5545723/+files/0001-s390-setup-diag-318-refactor-struct.patch + + * For jammy, hirsute and impish only the first commit is needed, the + others are already in. + + * For focal all 4 commits are needed, but since they do not apply + cleanly on focal, the attached backports need to be used instead. + + [Test Case] + + * Setup an IBM Z or LinuxONE LPAR with Ubuntu Server as KVM host. + + * And setup an Ubuntu KVM virtual on top. + + * It can then be observed if the CPNC (diag318 data) has been + successfully set by looking at the s390dbf messages for the KVM guest. + + * The CPNC will always be 4 (denotes Linux environment). + + * Another way to test this is by running the sync_regs_test under + tools/testing/selftests/kvm/s390x/sync_regs_test. Just running the + kernel self test suite can trigger this. + + [Where problems could occur] + + * The approach here is to provide additional debug and diagnose + information on top. + + * Hence even if the diag318 changes are broken, the existing + functionality shouldn't be harmed. + + * The changes themselves are relatively discernible and mostly introduce + new structures. + + * However, with the functional changes broken code could be introduced + (e.g. due to erroneous pointer arithmetic for example) that does not + compile or causes crashes. But this is what the test builds are for + (https://launchpad.net/~fheimes/+archive/ubuntu/lp1953334). + + * On top the diag318 diagnose data might not properly provided - maybe + empty or wrong. Again that is what the test builds and the verification + later is targeted at. + + * Since diag318 is s390x specific, all the modifications touch s390x + code only. (in arch/s390/kvm/ kvm-s390.c and vsie.c, + arch/s390/kernel/setup.c, arch/s390/include/asm/ kvm_host.h, kvm.h and + diag.h). At least no other other architecture will be affected. + + * Well, there is one tiny bit of a common code change, but it's just a + new define statement in include/uapi/linux/kvm.h ('#define + KVM_CAP_S390_DIAG318 186'). + + [Other] + + * Request was to add the patches to focal / 20.04, but to avoid + potential regressions on upgrades, the patches need to be added to + jammy, impish and hirsute, too. + + * As mentioned above, Jammy, Hirsute and Impish includes almost + everything needed, except 3fd8417f2c72 "KVM: s390: add debug statement + for diag 318 CPNC data". + + * Hence the SRU is for Focal, Jammy, Hirsute and Impish, but less + invasive for Jammy, Hirsute and Impish, also because commit 3fd8417f2c72 + can be cleanly cherry-picked form there. + + * LP#1953338 is related to this bug and covers the qemu/KVM bits. + __________ + Hardware diagnose data (diag 318) of KVM guest kernel cannot be handled. Fix needed to enhance problem determination of guest kernel under KVM
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1953334 Title: [UBUNTU 20.04] KVM hardware diagnose data improvements for guest kernel - kernel part To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/1953334/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs