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

PING: Re: [PATCH v8 00/13] Add initial Xen Suspend-to-RAM support on ARM64


  • To: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Mykola Kvach <xakep.amatop@xxxxxxxxx>
  • Date: Thu, 16 Apr 2026 15:51:19 +0300
  • Arc-authentication-results: i=1; mx.google.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uWWJ9mP4NDk9cmYvS5SgrgvtiEhcfJ12dbTuCvEl8X0=; fh=BxAOn7jMslPpxCh+ZwJ42wvijNvg8M+sVi4YM41sbzk=; b=hybbjYEtvg66sgGIGilQxPJcBElmsl1ddcxhlZ/djyOxqzUgl3jmsQx57HHcLvpuiJ m0okqjwDGGkEYx77Ez7pNp9MoinbmW6t4/0vHfSIvSWCh5iI+BidX2yt00plHXqrmkqD Q6S5A+pnu1jfXEOSiEQp9dyW5LeXtjUpULxGgesNwUs3y6Ie14MkipDN8u/ExCzc/I9v mfB/x0VvrjLidjYWp4Crb2qkQGq+dBHbcKcwCmUmBq+yp0AEnuXeAoWOjJUcSH2xO/SO Kd6S5QwtGD9XdXS134ZD2+QXlocwNlu95UK6NkzAz3w2bKt0ZI1I98eCMnbfH3G5TuUG AJlQ==; darn=lists.xenproject.org
  • Arc-seal: i=1; a=rsa-sha256; t=1776343893; cv=none; d=google.com; s=arc-20240605; b=eKZ1q8EHPRm3Cc8RXay4BVUCGkGYBtSawVd1xz9STYMlQFnU5//hEvZwC3VPw9BB2W dErJh64bJmIfm3K3QsfevMjia+zuerxpEl/18PDDwzahCWWL82Kd4jMH+vn45Nc1pdkb ILN9TAtzxQhWjb3Wg5jQ+rq5X35E0GCcqnKCIunUHzHwEszXZra9eRruj5RFpeSJQEVO 9QNO6JAgWgvIGqr4l42rayM3GpK8HJvqfPdumW3P31tUlgbhrpVGxhbowzYbJPJSzpSC Jdntrj1uoDseHTrCBO9E15X0i/rWBK6I5O5wRoyRd+/O006NiKb5IlZkDHUum4p6/ia0 1PCA==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
  • Delivery-date: Thu, 16 Apr 2026 12:51:40 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi all,

A gentle ping on this series. It's been a couple of weeks since v8 was posted.

Please let me know if there are any further comments or if anything else is
needed from my side to move this forward.

Thanks!

Best regards,
Mykola

On Thu, Apr 2, 2026 at 1:47 PM Mykola Kvach <xakep.amatop@xxxxxxxxx> wrote:
>
> From: Mykola Kvach <mykola_kvach@xxxxxxxx>
>
> This is part 2 of version 8 of the ARM Xen system suspend/resume patch
> series, based on earlier work by Mirela Simonovic and Mykyta Poturai.
>
> The first part is in mainline.
>
> NOTE: Most of the code is guarded by CONFIG_SYSTEM_SUSPEND, which can
> currently only be selected when UNSUPPORTED is set, and thus the
> functionality is neither enabled by default nor even built.
>
> This version is ported to Xen master and includes extensive improvements
> based on reviewer feedback. The patch series restructures code to improve
> robustness, maintainability, and implements system Suspend-to-RAM support
> on ARM64 hardware/control domains.
>
> Key updates in this series:
>  - Introduced architecture-specific suspend/resume infrastructure
>  - Integrated GICv2/GICv3 suspend and resume, including memory-backed context
>    save/restore with error handling
>  - Added time and IRQ suspend/resume hooks, ensuring correct timer/interrupt
>    state across suspend cycles
>  - Implemented proper PSCI SYSTEM_SUSPEND invocation and version checks
>  - Improved state management and recovery in error cases during suspend/resume
>  - Added support for IPMMU-VMSA/SMMUv3 context save/restore
>  - Added support for GICv3 eSPI registers context save/restore
>  - Added support for ITS registers context save/restore
> ---
>
> TODOs:
>  - Enable "xl suspend" support on ARM
>  - Add suspend/resume CI test for ARM (QEMU if feasible)
>  - PCI suspend ?
> ---
>
> Detailed changelogs can be found in each patch.
>
> Changes in v8:
> - Rebased to latest master and refreshed the series accordingly.
> - Added a new GICv3 patch to tolerate retained redistributor LPI state
>   across CPU_OFF/CPU_ON.
> - GICv2 suspend now disables the CPU interface and distributor before
>   saving state.
> - GICv3 suspend/resume fixes the redistributor base used for LPI state.
> - ITS and SMMUv3 suspend/resume paths were tightened, with safer
>   restore/rollback handling and stricter fatal-error handling.
> - System suspend now checks that all domains are already in
>   SHUTDOWN_suspend before proceeding, and renames the hardware-domain
>   suspend capability/helper for clearer semantics.
> - Fixed alignment/cleanup issues in the low-level suspend/resume code.
>
> Changes in v7:
> - Timer helper renamed/clarified; virtual/hyper/phys handling documented.
> - GICv2 uses one context block; restore saved CTLR; panic on alloc failure.
> - GICv3/eSPI/ITS always suspend/resume; restore LPI/eSPI; rdist timeout.
> - IPMMU suspend context allocated before PCI setup.
> - System suspend: control domain drives host suspend.
> - Dropped v6 IRQ descriptor restore patches; use setup_irq and re-register
>   local IRQs on resume instead.
>
> For earlier changelogs, please refer to the previous cover letters.
>
> Mirela Simonovic (6):
>   xen/arm: Add suspend and resume timer helpers
>   xen/arm: gic-v2: Implement GIC suspend/resume functions
>   xen/arm: Resume memory management on Xen resume
>   xen/arm: Save/restore context on suspend/resume
>   xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
>   xen/arm: Add support for system suspend triggered by hardware domain
>
> Mykola Kvach (6):
>   xen/arm: gic-v3: tolerate retained redistributor LPI state across
>     CPU_OFF
>   xen/arm: gic-v3: Implement GICv3 suspend/resume functions
>   xen/arm: gic-v3: add ITS suspend/resume support
>   xen/arm: tee: keep init_tee_secondary() for hotplug and resume
>   xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
>   arm/smmu-v3: add suspend/resume handlers
>
> Oleksandr Tyshchenko (1):
>   iommu/ipmmu-vmsa: Implement suspend/resume callbacks
>
>  xen/arch/arm/Kconfig                     |   2 +
>  xen/arch/arm/Makefile                    |   1 +
>  xen/arch/arm/arm64/head.S                | 112 ++++++++
>  xen/arch/arm/gic-v2.c                    | 132 +++++++++
>  xen/arch/arm/gic-v3-its.c                | 126 +++++++-
>  xen/arch/arm/gic-v3-lpi.c                |  80 +++++-
>  xen/arch/arm/gic-v3.c                    | 349 ++++++++++++++++++++++-
>  xen/arch/arm/gic.c                       |  29 ++
>  xen/arch/arm/include/asm/gic.h           |  12 +
>  xen/arch/arm/include/asm/gic_v3_defs.h   |   1 +
>  xen/arch/arm/include/asm/gic_v3_its.h    |  24 ++
>  xen/arch/arm/include/asm/mm.h            |   2 +
>  xen/arch/arm/include/asm/psci.h          |   1 +
>  xen/arch/arm/include/asm/suspend.h       |  31 ++
>  xen/arch/arm/include/asm/time.h          |   5 +
>  xen/arch/arm/mmu/smpboot.c               |   2 +-
>  xen/arch/arm/psci.c                      |  23 +-
>  xen/arch/arm/suspend.c                   | 195 +++++++++++++
>  xen/arch/arm/tee/ffa_notif.c             |  63 +++-
>  xen/arch/arm/tee/tee.c                   |   2 +-
>  xen/arch/arm/time.c                      |  44 ++-
>  xen/arch/arm/vpsci.c                     |  12 +-
>  xen/common/Kconfig                       |   3 +
>  xen/common/domain.c                      |   7 +-
>  xen/drivers/passthrough/arm/ipmmu-vmsa.c | 305 +++++++++++++++++++-
>  xen/drivers/passthrough/arm/smmu-v3.c    | 172 ++++++++---
>  xen/drivers/passthrough/arm/smmu.c       |  10 +
>  xen/include/xen/list.h                   |  14 +
>  28 files changed, 1670 insertions(+), 89 deletions(-)
>  create mode 100644 xen/arch/arm/suspend.c
>
> --
> 2.43.0



 


Rackspace

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