|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v5 11/13] ioreq: do not build arch_vcpu_ioreq_completion() for non-VMX configurations
On 30.07.2024 12:37, Sergiy Kibrik wrote:
> From: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
>
> VIO_realmode_completion is specific to vmx realmode and thus the function
> arch_vcpu_ioreq_completion() has actual handling work only in VMX-enabled
> build,
> as for the rest x86 and ARM build configurations it is basically a stub.
>
> Here a separate configuration option ARCH_IOREQ_COMPLETION introduced that
> tells
> whether the platform we're building for requires any specific ioreq completion
> handling. As of now only VMX has such requirement, so the option is selected
> by INTEL_VMX, for other configurations a generic default stub is provided
> (it is ARM's version of arch_vcpu_ioreq_completion() moved to common header).
>
> Signed-off-by: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@xxxxxxxx>
> CC: Julien Grall <julien@xxxxxxx>
> CC: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> changes in v5:
> - introduce ARCH_IOREQ_COMPLETION option & put arch_vcpu_ioreq_completion()
> under it
> - description changed
I'm worried by this naming inconsistency: We also have
arch_ioreq_complete_mmio(),
and who know what else we'll gain. I think the Kconfig identifier wants to
equally
include VCPU.
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -95,4 +95,7 @@ config LTO
> config ARCH_SUPPORTS_INT128
> bool
>
> +config ARCH_IOREQ_COMPLETION
> + bool
Please maintain alphabetic sorting with the other ARCH_*.
> --- a/xen/include/xen/ioreq.h
> +++ b/xen/include/xen/ioreq.h
> @@ -111,7 +111,17 @@ void ioreq_domain_init(struct domain *d);
> int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool
> *const_op);
>
> bool arch_ioreq_complete_mmio(void);
> +
> +#ifdef CONFIG_ARCH_IOREQ_COMPLETION
> bool arch_vcpu_ioreq_completion(enum vio_completion completion);
> +#else
> +static inline bool arch_vcpu_ioreq_completion(enum vio_completion completion)
> +{
> + ASSERT_UNREACHABLE();
> + return true;
> +}
I understand this is how the Arm stub had it, but is "true" really appropriate
here? Looking at the sole vcpu_ioreq_handle_completion() call site in x86 code,
I'm inclined to say "false" would be better: We shouldn't resume a vCPU when
such an (internal) error has been encountered.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |