From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: xen-devel@lists.xenproject.org, konrad@kernel.org,
ross.lagerwall@citrix.com, sstabellini@kernel.org,
julien.grall@arm.com
Subject: [PATCH v2] Livepatch for ARM 64 and 32.
Date: Thu, 25 Aug 2016 09:37:15 -0400 [thread overview]
Message-ID: <1472132255-23470-1-git-send-email-konrad.wilk@oracle.com> (raw)
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
next reply other threads:[~2016-08-25 13:37 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-25 13:37 Konrad Rzeszutek Wilk [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1472132255-23470-1-git-send-email-konrad.wilk@oracle.com \
--to=konrad.wilk@oracle.com \
--cc=julien.grall@arm.com \
--cc=konrad@kernel.org \
--cc=ross.lagerwall@citrix.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).