[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 08/23] x86/xen_hello_world.xsplice: Test payload for patching 'xen_extra_version'. (v2)

On 02/12/2016 06:05 PM, Konrad Rzeszutek Wilk wrote:
This change demonstrates how to generate an xSplice ELF payload.

The idea here is that we want to patch in the hypervisor
the 'xen_version_extra' function with an function that will
return 'Hello World'. The 'xl info | grep extraversion'
will reflect the new value after the patching.

To generate this ELF payload file we need:
  - C code of the new code (xen_hello_world_func.c).
  - C code generating the .xsplice.funcs structure
  - The address of the old code (xen_extra_version). We
    retrieve it by  using 'nm --defined' on xen-syms.
  - The size of the new and old code for which we use
    nm --defined -S on our code and xen-syms respectively.

diff --git a/tools/misc/xsplice.lds b/tools/misc/xsplice.lds
new file mode 100644
index 0000000..f52eb8c
--- /dev/null
+++ b/tools/misc/xsplice.lds
@@ -0,0 +1,11 @@
+OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
+    /* The hypervisor expects ".xsplice.func", so change
+     * the ".data.xsplice_hello_world" to it. */
+    .xsplice.funcs : { *(*.xsplice_hello_world) }

I think this file can be dropped now, nothing uses it as far as I can see.

Ross Lagerwall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.