[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v1 00/11] xSplice implementation
This is the initial implementation of xSplice, live patching for Xen. Patch series overview: Patch 1: Design document Patches 2, 5-11: Hypervisor implementation Patches 3, 4: Toolstack changes Live patches work at the function level by replacing functions. Any function may be replaced, but whether it semantically is safe to do so is up to the patch author. Live patches can contain bug frames, exception tables and alternative instructions (required when patching any non-trivial function). Patches are applied with the system in a quiescent state. This is the initial implementation and implements a usable subset of the design document. It is enough to apply interesting patches (for example, try XSA-148). A follow-up patch series implementing the remainder is expected in this release cycle. Although most of the code is architecture independent, there are a few bits which are arch dependent and these have only been developed for x86. There are stubs for arm (which have been compile-tested). There is a separate tool to generate patches. Currently this lives at: https://github.com/rosslagerwall/xsplice-build Konrad Rzeszutek Wilk (4): xsplice: Design document (v2). xen/xsplice: Hypervisor implementation of XEN_XSPLICE_op libxc: Implementation of XEN_XSPLICE_op in libxc. xen-xsplice: Tool to manipulate xsplice payloads. Ross Lagerwall (7): elf: Add relocation types to elfstructs.h xsplice: Add helper elf routines xsplice: Implement payload loading xsplice: Implement support for applying patches xsplice: Add support for bug frames xsplice: Add support for exception tables xsplice: Add support for alternatives .gitignore | 1 + docs/misc/xsplice.markdown | 999 ++++++++++++++++++++++++ tools/flask/policy/policy/modules/xen/xen.te | 1 + tools/libxc/include/xenctrl.h | 18 + tools/libxc/xc_misc.c | 283 +++++++ tools/misc/Makefile | 4 + tools/misc/xen-xsplice.c | 439 +++++++++++ xen/arch/arm/Makefile | 1 + xen/arch/arm/xsplice.c | 31 + xen/arch/x86/Makefile | 3 +- xen/arch/x86/alternative.c | 12 +- xen/arch/x86/domain.c | 4 + xen/arch/x86/extable.c | 36 +- xen/arch/x86/hvm/svm/svm.c | 2 + xen/arch/x86/hvm/vmx/vmcs.c | 2 + xen/arch/x86/setup.c | 7 + xen/arch/x86/traps.c | 30 +- xen/arch/x86/xsplice.c | 109 +++ xen/common/Makefile | 2 + xen/common/symbols.c | 7 + xen/common/sysctl.c | 6 + xen/common/xsplice.c | 1059 ++++++++++++++++++++++++++ xen/common/xsplice_elf.c | 122 +++ xen/include/asm-arm/nmi.h | 13 + xen/include/asm-x86/alternative.h | 1 + xen/include/asm-x86/uaccess.h | 5 + xen/include/asm-x86/x86_64/page.h | 2 + xen/include/public/sysctl.h | 157 ++++ xen/include/xen/elfstructs.h | 21 + xen/include/xen/kernel.h | 1 + xen/include/xen/xsplice.h | 42 + xen/include/xen/xsplice_elf.h | 44 ++ xen/xsm/flask/hooks.c | 4 + xen/xsm/flask/policy/access_vectors | 2 + 34 files changed, 3439 insertions(+), 31 deletions(-) create mode 100644 docs/misc/xsplice.markdown create mode 100644 tools/misc/xen-xsplice.c create mode 100644 xen/arch/arm/xsplice.c create mode 100644 xen/arch/x86/xsplice.c create mode 100644 xen/common/xsplice.c create mode 100644 xen/common/xsplice_elf.c create mode 100644 xen/include/xen/xsplice.h create mode 100644 xen/include/xen/xsplice_elf.h -- 2.4.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |