On 19/05/2023 17:24, Anthony PERARD wrote:
Saving, restoring and migrating domains are not currently supported on
arm and arm64 platforms, so xendomains prints the warning:
An error occurred while saving domain:
command not implemented
when attempting to run `xendomains stop`. It otherwise continues to shut
down the domains cleanly, with the unsupported steps skipped.
Also in sysconfig.xendomains, change "Default" to "Example" as the
real default is an empty value.
Reported-by: Peter Hoyes <peter.ho...@arm.com>
Signed-off-by: Anthony PERARD <anthony.per...@citrix.com>
---
Peter, what do you think of this approach?
Thanks for preparing this. Just validated that the warning above is not
present with both qemu-aarch64 and an internal stack.
Tested-by: Peter Hoyes <peter.ho...@arm.com>
For reference, there's also a way to findout if a macro exist, with
AC_CHECK_DECL(), but the libxl.h header depends on other headers that
needs to be generated.
---
tools/configure | 11 +++++++++++
tools/configure.ac | 13 +++++++++++++
tools/hotplug/Linux/init.d/sysconfig.xendomains.in | 4 ++--
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/tools/configure b/tools/configure
index 52b4717d01..a722f72c08 100755
--- a/tools/configure
+++ b/tools/configure
@@ -624,6 +624,7 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
+XENDOMAINS_SAVE_DIR
pvshim
ninepfs
SYSTEMD_LIBS
@@ -10155,6 +10156,16 @@ if test "$ax_found" = "0"; then :
fi
+case "$host_cpu" in
+ arm*|aarch64)
+ XENDOMAINS_SAVE_DIR=
+ ;;
+ *)
+ XENDOMAINS_SAVE_DIR="$XEN_LIB_DIR/save"
+ ;;
+esac
+
+
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
diff --git a/tools/configure.ac b/tools/configure.ac
index 3cccf41960..0f0983f6b7 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -517,4 +517,17 @@ AS_IF([test "x$pvshim" = "xy"], [
AX_FIND_HEADER([INCLUDE_ENDIAN_H], [endian.h sys/endian.h])
+dnl Disable autosave of domain in xendomains on shutdown
+dnl due to missing support. This should be in sync with
+dnl LIBXL_HAVE_NO_SUSPEND_RESUME in libxl.h
+case "$host_cpu" in
+ arm*|aarch64)
+ XENDOMAINS_SAVE_DIR=
+ ;;
+ *)
+ XENDOMAINS_SAVE_DIR="$XEN_LIB_DIR/save"
+ ;;
+esac
+AC_SUBST(XENDOMAINS_SAVE_DIR)
+
AC_OUTPUT()
diff --git a/tools/hotplug/Linux/init.d/sysconfig.xendomains.in
b/tools/hotplug/Linux/init.d/sysconfig.xendomains.in
index f61ef9c4d1..3c49f18bb0 100644
--- a/tools/hotplug/Linux/init.d/sysconfig.xendomains.in
+++ b/tools/hotplug/Linux/init.d/sysconfig.xendomains.in
@@ -45,7 +45,7 @@ XENDOMAINS_CREATE_USLEEP=5000000
XENDOMAINS_MIGRATE=""
## Type: string
-## Default: @XEN_LIB_DIR@/save
+## Example: @XEN_LIB_DIR@/save
#
# Directory to save running domains to when the system (dom0) is
# shut down. Will also be used to restore domains from if # XENDOMAINS_RESTORE
@@ -53,7 +53,7 @@ XENDOMAINS_MIGRATE=""
# (e.g. because you rather shut domains down).
# If domain saving does succeed, SHUTDOWN will not be executed.
#
-XENDOMAINS_SAVE=@XEN_LIB_DIR@/save
+XENDOMAINS_SAVE=@XENDOMAINS_SAVE_DIR@
## Type: string
## Default: "--wait"