|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 3/3] tools/libxl: Add support for Viridian stimer direct mode
On 04/09/2026 16:17, Ross Lagerwall wrote:
> Add support to libxl for using the stimer enlightenments in direct mode.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> ---
>
> New in v2, since the new Viridian flag was added.
>
> docs/man/xl.cfg.5.pod.in | 5 +++++
> tools/include/libxl.h | 6 ++++++
> tools/libs/light/libxl_types.idl | 1 +
> tools/libs/light/libxl_x86.c | 5 +++++
> 4 files changed, 17 insertions(+)
>
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index d34951edb98d..784e926c9990 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -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>
> +
> +This set is the same as the B<stimer> set but additionally supports
> +using synthetic timers in direct mode.
> +
I think this should be stimer_direct.
> =item B<hcall_ipi>
>
> This set incorporates use of a hypercall for interprocessor interrupts.
> diff --git a/tools/include/libxl.h b/tools/include/libxl.h
> index 7c098edab663..5475530a5002 100644
> --- a/tools/include/libxl.h
> +++ b/tools/include/libxl.h
> @@ -381,6 +381,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.
> diff --git a/tools/libs/light/libxl_types.idl
> b/tools/libs/light/libxl_types.idl
> index a7893460f013..95075f04fe45 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -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", [
> diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
> index 60d4e8661c93..9e8b48372d63 100644
> --- a/tools/libs/light/libxl_x86.c
> +++ b/tools/libs/light/libxl_x86.c
> @@ -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,
--
Ngoc Tu Dinh | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |