lkml.org 
[lkml]   [2017]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v3] livepatch: shadow variables
Date
Hi all,

This is v3 of the livepatch shadow variable API. v2 collected a bunch
of great feedback on terminology, use cases and concurrency notes which
I've tried to incorporate here.

Here's a high-level sketch of v2 changes:

- Overall

- Squash into a one patch, makes for finding terms and code across
docs/implementation/example easier

- Variable naming:
- obj, original data -> obj, parent object
- num, numerical description of new data -> id, data identifier
- new_data -> data
- new_size -> size

- Documentation

- API summary: s/klp_shadow_detach/klp_shadow_detach_all
- describe uses for the data id (versions, class/type, etc)
- clarify that shadow data is a copy
- fix use-cases - use one upstream commit and steal Petr's example for
klp_shadow_get_or_attach()

- Implementation

- Modify klp_shadow_get_or_attach() to WARN and return NULL if shadow
variable already exists

- Add klp_shadow_update_or_attach() to update if shadow variable already
exists


- Sample modules

- s/_thread/_work_func
- use system workqueue, DECLARE_DELAYED_WORK
- use XXX_PERIOD constants
- overhaul usage/comments, drop the verbose dmesg logs

Joe Lawrence (1):
livepatch: introduce shadow variable API

Documentation/livepatch/shadow-vars.txt | 217 +++++++++++++++++
include/linux/livepatch.h | 10 +
kernel/livepatch/Makefile | 2 +-
kernel/livepatch/shadow.c | 383 ++++++++++++++++++++++++++++++
samples/Kconfig | 5 +-
samples/livepatch/Makefile | 3 +
samples/livepatch/livepatch-shadow-mod.c | 222 +++++++++++++++++
samples/livepatch/livepatch-shadow-fix1.c | 174 ++++++++++++++
samples/livepatch/livepatch-shadow-fix2.c | 167 +++++++++++++
9 files changed, 1179 insertions(+), 4 deletions(-)
create mode 100644 Documentation/livepatch/shadow-vars.txt
create mode 100644 kernel/livepatch/shadow.c
create mode 100644 samples/livepatch/livepatch-shadow-mod.c
create mode 100644 samples/livepatch/livepatch-shadow-fix1.c
create mode 100644 samples/livepatch/livepatch-shadow-fix2.c

--
1.8.3.1

\
 
 \ /
  Last update: 2017-07-28 19:26    [W:0.077 / U:0.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site