These patches add support for stolen time functionality. Patch #1 modifies the memory layout in arm-common/kvm-arch.h and adds a new MMIO device, PVTIME after the RTC region. A new flag is added in kvm-config.h that will be used to control [enable/disable] the pvtime functionality. Patch #2 moves the vCPU structure initialisation before the target->init() call to allow early access to the kvm structure. Patch #3 adds a new command line argument to disable the stolen time functionality(by default is enabled). Changelog sinde v3: - Avoid the pvtime overlap with the PCI(AXI) region by moving the peripheral in the MMIO zone, after the RTC. - Split in a separate patch the change affecting the vCPU structure population - Added a new command line argument in a separate patch. Changelog since v2: - Moved the AARCH64_PVTIME_* definitions from arm-common/kvm-arch.h to arm64/pvtime.c as pvtime is only available for arm64. Changelog since v1: - Removed the pvtime.h header file and moved the definitions to kvm-cpu-arch.h Verified if the stolen time capability is supported before allocating and mapping the memory. Sebastian Ene (3): aarch64: Add stolen time support aarch64: Populate the vCPU struct before target->init() Add --no-pvtime command line argument Makefile | 1 + arm/aarch64/arm-cpu.c | 1 + arm/aarch64/include/kvm/kvm-cpu-arch.h | 1 + arm/aarch64/pvtime.c | 94 ++++++++++++++++++++++++++ arm/include/arm-common/kvm-arch.h | 6 +- arm/kvm-cpu.c | 14 ++-- builtin-run.c | 2 + include/kvm/kvm-config.h | 1 + 8 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 arm/aarch64/pvtime.c -- 2.35.1.473.g83b2b277ed-goog