|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Ping: [PATCH] libxl/PCI: defer backend wait upon attaching to PV guest
On 14.12.2021 08:49, Jan Beulich wrote:
> Attempting to wait when the backend hasn't been created yet can't work:
> the function will complain "Backend ... does not exist". Move the
> waiting past the creation of the backend (and that of other related
> nodes), hoping that there are no other dependencies that would now be
> broken.
>
> Fixes: 0fdb48ffe7a1 ("libxl: Make sure devices added by pci-attach are
> reflected in the config")
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> Just to make it explicit: I have no idea why the waiting is needed in
> the first place. It's been there from the very introduction of PCI
> passthrough support (commit b0a1af61678b). I therefore can't exclude
> that an even better fix would be to simply omit the 2nd hunk here.
Anyone, be it an ack or an alternative?
Jan
> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -157,11 +157,6 @@ static int libxl__device_pci_add_xenstor
> if (domtype == LIBXL_DOMAIN_TYPE_INVALID)
> return ERROR_FAIL;
>
> - if (!starting && domtype == LIBXL_DOMAIN_TYPE_PV) {
> - if (libxl__wait_for_backend(gc, be_path, GCSPRINTF("%d",
> XenbusStateConnected)) < 0)
> - return ERROR_FAIL;
> - }
> -
> back = flexarray_make(gc, 16, 1);
>
> LOGD(DEBUG, domid, "Adding new pci device to xenstore");
> @@ -213,6 +208,9 @@ static int libxl__device_pci_add_xenstor
> if (rc < 0) goto out;
> }
>
> + if (!starting && domtype == LIBXL_DOMAIN_TYPE_PV)
> + rc = libxl__wait_for_backend(gc, be_path, GCSPRINTF("%d",
> XenbusStateConnected));
> +
> out:
> libxl__xs_transaction_abort(gc, &t);
> if (lock) libxl__unlock_file(lock);
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |