From: Mykola Kvach <mykola_kvach@epam.com>
This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").
### Background
The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.
This series includes:
1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled
### Usage
For Linux-based guests:
- Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
- Resume can be performed from control domain using: "xl resume <domain>"
For more information, refer to the official Linux kernel documentation on power management.
Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain), and behaves as a logical standby. More details can be found in
the appropriate commit message and in the code comments.
---
TODO: enable "xl suspend" for ARM
---
Previous versions of this patch series:
V1: https://lists.xenproject.org/archives/html/xen-devel/2018-11/msg01093.html
V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
V3: https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg00168.html
This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.
Mykola Kvach (4):
tools/xl: allow resume command compilation for arm
xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
SUPPORT.md: Document ARM PSCI and vPSCI support
CHANGELOG: Mention Xen suspend/resume to RAM feature on arm64
CHANGELOG.md | 1 +
SUPPORT.md | 15 +++++++
tools/include/libxl.h | 1 -
tools/xl/xl.h | 2 +-
tools/xl/xl_cmdtable.c | 2 +-
tools/xl/xl_vmcontrol.c | 12 ++---
xen/arch/arm/include/asm/perfc_defn.h | 1 +
xen/arch/arm/include/asm/psci.h | 2 +
xen/arch/arm/vpsci.c | 64 +++++++++++++++++++++++++++
9 files changed, 91 insertions(+), 9 deletions(-)
--
2.48.1