From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v1 05/10] libxl: synchronise configuration when we hotplug a device Date: Fri, 18 Jul 2014 12:22:46 +0100 Message-ID: <20140718112246.GH7142@zion.uk.xensource.com> References: <1405002745-5034-1-git-send-email-wei.liu2@citrix.com> <1405002745-5034-6-git-send-email-wei.liu2@citrix.com> <1405529339.1087.82.camel@kazak.uk.xensource.com> <20140716171217.GE4913@zion.uk.xensource.com> <1405597483.29996.17.camel@kazak.uk.xensource.com> <20140717141331.GN4913@zion.uk.xensource.com> <1405673372.4823.8.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1405673372.4823.8.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: ian.jackson@eu.citrix.com, Wei Liu , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Fri, Jul 18, 2014 at 09:49:32AM +0100, Ian Campbell wrote: > On Thu, 2014-07-17 at 15:13 +0100, Wei Liu wrote: > > On Thu, Jul 17, 2014 at 12:44:43PM +0100, Ian Campbell wrote: > > > On Wed, 2014-07-16 at 18:12 +0100, Wei Liu wrote: > > > > > > As we don't have a JSON config file for libxl toolstack domain > > > > > > (currently Dom0) we need to skip JSON manipulation for it. > > > > > > > > > > How hard would it be to create a stub/stunt JSON for dom0 when we notice > > > > > it is missing? Or from e.g. xencommons perhaps? > > > > > > > > > > > > > We need to determine: > > > > 1. when / where to generate such thing (xencommons?) > > > > 2. what to put in it > > > > > > > > I have yet had answers for #2. The simplest version can be "{}" I think. > > > > That is an empty configuration that every fields gets the default value. > > > > But we probably need more than that. > > > > > > I think you would want at least a name and perhaps a uuid? And cinfo > > > type == PV. > > > > > > Device arrays are all empty at start of day. > > > > > > Some of the stuff about target and maxmem you could perhaps infer at > > > start of day? > > > > > > > UUID (Dom0 doesn't seem to have one), name and memory targets can all be > > pulled from xenstore when they are required. > > > > And it occurs to me as I discovered Dom0 doesn't have UUID that we need > > to special-case reading / writing of Dom0's JSON config. That's because > > all other guests' JSON config are to be named with UUID and domain id. > > How annoying. :-( > > Indeed. > > I think you could generate one on boot and set it with > XEN_DOMCTL_setdomainhandle. It might be a bug that we don't do that > today (that said I can't see any evidence that xend used to do > differently). > I think this approach is OK. > > I would like to put as few things as possible in the stub because there > > doesn't seem to be a way to conveniently generate a valid JSON config > > for Dom0. Will you be against the idea of having 'xl generate-dom0-json' > > in xl to do that? Otherwise we have to basically generate a > > semi-handcoded stub in xencommons, or even a hardcoded stub. > > I'm in favour of some sort of command to "initialise dom0". Either part > of xl or a new helper app based on libxl. > > I had a similar (unposted I think) patch to add xl launch-dom0-qemu so > that it could pick the correct arch (see below, warning: it's a bit > skanky). If I were to do it again today I'd probably make a separate > $libexec helper instead of bolting it into xl though. > > Probably it should subsume this bit of xencommons too: > > echo Setting domain 0 name and domid... > ${BINDIR}/xenstore-write "/local/domain/0/name" "Domain-0" > ${BINDIR}/xenstore-write "/local/domain/0/domid" 0 > > What do you think? > Agreed. I'm think about adding "xl initialise-dom0", which: 1. generates UUID 2. writes relevant xenstore keys 3. generates stub JSON config 4. launches QEMU I think we always needs first 3 items. But I'm not quite sure about the 4th. It's more flexible to launch a process in xencommons, isn't it? Wei.