Files
xen/docs
Konrad Rzeszutek Wilk 0d35756e4c livepatch: Initial ARM64 support.
As compared to x86 the va of the hypervisor .text
is locked down - we cannot modify the running pagetables
to have the .ro flag unset. We borrow the same idea that
alternative patching has - which is to vmap the entire
.text region and use the alternative virtual address
for patching.

Since we are doing vmap we may fail, hence the
arch_livepatch_quiesce was changed (see "x86,arm:
Change arch_livepatch_quiesce() declaration") to return
an error value which will be bubbled in payload->rc and
provided to the user (along with messages in the ring buffer).

The livepatch virtual address space (where the new functions
are) needs to be close to the hypervisor virtual address
so that the trampoline can reach it. As such we re-use
the BOOT_RELOC_VIRT_START which is not used after bootup
(alternatively we can also use the space after the _end to
FIXMAP_ADDR(0), but that may be too small).

The ELF relocation engine at the start was coded from
the "ELF for the ARM 64-bit Architecture (AArch64)"
(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056b/IHI0056B_aaelf64.pdf)
but after a while of trying to write the correct bit shifting
and masking from scratch I ended up borrowing from Linux, the
'reloc_insn_imm' (Linux v4.7 arch/arm64/kernel/module.c function.
See 257cb251925f854da435cbf79b140984413871ac "arm64: Loadable modules")

And while at it - we also utilize code from Linux to construct
the right branch instruction (see "arm64/insn: introduce
aarch64_insn_gen_{nop|branch_imm}() helper functions").

In the livepatch payload loading code we tweak the #ifdef to
only exclude ARM_32. The exceptions are not part of ARM 32/64 hence
they are still behind the #ifdef.

We also expand the MAINTAINERS file to include the arm64 and arm32
platform specific livepatch file.

Acked-by: Julien Grall <julien.grall@arm.com>
Acked-by: Jan Beulich <jbeulich@suse.com> [non-arm parts]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
2016-09-27 22:06:04 -04:00
..
2016-09-27 22:06:04 -04:00
2016-06-17 11:27:21 +01:00
2016-06-17 11:27:21 +01:00
2015-07-08 14:37:43 +01:00
2016-04-01 11:07:28 +08:00
2005-11-28 12:20:33 +00:00

xen-bugtool
===========

The xen-bugtool command line application will collate the Xen dmesg output,
details of the hardware configuration of your machine, information about the
build of Xen that you are using, plus, if you allow it, various logs.

The information collated can either be posted to a Xen Bugzilla bug (this bug
must already exist in the system, and you must be a registered user there), or
it can be saved as a .tar.bz2 for sending or archiving.

The collated logs may contain private information, and if you are at all
worried about that, you should not use this tool, or you should explicitly
exclude those logs from the archive.

xen-bugtool is wholly interactive, so simply run it, and answer the questions.