[GIT PULL] livepatching for 4.12
From: Jiri Kosina
Date: Tue May 02 2017 - 15:14:24 EST
Linus,
please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git for-linus
to receive live patching updates for 4.12 merge window.
Notice (not to go into the merge log): all the patches that are touching
other code (especially arch-specific) have been Reviewed/Acked by the
appropriate maintainer(s). There are three minor merge conflicts pending
(as reported in linux-next); the respective reports are:
http://lkml.kernel.org/r/20170322134123.73f29daa@xxxxxxxxxxxxxxxx
http://lkml.kernel.org/r/20170323142734.38b03846@xxxxxxxxxxxxxxxx
http://lkml.kernel.org/r/20170328151341.7ab5a45b@xxxxxxxxxxxxxxxx
All three are more or less of a same nature (adding defines for constants
or structure fields to a similar place, and one context conflict) and very
easy to resolve. Currently the only one that has already landed in your
tree is the first one; the two other you'll be getting while merging s390
and security trees.
If you want me to prepare a branch for you to pull with the resolved
conflict(s), please let me know.
Thanks.
=====
- per-task consistency model is being added for architectures that support
reliable stack dumping (extending this, currently rather trivial set, is
currently in the works). This extends the nature of the types of patches
that can be applied by live patching infrastructure. The code stems from
the design proposal made [1] back in November 2014. It's a hybrid of SUSE's
kGraft and RH's kpatch, combining advantages of both: it uses kGraft's
per-task consistency and syscall barrier switching combined with
kpatch's stack trace switching. There are also a number of fallback
options which make it quite flexible. Most of the heavy lifting done by
Josh Poimboeuf with help from Miroslav Benes and Petr Mladek
- patch module load time optimization from Zhou Chengming
- a few assorted small fixes
[1] https://lkml.kernel.org/r/20141107140458.GA21774@xxxxxxx
=====
----------------------------------------------------------------
Jiri Kosina (1):
livepatch: make klp_mutex proper part of API
Jiri Slaby (1):
livepatch/s390: reorganize TIF thread flag bits
Josh Poimboeuf (14):
stacktrace/x86: add function for detecting reliable stack traces
x86/entry: define _TIF_ALLWORK_MASK flags explicitly
livepatch: create temporary klp_update_patch_state() stub
livepatch/x86: add TIF_PATCH_PENDING thread flag
livepatch/powerpc: add TIF_PATCH_PENDING thread flag
livepatch: separate enabled and patched states
livepatch: remove unnecessary object loaded check
livepatch: move patching functions into patch.c
livepatch: use kstrtobool() in enabled_store()
livepatch: store function sizes
livepatch: change to a per-task consistency model
livepatch: add /proc/<pid>/patch_state
livepatch: allow removal of a disabled patch
livepatch: add missing printk newlines
Miroslav Benes (1):
livepatch/s390: add TIF_PATCH_PENDING thread flag
Petr Mladek (1):
livepatch: Cancel transition a safe way for immediate patches
Zhou Chengming (1):
livepatch: Reduce the time of finding module symbols
Documentation/ABI/testing/sysfs-kernel-livepatch | 8 +
Documentation/filesystems/proc.txt | 18 +
Documentation/livepatch/livepatch.txt | 214 +++++++--
arch/Kconfig | 6 +
arch/powerpc/include/asm/thread_info.h | 4 +-
arch/powerpc/kernel/signal.c | 4 +
arch/s390/include/asm/thread_info.h | 24 +-
arch/s390/kernel/entry.S | 31 +-
arch/x86/Kconfig | 1 +
arch/x86/entry/common.c | 9 +-
arch/x86/include/asm/thread_info.h | 13 +-
arch/x86/include/asm/unwind.h | 6 +
arch/x86/kernel/stacktrace.c | 96 +++-
arch/x86/kernel/unwind_frame.c | 2 +
fs/proc/base.c | 15 +
include/linux/init_task.h | 9 +
include/linux/livepatch.h | 68 ++-
include/linux/sched.h | 3 +
include/linux/stacktrace.h | 9 +-
kernel/fork.c | 3 +
kernel/livepatch/Makefile | 2 +-
kernel/livepatch/core.c | 450 +++++++-----------
kernel/livepatch/core.h | 6 +
kernel/livepatch/patch.c | 272 +++++++++++
kernel/livepatch/patch.h | 33 ++
kernel/livepatch/transition.c | 553 +++++++++++++++++++++++
kernel/livepatch/transition.h | 14 +
kernel/sched/idle.c | 4 +
kernel/stacktrace.c | 12 +-
samples/livepatch/livepatch-sample.c | 18 +-
30 files changed, 1548 insertions(+), 359 deletions(-)
create mode 100644 kernel/livepatch/core.h
create mode 100644 kernel/livepatch/patch.c
create mode 100644 kernel/livepatch/patch.h
create mode 100644 kernel/livepatch/transition.c
create mode 100644 kernel/livepatch/transition.h
--
Jiri Kosina
SUSE Labs