Hi again,

any thoughts on this topic? Questions, suggestions, criticism? I can make
patches to discuss code, but it would rather be handly if I'd be on the
same page with everyone here to make something generically useful.


Suikov Pavlo
GlobalLogic
P +x.xxx.xxx.xxxx  M +38.066.667.1296  S psujkov
www.globallogic.com
<http://www.globallogic.com/>
http://www.globallogic.com/email_disclaimer.txt

On Mon, Jan 25, 2016 at 3:38 PM, Pavlo Suikov <pavlo.sui...@globallogic.com>
wrote:

> Hi everyone,
>
> I want to bring domain restart question for a discussion. It originates
> from DomD restart, but the solution I am about to offer can be quite
> generic.
>
> Problem is, domain specification currently holds only frontend info, which
> is used to generate both frontend and backend entries for a device; that
> means that backend xenstore data is handled not by a domain that owns
> backends, but by a domain that has frontends linked to these backends. As a
> result, reboot of any domain with backends without reboot of the
> corresponding frontend domains is impossible.
>
> This is wrong on many levels, but the main thing is: some domains don't
> know something they should (do they have any backends) and some know
> something they should not (there are backends for their frontends in
> different domains).
>
> I propose following change: make domain "require" and "provide" interfaces
> visible (think CORBA), hold connections between the two in the priveleged
> domain (where toolstack is, think controller from the MVC idiom). With this
> change domains (except for Dom0 which is a special case) can be rebooted in
> any order whatsoever, and frontend/backend link can be adjusted as a static
> config or during runtime (e.g. if hardware rendering backend hangs, switch
> to software rendering to avoid glitches). However, it requires change in
> the libxl internal device representation (device should not be a
> frontend/backend pair any more) and config format change, which breaks
> backwards compatibility.
>
> That is, I want domain configuration hold records on both frontends (what
> this domain require) and backends (what this domain provides) and libxl to
> create corresponding xenstore branches separately. Moreover, I'd like to
> have frontend/backend connection information be held in a different config
> belonging to Dom0, so that on any domain reboot (or any exceptional
> situation like watchdog failure) supervisor (Dom0) can use this information
> to initiate a reconnect.
>
> And, as we talk about libxl refactoring, I'd like to state one point more:
> code duplication. Libxl support for a split-driver model consists of an
> declarative IDL device specification, xenstore read, xenstore write, config
> read, config write, xl args read, JSON read/write and device chain of
> responsibility with async device creation. The only thing IDL is used for
> is type and JSON read/write code generation, everything else is an
> error-prone hand-written duplicated code.
>
> Why won't we generate as much as we can? That means generation of xenstore
> read, xenstore write, config read, config write and xl args read - these
> all directly depend on device IDL specification. If we already have
> external code generation tool, why not use it to full extent instead of
> writing all this serialization/deserialization code manually (and in
> different styles - e.g. block device is the only one that uses lexx, and
> xl_cmdimpl.c parse_config_data implementations differs from device to
> device quite a lot)?
>
> As a matter of fact, I'd be doing some work in this general direction
> because we need DomD restart anyway and libxl boilerplate is kinda messy
> (we have ~12 devices and xl/libxl interface patches for them are almost
> copy and pasted), but I would like to hear as much criticism and ideas as
> possible. It would be nice if we can come out from this discussion with
> something potentially upstreamable.
>
> Suikov Pavlo
> GlobalLogic
> P +x.xxx.xxx.xxxx  M +38.066.667.1296  S psujkov
> www.globallogic.com
> <http://www.globallogic.com/>
> http://www.globallogic.com/email_disclaimer.txt
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to