[SRU][linux-aws/focal][PULL] add pvtime support for arm64 guests

Kamal Mostafa kamal at canonical.com
Tue Jul 28 20:17:10 UTC 2020


BugLink: https://bugs.launchpad.net/bugs/1889282

The mainline patch set "arm64: Stolen time support" and its prerequisites are
required to support future AWS instance types.

Almost all clean mainline cherry-picks (one trivial backport).

Internal AWS testing yields positive test results for aws/focal and
aws-5.4/bionic test kernels.

 -Kamal

-----

The following changes since commit 69f6f4ceb31b6bad0e2460c7518e9c288c72e642:

  UBUNTU: Ubuntu-aws-5.4.0-1021.21 (2020-07-24 11:24:21 +0200)

are available in the Git repository at:

  git://git.launchpad.net/~kamalmostafa/ubuntu/+source/linux-aws/+git/focal lp1889282-aws-pvtime

for you to fetch changes up to e2b961e47d0d322c27bf7a965c8e425853096ef7:

  arm64: Retrieve stolen time as paravirtualized guest (2020-07-28 08:16:00 -0700)

----------------------------------------------------------------
Christoffer Dall (1):
      KVM: arm/arm64: Factor out hypercall handling from PSCI code

Mark Rutland (5):
      arm/arm64: smccc/psci: add arm_smccc_1_1_get_conduit()
      arm64: errata: use arm_smccc_1_1_get_conduit()
      arm: spectre-v2: use arm_smccc_1_1_get_conduit()
      firmware/psci: use common SMCCC_CONDUIT_*
      firmware: arm_sdei: use common SMCCC_CONDUIT_*

Steven Price (9):
      KVM: arm64: Document PV-time interface
      KVM: arm64: Implement PV_TIME_FEATURES call
      KVM: Implement kvm_put_guest()
      KVM: arm64: Support stolen time reporting via shared structure
      KVM: Allow kvm_device_ops to be const
      KVM: arm64: Provide VCPU attributes for stolen time
      arm/arm64: Provide a wrapper for SMCCC 1.1 calls
      arm/arm64: Make use of the SMCCC 1.1 wrapper
      arm64: Retrieve stolen time as paravirtualized guest

 Documentation/admin-guide/kernel-parameters.txt |   6 +-
 Documentation/virt/kvm/arm/pvtime.rst           |  80 ++++++++++++++
 Documentation/virt/kvm/devices/vcpu.txt         |  14 +++
 arch/arm/include/asm/kvm_host.h                 |  25 +++++
 arch/arm/kvm/Makefile                           |   2 +-
 arch/arm/kvm/handle_exit.c                      |   2 +-
 arch/arm/mm/proc-v7-bugs.c                      |  21 ++--
 arch/arm64/include/asm/kvm_host.h               |  29 +++++
 arch/arm64/include/asm/paravirt.h               |   9 +-
 arch/arm64/include/asm/pvclock-abi.h            |  17 +++
 arch/arm64/include/uapi/asm/kvm.h               |   2 +
 arch/arm64/kernel/cpu_errata.c                  | 102 ++++++-----------
 arch/arm64/kernel/paravirt.c                    | 140 ++++++++++++++++++++++++
 arch/arm64/kernel/sdei.c                        |   3 +-
 arch/arm64/kernel/time.c                        |   3 +
 arch/arm64/kvm/Kconfig                          |   1 +
 arch/arm64/kvm/Makefile                         |   2 +
 arch/arm64/kvm/guest.c                          |   9 ++
 arch/arm64/kvm/handle_exit.c                    |   4 +-
 drivers/firmware/arm_sdei.c                     |  12 +-
 drivers/firmware/psci/psci.c                    |  24 ++--
 include/kvm/arm_hypercalls.h                    |  43 ++++++++
 include/kvm/arm_psci.h                          |   2 +-
 include/linux/arm-smccc.h                       |  75 +++++++++++++
 include/linux/arm_sdei.h                        |   6 -
 include/linux/cpuhotplug.h                      |   1 +
 include/linux/kvm_host.h                        |  26 ++++-
 include/linux/kvm_types.h                       |   2 +
 include/linux/psci.h                            |   9 +-
 include/uapi/linux/kvm.h                        |   2 +
 virt/kvm/arm/arm.c                              |  11 ++
 virt/kvm/arm/hypercalls.c                       |  71 ++++++++++++
 virt/kvm/arm/psci.c                             |  84 +-------------
 virt/kvm/arm/pvtime.c                           | 131 ++++++++++++++++++++++
 virt/kvm/kvm_main.c                             |   6 +-
 35 files changed, 769 insertions(+), 207 deletions(-)
 create mode 100644 Documentation/virt/kvm/arm/pvtime.rst
 create mode 100644 arch/arm64/include/asm/pvclock-abi.h
 create mode 100644 include/kvm/arm_hypercalls.h
 create mode 100644 virt/kvm/arm/hypercalls.c
 create mode 100644 virt/kvm/arm/pvtime.c



More information about the kernel-team mailing list