|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V5 31/32] libxl: update domain configuration when updating memory targets
On Tue, 2014-05-20 at 16:21 +0100, Ian Jackson wrote:
> Wei Liu writes ("[PATCH V5 31/32] libxl: update domain configuration when
> updating memory targets"):
> > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ...
> > @@ -4005,6 +4024,14 @@ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t
> > domid, uint32_t max_memkb)
> > goto out;
> > }
> >
> > + {
> > + LOAD_DOMAIN_CONFIG(domid);
> > +
> > + d_config.b_info.max_memkb = max_memkb;
> > +
> > + STORE_DOMAIN_CONFIG(domid);
>
> I think this is a fundamentally hazardous way to deal with domain
> configuration updates.
>
> The result is that there are two places where the domain's maximum
> memory is recorded - the actual running domain state, and the saved
> json configuration. In error situations it is possible for these to
> become out of step.
>
> What you should do instead is have the domain configuration retrieval
> code (currently known as libxl_load_domain_configuration) do
> xc_domain_getmaxmem (or whatever it is) and update the value in the
> config data it is about to return.
>
> That way there is only one place where the maxmem information is
> stored. (There is of course another copy in the json config state but
> it will always be ignored so can be disregarded.) So it is not
> possible for the system to be in an inconsistent state.
>
> The same considerations apply to device addition and removal, vif MAC
> address update, etc.
The device cases in particular are a lot harder to handle in that way.
This was how I originally envisaged this would work, Wei's approach
seemed to me to be much much simpler.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |