All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] Livepatch for ARM 64 and 32.
@ 2016-08-25 13:37 Konrad Rzeszutek Wilk
  2016-08-25 13:37 ` [PATCH v2 01/20] livepatch: Bubble up sanity checks on Elf relocs Konrad Rzeszutek Wilk
                   ` (20 more replies)
  0 siblings, 21 replies; 72+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-08-25 13:37 UTC (permalink / raw)
  To: xen-devel, konrad, ross.lagerwall, sstabellini, julien.grall

Hey!

Since v1 (and RFC): [https://lists.xen.org/archives/html/xen-devel/2016-08/msg01835.html]
 - Acted on most all comments.
 - Added ARM32 support.

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

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

There are two outstanding questions that should be addressed at some point:
 -  #16 "livepatch: tests: Make them compile under ARM64"
    We chatted about adding a specific CPU bit (LIVEPATCH) so that alternative
    code always gets exercised. This being for both x86 and ARM. But this has
    a side effect that it gets exposed to the toolstack and can also be
    exposed to the guests. I think it is better if we do not do that
    so left it to be enabled based on the most common errata (or feature
    on x86).
 -  #13 "livepatch: Initial ARM64 support."
    Need to look in erratum #843419 on some Cortex-A53 and figuring
    out how to avoid payloads having R_AARCH64_ADR_PREL_PG_HI21 relocations.
    
But beside that, please enjoy the patchset! Hopefully I didn't miss
any comments - if I did, please remind me!

 .gitignore                                         |   8 +-
 MAINTAINERS                                        |   2 +
 xen/Makefile                                       |   5 +-
 xen/arch/arm/Makefile                              |  16 +-
 xen/arch/arm/alternative.c                         |  50 ++--
 xen/arch/arm/arm32/Makefile                        |   1 +
 xen/arch/arm/arm32/livepatch.c                     | 286 ++++++++++++++++++
 xen/arch/arm/arm64/Makefile                        |   1 +
 xen/arch/arm/arm64/insn.c                          |  61 ++++
 xen/arch/arm/arm64/livepatch.c                     | 330 +++++++++++++++++++++
 xen/arch/arm/domain.c                              |   6 +
 xen/arch/arm/livepatch.c                           | 135 +++++++--
 xen/arch/arm/mm.c                                  |  27 +-
 xen/arch/arm/traps.c                               |   6 +
 xen/arch/x86/Kconfig                               |   8 +
 xen/arch/x86/Makefile                              |   5 -
 xen/arch/x86/alternative.c                         |  29 +-
 xen/arch/x86/livepatch.c                           |  27 +-
 xen/arch/x86/mm.c                                  |   5 +-
 xen/common/Kconfig                                 |   2 +-
 xen/common/livepatch.c                             |  29 +-
 xen/common/livepatch_elf.c                         |  27 +-
 xen/include/asm-arm/alternative.h                  |   7 +-
 xen/include/asm-arm/arm32/page.h                   |   9 +
 xen/include/asm-arm/arm64/insn.h                   |  23 ++
 xen/include/asm-arm/config.h                       |   9 +-
 xen/include/asm-arm/livepatch.h                    |  28 ++
 xen/include/asm-arm/page.h                         |  11 +
 xen/include/asm-x86/alternative.h                  |  11 +-
 xen/include/xen/elfstructs.h                       |  56 +++-
 xen/include/xen/livepatch.h                        |   4 +-
 xen/include/xen/mm.h                               |   2 +-
 xen/include/xen/types.h                            |   6 +
 xen/test/Makefile                                  |   7 +
 xen/{arch/x86/test => test/livepatch}/Makefile     |  14 +-
 .../x86/test => test/livepatch}/xen_bye_world.c    |   0
 .../test => test/livepatch}/xen_bye_world_func.c   |   0
 .../x86/test => test/livepatch}/xen_hello_world.c  |   0
 .../test => test/livepatch}/xen_hello_world_func.c |   8 +-
 .../test => test/livepatch}/xen_replace_world.c    |   0
 .../livepatch}/xen_replace_world_func.c            |   0
 41 files changed, 1139 insertions(+), 122 deletions(-)

Konrad Rzeszutek Wilk (20):
      livepatch: Bubble up sanity checks on Elf relocs
      x86/arm: Make 'make debug' work properly.
      x86/arm64: Expose the ALT_[ORIG|REPL]_PTR macros to header files.
      alternatives: x86 rename and change parameters on ARM
      arm64/alternatives: Make it possible to patch outside of hypervisor.
      arm/alternative: Use _start instead of _stext
      arm/x86: Add ALTERNATIVE and HAS_EX_TABLE
      x86: change modify_xen_mappings to return error
      arm/mm: Introduce modify_xen_mappings
      arm64/insn: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions
      arm/arm64: Update comment about VA layout.
      x86,arm: Change arch_livepatch_quiesce() decleration.
      livepatch: Initial ARM64 support.
      livepatch: ARM 32|64: Ignore mapping symbols: $[d,a,x,t]
      livepatch: Move test-cases to common
      livepatch: tests: Make them compile under ARM64
      xen/arm32: Add an helper to invalidate all instruction caches
      xen/arm32/livepatch: Add BPICALLIS to helper to invalidate all instruction caches
      livepatch/elf: Adjust section aligment to word
      livepatch: ARM32 support.


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

^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2016-09-08 10:34 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-25 13:37 [PATCH v2] Livepatch for ARM 64 and 32 Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 01/20] livepatch: Bubble up sanity checks on Elf relocs Konrad Rzeszutek Wilk
2016-08-25 14:48   ` Jan Beulich
2016-09-06 17:13   ` Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 02/20] x86/arm: Make 'make debug' work properly Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 03/20] x86/arm64: Expose the ALT_[ORIG|REPL]_PTR macros to header files Konrad Rzeszutek Wilk
2016-08-31 15:43   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 04/20] alternatives: x86 rename and change parameters on ARM Konrad Rzeszutek Wilk
2016-08-25 13:55   ` Andrew Cooper
2016-08-31 15:44   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 05/20] arm64/alternatives: Make it possible to patch outside of hypervisor Konrad Rzeszutek Wilk
2016-08-31 15:54   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 06/20] arm/alternative: Use _start instead of _stext Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 07/20] arm/x86: Add ALTERNATIVE and HAS_EX_TABLE Konrad Rzeszutek Wilk
2016-08-25 13:58   ` Andrew Cooper
2016-08-25 14:02     ` Julien Grall
2016-08-25 14:09       ` Andrew Cooper
2016-08-25 14:56     ` Jan Beulich
2016-09-06 20:36       ` Konrad Rzeszutek Wilk
2016-09-06 20:40         ` Konrad Rzeszutek Wilk
2016-08-25 14:54   ` Jan Beulich
2016-09-06 20:16     ` Konrad Rzeszutek Wilk
2016-09-07  8:17       ` Jan Beulich
2016-08-25 13:37 ` [PATCH v2 08/20] x86: change modify_xen_mappings to return error Konrad Rzeszutek Wilk
2016-08-25 13:53   ` Andrew Cooper
2016-08-25 13:37 ` [PATCH v2 09/20] arm/mm: Introduce modify_xen_mappings Konrad Rzeszutek Wilk
2016-09-01 13:04   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 10/20] arm64/insn: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions Konrad Rzeszutek Wilk
2016-09-01 13:10   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 11/20] arm/arm64: Update comment about VA layout Konrad Rzeszutek Wilk
2016-09-01 13:11   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 12/20] x86, arm: Change arch_livepatch_quiesce() decleration Konrad Rzeszutek Wilk
2016-08-25 13:59   ` Andrew Cooper
2016-09-01 13:13   ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 13/20] livepatch: Initial ARM64 support Konrad Rzeszutek Wilk
2016-08-25 15:02   ` Jan Beulich
2016-09-07  2:58     ` Konrad Rzeszutek Wilk
2016-09-01 14:16   ` Julien Grall
2016-09-07  0:31     ` Konrad Rzeszutek Wilk
2016-09-07  3:33       ` Konrad Rzeszutek Wilk
2016-09-07 10:43         ` Julien Grall
2016-09-07 15:20           ` Konrad Rzeszutek Wilk
2016-09-07 10:41       ` Julien Grall
2016-08-25 13:37 ` [PATCH v2 14/20] livepatch: ARM 32|64: Ignore mapping symbols: $[d, a, x, t] Konrad Rzeszutek Wilk
2016-08-25 14:03   ` Andrew Cooper
2016-09-01 14:48   ` Julien Grall
2016-09-06 18:57     ` Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 15/20] livepatch: Move test-cases to common Konrad Rzeszutek Wilk
2016-08-25 15:05   ` Jan Beulich
2016-09-06 17:16     ` Konrad Rzeszutek Wilk
2016-09-07  8:28       ` Jan Beulich
2016-09-06 17:17   ` Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 16/20] livepatch: tests: Make them compile under ARM64 Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 17/20] xen/arm32: Add an helper to invalidate all instruction caches Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 18/20] xen/arm32/livepatch: Add BPICALLIS to " Konrad Rzeszutek Wilk
2016-09-01 15:13   ` Julien Grall
2016-09-01 20:23     ` Konrad Rzeszutek Wilk
2016-09-06 19:39     ` Konrad Rzeszutek Wilk
2016-08-25 13:37 ` [PATCH v2 19/20] livepatch/elf: Adjust section aligment to word Konrad Rzeszutek Wilk
2016-08-25 15:11   ` Jan Beulich
2016-09-01 15:27     ` Julien Grall
2016-09-06 21:18     ` Konrad Rzeszutek Wilk
2016-09-07  8:24       ` Jan Beulich
2016-08-25 13:37 ` [PATCH v2 20/20] livepatch: ARM32 support Konrad Rzeszutek Wilk
2016-09-08 10:34   ` Konrad Rzeszutek Wilk
2016-08-31 14:49 ` [PATCH v2] Livepatch for ARM 64 and 32 Julien Grall
2016-08-31 15:06   ` Konrad Rzeszutek Wilk
2016-08-31 15:09     ` Julien Grall
2016-08-31 15:24       ` Andrew Cooper
2016-08-31 15:40         ` Julien Grall
2016-08-31 15:54         ` Jan Beulich
2016-09-07  4:05           ` Konrad Rzeszutek Wilk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.