[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/6] xen: add new domctl get_changed_domain
On 28.10.24 11:50, Jan Beulich wrote: On 23.10.2024 15:10, Juergen Gross wrote:Add a new domctl sub-function to get data of a domain having changed state (this is needed by Xenstore). The returned state just contains the domid, the domain unique id, and some flags (existing, shutdown, dying). In order to enable Xenstore stubdom being built for multiple Xen versions, make this domctl stable. For stable domctls the interface_version is specific to the respective domctl op and it is an in/out parameter: On input the caller is specifying the desired version of the op, while on output the hypervisor will return the used version (this will be at max the caller supplied version, but might be lower in case the hypervisor doesn't support this version). Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- V1: - use a domctl subop for the new interface (Jan Beulich)Just as a preliminary reply: With Andrew's stabilization plans I'm not sure this, in particular including ...@@ -1236,7 +1237,37 @@ struct xen_domctl_dt_overlay { }; #endif+/*+ * XEN_DOMCTL_get_domain_state (stable interface) + * + * Get state information of a domain. + * + * In case domain is DOMID_INVALID, return information about a domain having + * changed state and reset the state change indicator for that domain. This + * function is usable only by a domain having registered the VIRQ_DOM_EXC + * event (normally Xenstore). + * + * Supported interface versions: 0x00000000 + */ +#define XEN_DOMCTL_GETDOMSTATE_VERS_MAX 0 +struct xen_domctl_get_domain_state { + domid_t domid; + uint16_t state; +#define XEN_DOMCTL_GETDOMSTATE_STATE_EXIST 0x0001 /* Domain is existing. */ +#define XEN_DOMCTL_GETDOMSTATE_STATE_SHUTDOWN 0x0002 /* Shutdown finished. */ +#define XEN_DOMCTL_GETDOMSTATE_STATE_DYING 0x0004 /* Domain dying. */ + uint32_t pad1; /* Returned as 0. */ + uint64_t unique_id; /* Unique domain identifier. */ + uint64_t pad2[6]; /* Returned as 0. */ +}; + struct xen_domctl { +/* + * Stable domctl ops: + * interface_version is per cmd, hypervisor can support multiple versions + * and will return used version (at max caller supplied value) in + * interface_version on return. + */... this (ab)use of the interface version, is the way to go. I think we want a brand new hypercall, with stability just like most other hypercalls have it. Backwards-incompatible interface changes then simply aren't allowed (as in: require a new sub-op instead). Okay, so back to my initial RFC variant then. :-) Andrew, can you confirm you'd prefer that route? Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature.asc
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |