[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [QEMU][PATCH v4 06/10] hw/xen/xen-hvm-common: skip ioreq creation on
From: |
Stefano Stabellini |
Subject: |
Re: [QEMU][PATCH v4 06/10] hw/xen/xen-hvm-common: skip ioreq creation on ioreq registration failure |
Date: |
Wed, 25 Jan 2023 14:01:37 -0800 (PST) |
User-agent: |
Alpine 2.22 (DEB 394 2020-01-19) |
On Wed, 25 Jan 2023, Vikram Garhwal wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
>
> On ARM it is possible to have a functioning xenpv machine with only the
> PV backends and no IOREQ server. If the IOREQ server creation fails continue
> to the PV backends initialization.
>
> Also, moved the IOREQ registration and mapping subroutine to new function
> xen_do_ioreq_register().
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
as per my previous reply, even though I am listed as co-author, for
tracking that I did review this version of the patch:
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> hw/xen/xen-hvm-common.c | 53 ++++++++++++++++++++++++++++-------------
> 1 file changed, 36 insertions(+), 17 deletions(-)
>
> diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
> index e748d8d423..94dbbe97ed 100644
> --- a/hw/xen/xen-hvm-common.c
> +++ b/hw/xen/xen-hvm-common.c
> @@ -777,25 +777,12 @@ err:
> exit(1);
> }
>
> -void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
> - MemoryListener xen_memory_listener)
> +static void xen_do_ioreq_register(XenIOState *state,
> + unsigned int max_cpus,
> + MemoryListener
> xen_memory_listener)
> {
> int i, rc;
>
> - state->xce_handle = xenevtchn_open(NULL, 0);
> - if (state->xce_handle == NULL) {
> - perror("xen: event channel open");
> - goto err;
> - }
> -
> - state->xenstore = xs_daemon_open();
> - if (state->xenstore == NULL) {
> - perror("xen: xenstore open");
> - goto err;
> - }
> -
> - xen_create_ioreq_server(xen_domid, &state->ioservid);
> -
> state->exit.notify = xen_exit_notifier;
> qemu_add_exit_notifier(&state->exit);
>
> @@ -859,12 +846,44 @@ void xen_register_ioreq(XenIOState *state, unsigned int
> max_cpus,
> QLIST_INIT(&state->dev_list);
> device_listener_register(&state->device_listener);
>
> + return;
> +
> +err:
> + error_report("xen hardware virtual machine initialisation failed");
> + exit(1);
> +}
> +
> +void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
> + MemoryListener xen_memory_listener)
> +{
> + int rc;
> +
> + state->xce_handle = xenevtchn_open(NULL, 0);
> + if (state->xce_handle == NULL) {
> + perror("xen: event channel open");
> + goto err;
> + }
> +
> + state->xenstore = xs_daemon_open();
> + if (state->xenstore == NULL) {
> + perror("xen: xenstore open");
> + goto err;
> + }
> +
> + rc = xen_create_ioreq_server(xen_domid, &state->ioservid);
> + if (!rc) {
> + xen_do_ioreq_register(state, max_cpus, xen_memory_listener);
> + } else {
> + warn_report("xen: failed to create ioreq server");
> + }
> +
> xen_bus_init();
>
> xen_register_backend(state);
>
> return;
> +
> err:
> - error_report("xen hardware virtual machine initialisation failed");
> + error_report("xen hardware virtual machine backend registration failed");
> exit(1);
> }
> --
> 2.17.0
>
>
- [QEMU][PATCH v4 00/10] Introduce xenpvh machine for arm architecture, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 01/10] hw/i386/xen/: move xen-mapcache.c to hw/xen/, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 02/10] hw/i386/xen: rearrange xen_hvm_init_pc, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 03/10] hw/i386/xen/xen-hvm: move x86-specific fields out of XenIOState, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 06/10] hw/xen/xen-hvm-common: skip ioreq creation on ioreq registration failure, Vikram Garhwal, 2023/01/25
- Re: [QEMU][PATCH v4 06/10] hw/xen/xen-hvm-common: skip ioreq creation on ioreq registration failure,
Stefano Stabellini <=
- [QEMU][PATCH v4 05/10] include/hw/xen/xen_common: return error from xen_create_ioreq_server, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 04/10] xen-hvm: reorganize xen-hvm and move common function to xen-hvm-common, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 08/10] meson.build: do not set have_xen_pci_passthrough for aarch64 targets, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 07/10] hw/xen/xen-hvm-common: Use g_new and error_setg_errno, Vikram Garhwal, 2023/01/25
- [QEMU][PATCH v4 09/10] hw/arm: introduce xenpvh machine, Vikram Garhwal, 2023/01/25