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

[Xen-devel] [Very RFC PATCH] Livepatch - initial ARM64/32 support.



Hey!

Over the last couple of months in my spare time I was playing
with making livepatch work with ARM64 (using the FoundationModel
simulator) and I finally got it working tonight.

Sending out the patches just in case they don't work tomorrow :-)

The ARM32 part is going slowly - as I don't have a simulator
and using a real board takes time.

As you can see from the diffstat there is some room
for improvement:
 - The 'tests' - they are now in x86 and arm - and they are quite
   similar. My thinking is to move them to 'common' ? 
 - There is room to unify some of the ELF relocation checks as
   they are exactly the same across architectures.

There is also an ugly implementation of modify_xen_mappings.
I am hoping the ARM maintainers could provide some input on
how they would like me to implement this.

Thanks!

 xen/arch/arm/Makefile                      |  14 +-
 xen/arch/arm/arm32/Makefile                |   2 +-
 xen/arch/arm/arm32/livepatch.c             | 150 ++++++++++++++++
 xen/arch/arm/arm64/Makefile                |   1 +
 xen/arch/arm/arm64/insn.c                  |  41 +++++
 xen/arch/arm/arm64/livepatch.c             | 268 +++++++++++++++++++++++++++++
 xen/arch/arm/livepatch.c                   |  84 ++++++---
 xen/arch/arm/mm.c                          |  28 ++-
 xen/arch/arm/test/Makefile                 |  85 +++++++++
 xen/arch/arm/test/xen_bye_world.c          |  34 ++++
 xen/arch/arm/test/xen_bye_world_func.c     |  22 +++
 xen/arch/arm/test/xen_hello_world.c        |  69 ++++++++
 xen/arch/arm/test/xen_hello_world_func.c   |  26 +++
 xen/arch/arm/test/xen_replace_world.c      |  33 ++++
 xen/arch/arm/test/xen_replace_world_func.c |  22 +++
 xen/common/Kconfig                         |   2 +-
 xen/common/livepatch.c                     |  12 +-
 xen/include/asm-arm/arm64/insn.h           |   2 +
 xen/include/asm-arm/current.h              |   7 +
 xen/include/asm-arm/mm.h                   |   1 +
 xen/include/xen/elfstructs.h               |  35 ++++
 21 files changed, 905 insertions(+), 33 deletions(-)

Konrad Rzeszutek Wilk (3):
      mm/arm: Introduce modify_xen_mappings
      insn: Add arch64_insn_gen_branch_imm to generate branch
      livepatch: Initial ARM32/64 support.


_______________________________________________
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®.