[PATCH v2 0/4] livepatch: Add garbage collection for shadow variables

Marcos Paulo de Souza
2022-10-26T19:41:46Z

Hello,

This is the v2 of the livepatch shadow GC patches. The changes are minor since
nobody asked for for big code changes.

Changes from v1:
* Reworked commit messages (Petr)
* Added my SoB which was missing in some patches, or the ordering was wrong. (Josh)
* Change __klp_shadow_get_or_use to __klp_shadow_get_or_add_locked and add a comment (Petr)
* Add lockdep_assert_held on __klp_shadow_get_or_add_locked (Petr)
about it's meaning (Petr)
* CCing LKML (Josh)

Some observations:
* Petr has reviewed some of the patches that we created. I kept the Reviewed-by
tags since he wrote the patches some time ago and now he reviewed them again
on the ML.
* There were questions about possible problems about using klp_shadow_types
instead of using ids, but Petr already explained that internally it still uses
the id to find the correct livepatch.
* Regarding the possibility of multiple patches use the same ID, the problem
already existed before. Petr suggested using a "stringified" version using
name and id, but nobody has commented yet. I can implement such feature in a
v3 if necessary.

Marcos Paulo de Souza (2):
livepatch/shadow: Introduce klp_shadow_type structure
livepatch/shadow: Add garbage collection of shadow variables

Petr Mladek (2):
livepatch/shadow: Separate code to get or use pre-allocated shadow
variable
livepatch/shadow: Separate code removing all shadow variables for a
given id

include/linux/livepatch.h | 50 ++-
kernel/livepatch/core.c | 39 +++
kernel/livepatch/core.h | 1 +
kernel/livepatch/shadow.c | 297 +++++++++++++-----
kernel/livepatch/transition.c | 4 +-
lib/livepatch/test_klp_shadow_vars.c | 119 ++++---
samples/livepatch/livepatch-shadow-fix1.c | 24 +-
samples/livepatch/livepatch-shadow-fix2.c | 34 +-
.../selftests/livepatch/test-shadow-vars.sh | 2 +-
9 files changed, 417 insertions(+), 153 deletions(-)

--
2.37.3