[pull][bionic] add ARM64 RAS extension and SDEI interface.

Manoj Iyer manoj.iyer at canonical.com
Sat Mar 10 04:52:58 UTC 2018


Please consider the following pull request for ARM64 Software Delegated 
Exception Interface (SDEI) cleanly cherry-picked, and RAS extension 
patches backported to bionic from latest 4.16-rc. A test kernel is 
available in ppa:manjo/uose2.

The kernel was touch tested on QDF2400 ARM64 server platform. On the 
hisilicon D06 platform I ran KVM start stop tests, created 20VMs and 
start/stop the VMs 10 times. The testcase can be found here: 
https://code.launchpad.net/~manjo/+git/kvm-testing

The following changes since commit 9ce0a31fce411c7c2027dd5b664c9b9d9e674b27:

   PCI/DPC: Enable DPC only if AER is available (2018-03-08 19:42:13 -0600)

are available in the git repository at:

   git+ssh://git.launchpad.net/~manjo/+git/linux-hisid06

for you to fetch changes up to feb5d80bbf6250033bcf0e9bd9eb550e9dcdcdff:

   UBUNTU: [Config]: enable RAS_EXTN and ARM_SDE_INTERFACE (2018-03-09 13:37:55 -0600)

----------------------------------------------------------------
Dongjiu Geng (1):
       KVM: arm64: Emulate RAS error registers and set HCR_EL2's TERR & TEA

James Morse (24):
       KVM: arm64: Store vcpu on the stack during __guest_enter()
       KVM: arm/arm64: Convert kvm_host_cpu_state to a static per-cpu allocation
       KVM: arm64: Change hyp_panic()s dependency on tpidr_el2
       arm64: alternatives: use tpidr_el2 on VHE hosts
       KVM: arm64: Stop save/restoring host tpidr_el1 on VHE
       Docs: dt: add devicetree binding for describing arm64 SDEI firmware
       firmware: arm_sdei: Add driver for Software Delegated Exceptions
       arm64: Add vmap_stack header file
       arm64: uaccess: Add PAN helper
       arm64: kernel: Add arch-specific SDEI entry code and CPU masking
       firmware: arm_sdei: Add support for CPU and system power states
       firmware: arm_sdei: add support for CPU private events
       arm64: acpi: Remove __init from acpi_psci_use_hvc() for use by SDEI
       firmware: arm_sdei: Discover SDEI support via ACPI
       arm64: sysreg: Move to use definitions for all the SCTLR bits
       arm64: kernel: Survive corrected RAS errors notified by SError
       arm64: Unconditionally enable IESB on exception entry/return for firmware-first
       arm64: kernel: Prepare for a DISR user
       KVM: arm/arm64: mask/unmask daif around VHE guests
       KVM: arm64: Set an impdef ESR for Virtual-SError using VSESR_EL2.
       KVM: arm64: Save/Restore guest DISR_EL1
       KVM: arm64: Save ESR_EL2 on guest SError
       KVM: arm64: Handle RAS SErrors from EL1 on guest exit
       KVM: arm64: Handle RAS SErrors from EL2 on guest exit

Manoj Iyer (1):
       UBUNTU: [Config]: enable RAS_EXTN and ARM_SDE_INTERFACE

Xie XiuQi (1):
       arm64: cpufeature: Detect CPU RAS Extentions

  .../devicetree/bindings/arm/firmware/sdei.txt      |   42 +
  MAINTAINERS                                        |    9 +
  arch/arm/include/asm/kvm_host.h                    |    6 +
  arch/arm64/Kconfig                                 |   16 +
  arch/arm64/include/asm/alternative.h               |    2 +
  arch/arm64/include/asm/assembler.h                 |   15 +
  arch/arm64/include/asm/cpucaps.h                   |    3 +-
  arch/arm64/include/asm/esr.h                       |   20 +
  arch/arm64/include/asm/exception.h                 |   14 +
  arch/arm64/include/asm/kvm_arm.h                   |    2 +
  arch/arm64/include/asm/kvm_emulate.h               |   17 +
  arch/arm64/include/asm/kvm_host.h                  |   20 +
  arch/arm64/include/asm/percpu.h                    |   11 +-
  arch/arm64/include/asm/processor.h                 |    1 +
  arch/arm64/include/asm/sdei.h                      |   51 +
  arch/arm64/include/asm/stacktrace.h                |    3 +
  arch/arm64/include/asm/sysreg.h                    |   81 +-
  arch/arm64/include/asm/traps.h                     |   54 +
  arch/arm64/include/asm/uaccess.h                   |   12 +
  arch/arm64/include/asm/vmap_stack.h                |   28 +
  arch/arm64/kernel/Makefile                         |    1 +
  arch/arm64/kernel/acpi.c                           |    2 +-
  arch/arm64/kernel/alternative.c                    |    9 +-
  arch/arm64/kernel/asm-offsets.c                    |    6 +
  arch/arm64/kernel/cpufeature.c                     |   39 +
  arch/arm64/kernel/entry.S                          |  101 ++
  arch/arm64/kernel/head.S                           |   13 +-
  arch/arm64/kernel/irq.c                            |   13 +-
  arch/arm64/kernel/sdei.c                           |  219 ++++
  arch/arm64/kernel/smp.c                            |   11 +-
  arch/arm64/kernel/suspend.c                        |    4 +-
  arch/arm64/kernel/traps.c                          |   51 +-
  arch/arm64/kvm/handle_exit.c                       |   32 +-
  arch/arm64/kvm/hyp-init.S                          |    4 +
  arch/arm64/kvm/hyp/entry.S                         |   23 +-
  arch/arm64/kvm/hyp/hyp-entry.S                     |   18 +-
  arch/arm64/kvm/hyp/switch.c                        |   37 +-
  arch/arm64/kvm/hyp/sysreg-sr.c                     |   22 +-
  arch/arm64/kvm/inject_fault.c                      |   13 +-
  arch/arm64/kvm/sys_regs.c                          |   11 +
  arch/arm64/mm/proc.S                               |   37 +-
  debian.master/config/config.common.ubuntu          |    2 +
  drivers/firmware/Kconfig                           |    8 +
  drivers/firmware/Makefile                          |    1 +
  drivers/firmware/arm_sdei.c                        | 1092 ++++++++++++++++++++
  include/linux/arm_sdei.h                           |   79 ++
  include/linux/cpuhotplug.h                         |    1 +
  include/linux/psci.h                               |    3 +-
  include/uapi/linux/arm_sdei.h                      |   73 ++
  virt/kvm/arm/arm.c                                 |   25 +-
  50 files changed, 2247 insertions(+), 110 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/arm/firmware/sdei.txt
  create mode 100644 arch/arm64/include/asm/sdei.h
  create mode 100644 arch/arm64/include/asm/vmap_stack.h
  create mode 100644 arch/arm64/kernel/sdei.c
  create mode 100644 drivers/firmware/arm_sdei.c
  create mode 100644 include/linux/arm_sdei.h
  create mode 100644 include/uapi/linux/arm_sdei.h

--
============================
Manoj Iyer
Ubuntu/Canonical
ARM Servers - Cloud
============================




More information about the kernel-team mailing list