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

Re: [Xen-devel] [RFC 00/16] xen/arm: Introduce alternative runtime patching for ARM64



Hi Julien,

I have created a dummy CPU feature to test alternative runtime patching.
It seems working well:

Before enable dummy CPU feature:
(XEN) I/O virtualisation disabled
(XEN) Patching kernel code
(XEN) Testing alternative branch....
(XEN) Hello, this is the original code...
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading kernel from boot module @ 00000083fc3e7000

After enable dummy CPU feature:
(XEN) I/O virtualisation disabled
(XEN) Setting Dummy CPU Feature to test Alternative patching...
(XEN) Patching kernel code
(XEN) Testing alternative branch....
(XEN) Hello, this is the patched code...
(XEN) *** LOADING DOMAIN 0 ***


Tested-by: Wei Chen <Wei.Chen@xxxxxxxxxx>

Regards.

On 6 May 2016 at 00:34, Julien Grall <julien.grall@xxxxxxx> wrote:
> Hello,
>
> Some of the processor erratum will require to modify code sequence. As those
> modifications may impact the performance, they should only be enabled on
> affected cores. Furthermore, Xen may also want to take advantage of new
> hardware features coming up with v8.1 and v8.2.
>
> The first part of the series adds the alternative infrastructure, most of the
> code is based on Linux v4.6-rc3. The rest of the series implements errata
> for Cortex-A57 and Cortex-A53.
>
> Yours sincerely,
>
> Julien Grall (16):
>   xen/arm: Makefile: Sort the entries alphabetically
>   xen/arm: Include the header asm-arm/system.h in asm-arm/page.h
>   xen/arm: Add macros to handle the MIDR
>   xen/arm: arm64: Import flush_icache_range from Linux v4.6-rc3
>   xen/arm: Add cpu_hwcap bitmap
>   xen/arm64: Add an helper to invalidate all instruction caches
>   xen/arm: arm64: Move the define BRK_BUG_FRAME into a separate header
>   xen/arm: arm64: Reserve a brk immediate to fault on purpose
>   xen/arm: arm64: Add helpers to decode and encode branch instructions
>   xen/arm: Introduce alternative runtime patching
>   xen/arm: Detect silicon revision and set cap bits accordingly
>   xen/arm: Document the errata implemented in Xen
>   xen/arm: arm64: Add Cortex-A53 cache errata workaround
>   xen/arm: arm64: Add cortex-A57 erratum 832075 workaround
>   xen/arm: traps: Don't inject a fault if the translation VA -> IPA
>     fails
>   xen/arm: arm64: Document Cortex-A57 erratum 834220
>
>  docs/misc/arm/silicon-errata.txt  |  50 +++++++++
>  xen/arch/arm/Kconfig              |  96 +++++++++++++++++
>  xen/arch/arm/Makefile             |  41 +++----
>  xen/arch/arm/alternative.c        | 217 
> ++++++++++++++++++++++++++++++++++++++
>  xen/arch/arm/arm32/Makefile       |   9 +-
>  xen/arch/arm/arm64/Makefile       |  13 ++-
>  xen/arch/arm/arm64/cache.S        |  51 +++++++++
>  xen/arch/arm/arm64/insn.c         | 213 +++++++++++++++++++++++++++++++++++++
>  xen/arch/arm/cpuerrata.c          |  52 +++++++++
>  xen/arch/arm/cpufeature.c         |  50 +++++++++
>  xen/arch/arm/platforms/Makefile   |   2 +-
>  xen/arch/arm/setup.c              |  11 ++
>  xen/arch/arm/smpboot.c            |   3 +
>  xen/arch/arm/traps.c              |  37 ++++++-
>  xen/arch/arm/xen.lds.S            |   7 ++
>  xen/include/asm-arm/alternative.h | 165 +++++++++++++++++++++++++++++
>  xen/include/asm-arm/arm64/brk.h   |  39 +++++++
>  xen/include/asm-arm/arm64/bug.h   |   5 +-
>  xen/include/asm-arm/arm64/insn.h  |  88 ++++++++++++++++
>  xen/include/asm-arm/arm64/io.h    |  21 +++-
>  xen/include/asm-arm/arm64/page.h  |  13 ++-
>  xen/include/asm-arm/cpuerrata.h   |   6 ++
>  xen/include/asm-arm/cpufeature.h  |  47 +++++++++
>  xen/include/asm-arm/insn.h        |  22 ++++
>  xen/include/asm-arm/page.h        |   3 +
>  xen/include/asm-arm/processor.h   |  43 +++++++-
>  26 files changed, 1260 insertions(+), 44 deletions(-)
>  create mode 100644 docs/misc/arm/silicon-errata.txt
>  create mode 100644 xen/arch/arm/alternative.c
>  create mode 100644 xen/arch/arm/arm64/insn.c
>  create mode 100644 xen/arch/arm/cpuerrata.c
>  create mode 100644 xen/arch/arm/cpufeature.c
>  create mode 100644 xen/include/asm-arm/alternative.h
>  create mode 100644 xen/include/asm-arm/arm64/brk.h
>  create mode 100644 xen/include/asm-arm/arm64/insn.h
>  create mode 100644 xen/include/asm-arm/cpuerrata.h
>  create mode 100644 xen/include/asm-arm/insn.h
>
> --
> 1.9.1
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

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

 


Rackspace

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