tools/libxl: Add support for Viridian stimer direct mode

Add support to libxl for using the stimer enlightenments in direct mode.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
This commit is contained in:
Ross Lagerwall authored and Anthony PERARD committed 2026-10-12 17:31:39 +02:00
1 parent 31405d5bee
commit 0aa64f1929
5 files changed
+18

No files matched your search

+5
View File
@@ -2496,6 +2496,11 @@ ticks and hence enabling this group will ensure that ticks will be
consistent with use of an enlightened time source (B<time_ref_count> or
B<reference_tsc>).
=item B<stimer_direct>
This set is the same as the B<stimer> set but additionally supports
using synthetic timers in direct mode.
=item B<hcall_ipi>
This set incorporates use of a hypercall for interprocessor interrupts.
+1
View File
@@ -234,6 +234,7 @@ ViridianEnlightenmentHcallIpi ViridianEnlightenment = 9
ViridianEnlightenmentExProcessorMasks ViridianEnlightenment = 10
ViridianEnlightenmentNoVpLimit ViridianEnlightenment = 11
ViridianEnlightenmentCpuHotplug ViridianEnlightenment = 12
ViridianEnlightenmentStimerDirect ViridianEnlightenment = 13
)
type Hdtype int
+6
View File
@@ -389,6 +389,12 @@
*/
#define LIBXL_HAVE_VIRIDIAN_HCALL_IPI 1
/*
* LIBXL_HAVE_VIRIDIAN_STIMER_DIRECT indicates that the 'stimer_direct' value
* is present in the viridian enlightenment enumeration.
*/
#define LIBXL_HAVE_VIRIDIAN_STIMER_DIRECT 1
/*
* LIBXL_HAVE_BUILDINFO_HVM_ACPI_LAPTOP_SLATE indicates that
* libxl_domain_build_info has the u.hvm.acpi_laptop_slate field.
+1
View File
@@ -260,6 +260,7 @@ libxl_viridian_enlightenment = Enumeration("viridian_enlightenment", [
(10, "ex_processor_masks"),
(11, "no_vp_limit"),
(12, "cpu_hotplug"),
(13, "stimer_direct"),
])
libxl_hdtype = Enumeration("hdtype", [
+5
View File
@@ -389,6 +389,11 @@ static int hvm_set_viridian_features(libxl__gc *gc, uint32_t domid,
if (libxl_bitmap_test(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CPU_HOTPLUG))
mask |= HVMPV_cpu_hotplug;
if (libxl_bitmap_test(&enlightenments,
LIBXL_VIRIDIAN_ENLIGHTENMENT_STIMER_DIRECT))
mask |= HVMPV_time_ref_count | HVMPV_synic | HVMPV_stimer |
HVMPV_stimer_direct;
if (mask != 0 &&
xc_hvm_param_set(CTX->xch,
domid,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.