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

Re: [Xen-devel] reboot driver domain, vifX.Y = NO-CARRIER?



Hi Wei Liu,

On Fri, Apr 27, 2018 at 05:58:17PM +0100, Wei Liu wrote:
> On Fri, Apr 27, 2018 at 04:14:16PM +0000, Jason Cooper wrote:
> > On Fri, Apr 27, 2018 at 04:52:57PM +0100, Andrew Cooper wrote:
...
> > > xc_domain_create() takes a domid value by pointer.  Passing a value
> > > other than zero will cause Xen to use that domid, rather than by
> > > searching for the next free domid.
> > > 
> > > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> > > index b5e27a7..7866092 100644
> > > --- a/tools/libxl/libxl_create.c
> > > +++ b/tools/libxl/libxl_create.c
> > > @@ -583,6 +583,7 @@ int libxl__domain_make(libxl__gc *gc,
> > > libxl_domain_config *d_config,
> > >              goto out;
> > >          }
> > >  
> > > +        *domid = atoi(getenv("OVERRIDE_DOMID") ?: "0");
> > >          ret = xc_domain_create(ctx->xch, info->ssidref, handle, flags, 
> > > domid,
> > >                                 &xc_config);
> > >          if (ret < 0) {
> > > 
> > > This gross hack may get you somewhere (Entirely untested).
> > 
> > Gah!  Yep, that's just what I needed, thanks!  I don't suppose a patch
> > series adding a 'domid' field to the domain config file would be
> > rejected outright?  That would allow callers of xl to use key=value for
> > reboot scripts like mine, and also allow for a static domid setup of the
> > driver domains if folks want that.
> 
> Seems a bit  hacky to me. You also need to reserve a set of domids
> before hand?

My thought of creating a domid config file variable was to do just as
you say, reserve specific domids for specific guests.  I could even
trigger an error if domid is set when driver_domain isn't.

Actually, I could slightly overload driver_domain, changing from a bool
to a 'static domid'.  0 = not a driver domain, >0 is it's static domid
assignment.

For backwards compatibility, 1 = next domid available, and >1 would be
the static domid.  I'm not sure if I like that though.

The racey part is when a driver domain is shut down, how does a create
thread know that that domid is reserved?

third option, tri-state:

driver_domain = 0   # not a driver domain
driver_domain = 1   # is a driver domain, use next avail domid
driver_domain = 2   # is a driver domain, re-use domid

Honestly, I'm not really liking any of these.  Perhaps 'xl
network-detach ...' should be doing a better job of cleaning up?  Or,
'xl network-attach ...' should do a better job of re-attaching?

thx,

Jason.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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