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

[Xen-devel] [PATCH v1] Livepatch ARM 64 implementation



Hey!

This is the first (non RFC) posting of the enablement of Livepatch under ARM64.

The patches are based on: [PATCH v3] Livepatch fixes and features for v4.8.
(https://lists.xen.org/archives/html/xen-devel/2016-08/msg01825.html)

And the git tree is:
 git://xenbits.xen.org/people/konradwilk/xen.git livepatch.v4.8.v3

I've only tested this under Foundation Platform with only one CPU working
(the other CPUs wouldn't boot up for some reason) and without a proper working
disk image (can't recall why, but it did have an initramfs) - I ended
up building the hypervisor with the livepatch built in and loading it during
dom0 execution (via timers), see
(http://xenbits.xen.org/gitweb/?p=people/konradwilk/xen.git;a=commit;h=39517b2b807025d0d63d4f042ada5eb3de32ff45)
[That patch is not part of this patchset of course]

Please take a look and I hope you will enjoy reviewing the patches!

The patchset contains:

Konrad Rzeszutek Wilk (9):
      livepatch: Bubble up sanity checks on Elf relocs
      x86/arm: Make 'make debug' work properly.
      x86/arm64: Move the ALT_[ORIG|REPL]_PTR macros to header files.
      arm/mm: Introduce modify_xen_mappings
      arm64/insn: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions
      livepatch: Initial ARM64 support.
      livepatch: ARM64: Ignore mapping symbols: $[a,d,x,p]
      livepatch: Move test-cases to common
      livepatch: tests: Make them compile under ARM64

 .gitignore                                         |   8 +-
 MAINTAINERS                                        |   2 +
 xen/Makefile                                       |   4 +-
 xen/arch/arm/Makefile                              |  16 +-
 xen/arch/arm/alternative.c                         |   4 -
 xen/arch/arm/arm32/Makefile                        |   2 +-
 xen/arch/arm/arm32/livepatch.c                     |  55 +++++
 xen/arch/arm/arm64/Makefile                        |   1 +
 xen/arch/arm/arm64/insn.c                          |  61 +++++
 xen/arch/arm/arm64/livepatch.c                     | 247 +++++++++++++++++++++
 xen/arch/arm/domain.c                              |   6 +
 xen/arch/arm/livepatch.c                           | 124 +++++++++--
 xen/arch/arm/livepatch.h                           |  28 +++
 xen/arch/arm/mm.c                                  |  21 +-
 xen/arch/x86/Makefile                              |   4 -
 xen/arch/x86/livepatch.c                           |  23 +-
 xen/common/Kconfig                                 |   2 +-
 xen/common/Makefile                                |   6 +
 xen/common/livepatch.c                             |  31 ++-
 xen/common/livepatch_elf.c                         |  17 +-
 xen/{arch/x86 => common}/test/Makefile             |  10 +-
 xen/{arch/x86 => common}/test/xen_bye_world.c      |   0
 xen/{arch/x86 => common}/test/xen_bye_world_func.c |   0
 xen/{arch/x86 => common}/test/xen_hello_world.c    |   0
 .../x86 => common}/test/xen_hello_world_func.c     |   7 +-
 xen/{arch/x86 => common}/test/xen_replace_world.c  |   0
 .../x86 => common}/test/xen_replace_world_func.c   |   0
 xen/include/asm-arm/alternative.h                  |   4 +
 xen/include/asm-arm/arm64/insn.h                   |  23 ++
 xen/include/asm-arm/config.h                       |   8 +-
 xen/include/asm-arm/current.h                      |   7 +
 xen/include/asm-arm/page.h                         |  11 +
 xen/include/asm-x86/alternative.h                  |   4 +
 xen/include/xen/elfstructs.h                       |  40 +++-
 xen/include/xen/livepatch.h                        |   4 +-
 35 files changed, 706 insertions(+), 74 deletions(-)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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