|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/2] libxl: do not automatically force detach of block devices
On Fri, Sep 04, 2020 at 10:47:37AM +0100, Paul Durrant wrote:
> > -----Original Message-----
> > From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> > Sent: 04 September 2020 09:53
> > To: Paul Durrant <paul@xxxxxxx>
> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Paul Durrant <pdurrant@xxxxxxxxxx>; Ian
> > Jackson
> > <iwj@xxxxxxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Anthony PERARD
> > <anthony.perard@xxxxxxxxxx>
> > Subject: Re: [PATCH 2/2] libxl: do not automatically force detach of block
> > devices
> >
> > On Thu, Sep 03, 2020 at 11:05:37AM +0100, Paul Durrant wrote:
> > > From: Paul Durrant <pdurrant@xxxxxxxxxx>
> > >
> > > The manpage for 'xl' documents that guest co-operation is required for a
> > > (non-
> > > forced) block-detach operation and that it may consequently fail.
> > > Currently,
> > > however, the implementation of generic device removal means that a
> > > time-out
> > > of a block-detach is being automatically re-tried with the force flag set
> > > rather than failing. This patch stops such behaviour.
> >
> > Won't this break cleanup on domain shutdown if the guest doesn't close
> > the devices itself?
> >
>
> I don't think so... AFAIK that's a destroy i.e. it's always forced (since
> there's no way the guest can co-operate at the point).
Urgh, yes, sorry.
> > I think we need some special-casing on shutdown that keeps the current
> > behavior on that case.
> >
> > >
> > > Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>
> > > ---
> > > Cc: Ian Jackson <iwj@xxxxxxxxxxxxxx>
> > > Cc: Wei Liu <wl@xxxxxxx>
> > > Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> > > ---
> > > tools/libxl/libxl_device.c | 9 ++++++---
> > > 1 file changed, 6 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
> > > index 0381c5d509..d17ca78848 100644
> > > --- a/tools/libxl/libxl_device.c
> > > +++ b/tools/libxl/libxl_device.c
> > > @@ -1092,7 +1092,8 @@ static void device_backend_callback(libxl__egc
> > > *egc, libxl__ev_devstate *ds,
> > >
> > > if (rc == ERROR_TIMEDOUT &&
> > > aodev->action == LIBXL__DEVICE_ACTION_REMOVE &&
> > > - !aodev->force) {
> > > + !aodev->force &&
> > > + aodev->dev->kind != LIBXL__DEVICE_KIND_VBD) {
> >
> > Doing this differentiation for block only seems weird, we should treat
> > all devices equally.
> >
>
> That is not how things are documented in the xl manpage though; block-detach
> is the only one to have a force option. I assume that was deliberate.
Oh right, that's weird. I guess removing a block device without guest
cooperation will likely result in a guest crash, while the same it's
not true for other devices.
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |