[SRU][jammy][PULL] Kernel livepatch support for s390x
John Cabaj
john.cabaj at canonical.com
Fri Mar 3 23:06:03 UTC 2023
BugLink: https://bugs.launchpad.net/bugs/1639924 (Kernel livepatch support for s390x)
[Impact]
* Enables Livepatch support for Jammy s390x generic kernel
[Fix]
b56340e565fd ("UBUNTU: [Config] s390x: Removing UBSAN from configuration")
f0bd174678a9 ("UBUNTU: [Config] Enable EXPOLINE_EXTERN on s390x")
145dd7c7bfc6 ("s390/nospec: build expoline.o for modules_prepare target")
ad24b243a0be ("bug: Use normal relative pointers in 'struct bug_entry'")
9c018ab00f18 ("s390/nospec: align and size extern thunks")
110252959a61 ("s390/nospec: add an option to use thunk-extern")
9183918aabab ("s390/nospec: generate single register thunks if possible")
f08372d421dd ("s390: remove unused expoline to BC instructions")
d1de041f86ad ("s390/entry: remove unused expoline thunk")
376e067eb888 ("sched: Improve wake_up_all_idle_cpus() take #2")
16fa7242e5b9 ("sched,livepatch: Use wake_up_if_idle()")
3a133e568eea ("sched: Simplify wake_up_*idle*()")
360b90e726cd ("sched,livepatch: Use task_call_func()")
3c01d492a326 ("sched,rcu: Rework try_invoke_on_locked_down_task()")
2a989b8ace35 ("sched: Improve try_invoke_on_locked_down_task()")
[Test Case]
* Boot test
* Tested a Livepatch (patch to /proc/meminfo module)
[Other Info]
* Requires patch to GCC-11.3, removing gcc-ibmz-plt-revert.diff from debian/patches and debian/rules.patch (LP#2002429)
* UBSAN (Undefined Behavior Santizer) configuration was removed from s390x as kpatch-build could not find symbols
* kpatch update being considered for UBSAN issue (https://github.com/dynup/kpatch/issues/1328)
[Where things could go wrong]
* Functionality already exists upstream, kernel was boot and Livepatch tested - should have no regressions
* s390x UBSAN functionality no longer included, may not catch previously caught undefined behavior
-----
The following changes since commit ed81d4519af756cfde8c3c02b495c6006b6ee0e9:
UBUNTU: Start new release (2023-03-02 21:29:10 -0600)
are available in the git repository at:
git+ssh://user@kathleen/home/john-cabaj/for-review/jammy-s390x-livepatch s390x-livepatch
for you to fetch changes up to b56340e565fdae9b6fc53b573e01194435a65e3e:
UBUNTU: [Config] s390x: Removing UBSAN from configuration (2023-03-02 21:36:26 -0600)
----------------------------------------------------------------
Dimitri John Ledkov (1):
UBUNTU: [Config] Enable EXPOLINE_EXTERN on s390x
John Cabaj (1):
UBUNTU: [Config] s390x: Removing UBSAN from configuration
Josh Poimboeuf (1):
bug: Use normal relative pointers in 'struct bug_entry'
Peter Zijlstra (6):
sched: Improve try_invoke_on_locked_down_task()
sched,rcu: Rework try_invoke_on_locked_down_task()
sched,livepatch: Use task_call_func()
sched: Simplify wake_up_*idle*()
sched,livepatch: Use wake_up_if_idle()
sched: Improve wake_up_all_idle_cpus() take #2
Vasily Gorbik (6):
s390/entry: remove unused expoline thunk
s390: remove unused expoline to BC instructions
s390/nospec: generate single register thunks if possible
s390/nospec: add an option to use thunk-extern
s390/nospec: align and size extern thunks
s390/nospec: build expoline.o for modules_prepare target
arch/arm64/include/asm/asm-bug.h | 4 ++--
arch/powerpc/include/asm/bug.h | 14 ++++++++------
arch/riscv/include/asm/bug.h | 4 ++--
arch/s390/Kconfig | 15 +++++++++++++++
arch/s390/Makefile | 20 +++++++++++++++-----
arch/s390/include/asm/bug.h | 5 +++--
arch/s390/include/asm/nospec-insn.h | 91 +++++++++++++++++++++++++++++++++++--------------------------------------------------------
arch/s390/kernel/entry.S | 1 -
arch/s390/kernel/nospec-branch.c | 25 +++++--------------------
arch/s390/lib/Makefile | 2 ++
arch/s390/lib/expoline/Makefile | 3 +++
arch/s390/lib/expoline/expoline.S | 12 ++++++++++++
arch/s390/tools/gcc-thunk-extern.sh | 24 ++++++++++++++++++++++++
arch/x86/include/asm/bug.h | 2 +-
debian.master/config/annotations | 5 +++--
debian.master/config/config.common.ubuntu | 2 +-
debian/rules.d/2-binary-arch.mk | 4 ++++
include/linux/sched/idle.h | 4 ++++
include/linux/wait.h | 3 ++-
kernel/livepatch/transition.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------
kernel/rcu/tasks.h | 12 ++++++------
kernel/rcu/tree_stall.h | 8 ++++----
kernel/sched/core.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++------------------------------------
kernel/smp.c | 12 +++++-------
lib/bug.c | 15 +++++++--------
scripts/mod/modpost.c | 5 +++++
26 files changed, 263 insertions(+), 207 deletions(-)
create mode 100644 arch/s390/lib/expoline/Makefile
create mode 100644 arch/s390/lib/expoline/expoline.S
create mode 100755 arch/s390/tools/gcc-thunk-extern.sh
More information about the kernel-team
mailing list