Currently, libxl neither pauses nor suspends a stubdomain when
suspending the domain it serves. Qubes OS has an out-of-tree patch that
just pauses the stubdomain, but that is also insufficient: sys-net (an
HVM with an attached PCI device) does not properly resume from suspend
on some systems, and the stubdomain considers the TSC clocksource to be
unstable after resume.
The first two patches add utility functions that will be used later.
The third patch is the one that actually suspends the stubdomain. The
fourth patch makes suspending slow-to-respond domains more robust, and
the fifth patch adds extra logging.
Demi Marie Obenour (5):
libxl: Add a utility function for domain resume
libxl: Add utility function to check guest status
libxl: Properly suspend stubdomains
libxl: Fix race condition in domain suspension
libxl: Add additional domain suspend/resume logs
tools/libxl/libxl_dom_suspend.c | 276 +++++++++++++++++++++++++-------
tools/libxl/libxl_domain.c | 1 +
tools/libxl/libxl_internal.h | 1 +
3 files changed, 218 insertions(+), 60 deletions(-)
--
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab