From: Petr Mladek <pmladek@suse.com>
To: Jiri Kosina <jikos@kernel.org>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Miroslav Benes <mbenes@suse.cz>
Cc: Joe Lawrence <joe.lawrence@redhat.com>,
Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
Nicolai Stange <nstange@suse.de>,
live-patching@vger.kernel.org, linux-kernel@vger.kernel.org,
Petr Mladek <pmladek@suse.com>
Subject: [PATCH v4 0/5] livepatch: new API to track system state changes
Date: Wed, 30 Oct 2019 16:43:08 +0100 [thread overview]
Message-ID: <20191030154313.13263-1-pmladek@suse.com> (raw)
Hi,
this is another piece in the puzzle that helps to maintain more
livepatches.
Especially pre/post (un)patch callbacks might change a system state.
Any newly installed livepatch has to somehow deal with system state
modifications done be already installed livepatches.
This patchset provides a simple and generic API that
helps to keep and pass information between the livepatches.
It is also usable to prevent loading incompatible livepatches.
Changes since v3:
+ selftests compilation error [kbuild test robot]
+ fix copyright in selftests [Joe]
+ used macros for the module names in selftests [Joe]
+ allow zero state version [Josh]
+ slightly refactor the code for checking state version [Josh]
+ fix few typos reported by checkpatch.pl [Petr]
+ added Acks [Joe]
Changes since v2:
+ Typo fixes [Miroslav]
+ Move the documentation at the end of the list [Miroslav]
+ Add Miroslav's acks
Changes since v1:
+ Use "unsigned long" instead of "int" for "state.id" [Nicolai]
+ Use "unsigned int" instead of "int" for "state.version [Petr]
+ Include "state.h" to avoid warning about non-static func [Miroslav]
+ Simplify logic in klp_is_state_compatible() [Miroslav]
+ Document how livepatches should handle the state [Nicolai]
+ Fix some typos, formulation, module metadata [Joe, Miroslav]
Petr Mladek (5):
livepatch: Keep replaced patches until post_patch callback is called
livepatch: Basic API to track system state changes
livepatch: Allow to distinguish different version of system state
changes
livepatch: Documentation of the new API for tracking system state
changes
livepatch: Selftests of the API for tracking system state changes
Documentation/livepatch/index.rst | 1 +
Documentation/livepatch/system-state.rst | 167 +++++++++++++++++++++
include/linux/livepatch.h | 17 +++
kernel/livepatch/Makefile | 2 +-
kernel/livepatch/core.c | 44 ++++--
kernel/livepatch/core.h | 5 +-
kernel/livepatch/state.c | 119 +++++++++++++++
kernel/livepatch/state.h | 9 ++
kernel/livepatch/transition.c | 12 +-
lib/livepatch/Makefile | 5 +-
lib/livepatch/test_klp_state.c | 162 ++++++++++++++++++++
lib/livepatch/test_klp_state2.c | 191 ++++++++++++++++++++++++
lib/livepatch/test_klp_state3.c | 5 +
tools/testing/selftests/livepatch/Makefile | 3 +-
tools/testing/selftests/livepatch/test-state.sh | 180 ++++++++++++++++++++++
15 files changed, 901 insertions(+), 21 deletions(-)
create mode 100644 Documentation/livepatch/system-state.rst
create mode 100644 kernel/livepatch/state.c
create mode 100644 kernel/livepatch/state.h
create mode 100644 lib/livepatch/test_klp_state.c
create mode 100644 lib/livepatch/test_klp_state2.c
create mode 100644 lib/livepatch/test_klp_state3.c
create mode 100755 tools/testing/selftests/livepatch/test-state.sh
--
2.16.4
next reply other threads:[~2019-10-30 15:43 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-30 15:43 Petr Mladek [this message]
2019-10-30 15:43 ` [PATCH v4 1/5] livepatch: Keep replaced patches until post_patch callback is called Petr Mladek
2019-10-30 15:43 ` [PATCH v4 2/5] livepatch: Basic API to track system state changes Petr Mladek
2019-10-30 15:43 ` [PATCH v4 3/5] livepatch: Allow to distinguish different version of " Petr Mladek
2019-10-30 15:43 ` [PATCH v4 4/5] livepatch: Documentation of the new API for tracking " Petr Mladek
2019-10-30 15:43 ` [PATCH v4 5/5] livepatch: Selftests of the " Petr Mladek
2019-10-31 18:06 ` [PATCH v4 0/5] livepatch: new API to track " Josh Poimboeuf
2019-11-01 12:14 ` Petr Mladek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191030154313.13263-1-pmladek@suse.com \
--to=pmladek@suse.com \
--cc=jikos@kernel.org \
--cc=joe.lawrence@redhat.com \
--cc=jpoimboe@redhat.com \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=nstange@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).