coordination #61203
closed[kernel][ltp][epic][grub] General solution for handling kernel parameters (debug_pagealloc=on)
100%
Description
We should decide which kernel params are needed and adapt our solution for it.
we had
- general parameters in grub (for all tests, added via add_grub_cmdline_settings() into GRUB_CMDLINE_LINUX_DEFAULT grub variable in /etc/default/grub)
- and ima_policy=tcb added via GRUB_PARAM openqa test variable and add_custom_grub_entries() as separate boot option in grub.
Recently we added debug_pagealloc=on among general parameters
https://github.com/os-autoinst/os-autoinst-distri-opensuse/commit/ba40311d3219f511408bd86a271044e08e574801
(as https://jira.suse.com/browse/SLE-9743; + some options are needed due https://jira.suse.com/browse/SLE-9505)
which found a problems with it in some QAM (ppc64le), QA (s390) and Tumbleweed tests (ppc64le)
https://bugzilla.suse.com/show_bug.cgi?id=1159455
https://bugzilla.suse.com/show_bug.cgi?id=1159096
While there is PR to temporarily revert debug_pagealloc=on
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/9206
we should decide what params we need and how to achieve it.
If we need more parameters, we can achieve it via either
- type some params (editing grub config before boot, solution we have never used for LTP)
- or extend add_custom_grub_entries() to support more special entries than just one
- or drop IMA parameter and reuse GRUB_PARAM for something else
- or generate yet another LTP image with different parameters (waste of disc space)
Updated by pvorel over 5 years ago
- Related to action #51743: [openqa] All LTP tests are failing on boot_ltp for openSUSE (o3) on [x86_64] added
Updated by MDoucha over 5 years ago
I propose turning GRUB_PARAMS
into a semicolon-separated list of extra boot options. Each list entry will represent one Grub menu choice.
Updated by pvorel over 5 years ago
- Assignee set to pvorel
- Target version changed from 454 to 445
+1 to this option. I'll implement it this sprint as it's quite urgent.
Next step would be to define desired setup we want. I suggest 1) default as it was, 2) debug_pagealloc=on for syscalls and CVE and 3) IMA.
IMHO booting non-default should be as a default set in boot_ltp (as it's already now for IMA), but I also add openqa variable LTP_GRUB_ITEM and LTP_GRUB_ITEM2 to optionally select different setup during runtime.
So the only thing which will not be supported is to add completely different parameter / delete parameter. Workaround for adding new parameter would be a custom build with GRUB_IMA (run test with INSTALL_LTP and GRUB_PARAM). Hope removing any parameter should never be needed.
Updated by okurz over 5 years ago
There are already multiple test variables available for help, e.g. EXTRABOOTPARAMS_BOOT_LOCAL to add variables, multiples if you like, to use during boot of an existing image, EXTRABOOTPARAMS_DELETE_CHARACTERS to delete characters at a certain position defined by EXTRABOOTPARAMS_DELETE_NEEDLE_TARGET . I used that to turn VIDEO=1024x768-16
defined on older, created qcow images into VIDEO=1024x768
to be compatible with non-cirrus graphics adapters.
Updated by pvorel over 5 years ago
Oliver, thanks for tips, good to know about them. We'd prefer to avoid needles, that's why I wrote add_custom_grub_entries() and boot_grub_item().
But I'm thinking about moving boot_grub_item() under certain variable into handle_grub().
Updated by pvorel over 5 years ago
PR for general solution select boot item: https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/9217
Updated by pvorel over 5 years ago
PR implement mdoucha's suggestion turning GRUB_PARAMS into a semicolon-separated list of extra boot options
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/9218
Updated by pvorel over 5 years ago
Both PRs are merged, now we should change setup. I suggest some tests with debug_pagealloc=on (probably syscalls and CVE), the rest without it.
Updated by pvorel over 5 years ago
GRUB_PARAM changed on both osd and o3 to GRUB_PARAM=debug_pagealloc=on;ima_policy=tcb
For tests using debug_pagealloc=on it's needed to add GRUB_BOOT_NONDEFAULT=1 (as there are more of them, for ltp_ima (single test) add GRUB_SELECT_FIRST_MENU=5
Added these test suites:
osd
- kotd_ltp_cve_debug_pagealloc
- ltp_syscalls_debug_pagealloc
kotd_ltp_syscalls_debug_pagealloc - ltp_cve_debug_pagealloc
- ltp_cve_spvm_debug_pagealloc
- ltp_syscalls_spvm_debug_pagealloc
o3
- ltp_cve_debug_pagealloc
- ltp_syscalls_debug_pagealloc
Updated by pvorel over 5 years ago
- Status changed from Feedback to Resolved
Broken ppc64le builds on Tumbleweed were fixed, by removing debug_pagealloc=on (and these using it are still failing, see
https://openqa.opensuse.org/tests/overview?distri=opensuse&version=Tumbleweed&build=20200104&groupid=32). There haven't been any SLES build yet, but it'll be fixed as well. This should also fix problems on s390x on SLES.
Problems with boot error on intel on Tumbleweed (#51743) still persists (no surprise).
Updated by MDoucha over 5 years ago
FYI: ltp_syscalls_debug_pagealloc
and ltp_cve_debug_pagealloc
added to QAM kernel job groups for SLE-12SP4+ and SLE-15* (all archs).
Updated by pvorel over 5 years ago
- Subject changed from [kernel][ltp][epic] General solution for handling kernel parameters (debug_pagealloc=on) to [kernel][ltp][epic][grub] General solution for handling kernel parameters (debug_pagealloc=on)
Updated by szarate over 4 years ago
- Tracker changed from action to coordination
Updated by szarate over 4 years ago
See for the reason of tracker change: http://mailman.suse.de/mailman/private/qa-sle/2020-October/002722.html
Updated by pcervinka over 4 years ago
- Target version changed from 457 to QE Kernel Done