|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 11/12] livepatch: Add metadata runtime retrieval mechanism
On Tue, Aug 27, 2019 at 08:46:23AM +0000, Pawel Wieczorkiewicz wrote:
> Extend the livepatch list operation to fetch also payloads' metadata.
> This is achieved by extending the sysctl list interface with 2 extra
> guest handles:
> * metadata - an array of arbitrary size strings
> * metadata_len - an array of metadata strings' lengths (uin32_t each)
>
> Payloads' metadata is a string of arbitrary size and does not have an
> upper bound limit. It may also vary in size between payloads.
>
> In order to let the userland allocate enough space for the incoming
> data add a metadata total size field to the list sysctl operation and
> fill it with total size of all payloads' metadata.
>
> Extend the libxc to handle the metadata back-to-back data transfers
> as well as metadata length array data transfers.
>
> The xen-livepatch userland tool is extended to always display the
> metadata for each received module. The metadata is received with the
> following format: key=value\0key=value\0...key=value\0. The format is
> modified to the following one: key=value;key=value;...key=value.
> The new format allows to easily parse the metadata for a given module
> by a machine.
>
> Signed-off-by: Pawel Wieczorkiewicz <wipawel@xxxxxxxxx>
> Reviewed-by: Andra-Irina Paraschiv <andraprs@xxxxxxxxxx>
> Reviewed-by: Martin Pohlack <mpohlack@xxxxxxxxx>
> Reviewed-by: Norbert Manthey <nmanthey@xxxxxxxxx>
> ---
> Changed since v1:
> * added corresponding documentation
> * make metadata optional (do not display it when given payload
> does not have it)
>
> docs/misc/livepatch.pandoc | 31 ++++++++++++++++-----
> tools/libxc/include/xenctrl.h | 22 +++++++++++----
> tools/libxc/xc_misc.c | 64
> +++++++++++++++++++++++++++++++++++--------
> tools/misc/xen-livepatch.c | 43 +++++++++++++++++++++++------
> xen/common/livepatch.c | 22 +++++++++++----
> xen/include/public/sysctl.h | 19 +++++++++----
> 6 files changed, 157 insertions(+), 44 deletions(-)
And it may be worth folding this in:
diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index a7857d3a2e..3f088e74b2 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -79,9 +79,17 @@ config.h: xen_hello_world_func.o
xen_hello_world.o: config.h
.PHONY: $(LIVEPATCH)
-$(LIVEPATCH): xen_hello_world_func.o xen_hello_world.o note.o xen_note.o
+$(LIVEPATCH): xen_hello_world_func.o xen_hello_world.o note.o xen_note.o
modinfo.o
$(LD) $(LDFLAGS) $(build_id_linker) -r -o $(LIVEPATCH) $^
+.PHONY: modinfo.o
+modinfo.o:
+ (set -e; \
+ printf "LIVEPATCH_RULEZ\0") > $@.bin
+ $(OBJCOPY) $(OBJCOPY_MAGIC) \
+
--rename-section=.data=.modinfo,alloc,load,readonly,data,contents -S $@.bin $@
+ #rm -f $@.bin
+
#
# This target is only accessible if CONFIG_LIVEPATCH is defined, which
# depends on $(build_id_linker) being available. Hence we do not
.. which the test-case can test for.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |