[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH V4 23/24] libxl: consider force removal of device successful



On Tue, 2014-05-06 at 17:04 +0100, Wei Liu wrote:
> On Tue, May 06, 2014 at 04:48:40PM +0100, Ian Campbell wrote:
> > On Thu, 2014-05-01 at 13:58 +0100, Wei Liu wrote:
> > > If a device is force removed and the force removal successes, from
> > 
> > "succeeds".
> > 
> > > guest's PoV this device is gone. So the toolstack should consider this a
> > > successful case as well.
> > 
> > This seems rather self evident (consider success as success), were you
> > perhaps trying to say something opposite, which is that if a force
> > remove fails for some reason that we should (e.g. for the purposes of a
> > later migration etc) consider the device to have actually been removed?
> > 
> 
> No.
> 
> The commit message is written like this due to the current behavior.
> 
> If you remove a device, and the backend times out, libxl will try to
> force-remove (destroy) this device. Then it returns "fail to remove a
> device" even if the force removal is successful.
> 
> This is rather confusing because libxl tells you the removal fails, but
> actually the device is long gone from guest's PoV.

I see. I'm not sure how sensible I think this automatic fallback to
forcing is, but given that is the behaviour I think your change does
make sense. I'd be in favour of pasting most of your explanation above
into the commit message though and/or comments.

> > > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> > > ---
> > >  tools/libxl/libxl_device.c   |   12 ++++++++++--
> > >  tools/libxl/libxl_internal.h |    4 ++++
> > >  2 files changed, 14 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
> > > index fa99f77..7a37778 100644
> > > --- a/tools/libxl/libxl_device.c
> > > +++ b/tools/libxl/libxl_device.c
> > > @@ -845,6 +845,11 @@ void libxl__initiate_device_remove(libxl__egc *egc,
> > >          if (rc < 0) goto out;
> > >      }
> > >  
> > > +    /* At this point the XS transaction is commited. So check if we
> > > +     * force removal of the device.
> > 
> > "check if we were force removing the device". I think committed has two
> > t-s too (although I confess I'm not 100% sure...).
> > 
> 
> You're right. I have lots of typos in this series. :-(

FWIW I only spot other people's, not my own ;-)

> 
> > > +     */
> > > +    aodev->force_removed = aodev->force;
> > 
> > How and when can aodev->force_removed be distinct from aodev->force?
> > 
> 
> The removal of xenstore entries can fail. So we are only sure if the
> device is force removed if the xenstore transaction is committed.

If the xenstore commit fails the force_removed and force can differ?

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.