[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [DOCDAY PATCH] docs: initial documentation for xenstore paths
On Thu, 2012-08-09 at 15:02 +0100, Ian Jackson wrote: > Ian Campbell writes ("Re: [DOCDAY PATCH] docs: initial documentation for > xenstore paths"): > ... > > > --- a/docs/misc/xenstore-paths.markdown > > > +++ b/docs/misc/xenstore-paths.markdown > > > @@ -0,0 +1,294 @@ > ... > > > +PATH can contain simple regex constructs following the POSIX regexp > > > +syntax described in regexp(7). In addition the following additional > > > +wild card names are defined and are evaluated before regexp expansion: > > Can we use a restricted perl re syntax ? That avoids weirdness with > the rules for \. Is "restricted perl re syntax" a well defined thing (reference?) or do you just mean perlre(1)--? What's the weirdness with \.? > Also how does this interact with markdown ? The html version looks ok after a brief inspection. > > > +#### ~/image/device-model-pid = INTEGER [r] > > This [r] tag is not defined above. I assume you mean "readonly to the > domain" but that's the default. Left over from an earlier version ? Yes, it's vestigial. Remove it. > > > > +The process ID of the device model associated with this domain, if it > > > +has one. > > > + > > > +XXX why is this visible to the guest? > > I think some of these things were put here just because there wasn't > another place for the toolstack to store things. See also the > arbitrary junk stored by scripts in the device backend directories. Should we define a proper home for these? e.g. /$toolstack/$domid? > > > +#### ~/cpu/[0-9]+/availability = ("online"|"offline") [PV] > > > + > > > +One node for each virtual CPU up to the guest's configured > > > +maximum. Valid values are "online" and "offline". > > Should have a cross-reference to the cpu online/offline protocol, > which appears to be in xen/include/public/vcpu.h. It doesn't seem to > be fully documented yet. vcpu.h has the hypercalls which are the mechanism by which a guest brings a cpu up/down but nothing on the xenstore protocol which might cause it to do so. I don't think a reference currently exists for that protocol. This probably belongs in the same (non-existent) protocol doc as ~/control/shutdown in so much as it is a toolstack<->guest kernel protocol. > > > +#### ~/memory/static-max = MEMKB [] > > > + > > > +Specifies a static maximum amount memory which this domain should > > > +expect to be given. In the absence of in-guest memory hotplug support > > > +this set on domain boot and is usually the maximum amount of RAM which > > > +a guest can make use of . > > This should have a cross-reference to the documentation defining > static-max etc. I thought we had some in tree but I can't seem to > find it. The best I can find is docs/man/xl.cfg.pod.5. I think you might be thinking of tools/libxl/libxl_memory.txt. Shall we move that doc to docs/misc? > > > > +#### ~/memory/target = MEMKB [] > > > + > > > +The current balloon target for the domain. The balloon driver within the > > > guest is expected to make every effort > > every effort to ... ? err. yes. I appear to have got distracted there ... Perhaps: every effort to ... reach this target ? but I'm not sure that is strictly correct, a guest can use less if it wants to. So perhaps every effort to ... not use more than this ? seems clumsy though. > > The interaction with the Xen maximum should be stated, preferably by > cross-reference. In general it might be better to have a single place > where all these values and their semantics are written down ? > > > > +#### ~/device/suspend/event-channel = ""|EVTCHN [w] > > > + > > > +The domain's suspend event channel. The use of a suspend event channel > > > +is optional at the domain's discression. If it is not used then this > > > +path will be left blank. > > May it be ENOENT ? Does the toolstack create it as "" then ? libxl seems to *mkdir* it: libxl__xs_mkdir(gc, t, libxl__sprintf(gc, "%s/device/suspend/event-channel", dom_path), rwperm, ARRAY_SIZE(rwperm)); which I suppose is the same as writing it as "" (unless there is some subtle xenstore semantic difference I'm not thinking of) If xend writes this key then I can't find it. I rather suspect the ~/device/suspend is guest writeable in that case (but I can't find that either). While grepping around I noticed xs_suspend_evtchn_port which reads this. Seems like an odd place for it... > > > > +#### ~/device/serial/$DEVID/* [HVM] > > > + > > > +An emulated serial device > > You should presumably add > XXX documentation for the protocol needed > here. I think this is in docs/misc/console.txt along with the PV stuff, so I've added that as a reference. > > > > +#### ~/store/port = EVTCHN [] > > > + > > > +The event channel used by the domains connection to XenStore. > > Apostrophe. > > > > +XXX why is this exposed to the guest? > > Is there really only one event channel ? Ie the same evtchn is used > to signal to xenstore that the guest has sent a command, and to signal > the guest that xenstore has written the response ? Yes, event channels are bidirectional so that's quite common. > Anyway surely this is something the guest needs to know. Why it's in > xenstore is a bit of a mystery since you can't use xenstore without it > and it's in the start_info. I should have written "why is this exposed to the guest via xenstore?" > Is this the same value as start_info.store_evtchn ? Cross reference ? I'd be semi inclined to ditch/deprecate it unless we can figure out what it is for -- as you say there is something of a chicken and egg problem with using it. > > > > +#### ~/store/ring-ref = GNTREF [] > > > + > > > +The grant reference of the domain's XenStore ring. > > > + > > > +XXX why is this exposed to the guest? > > See above. Yup, the same issues. > > > +#### ~/device-model/$DOMID/* [] > > > + > > > +Information relating to device models running in the domain. $DOMID is > > > +the target domain of the device model. > > > + > > > +XXX where is the contents of this directory specified? > > I think it's not specified anywhere. It's ad-hoc. The guest > shouldn't need to see it but exposing it readonly is probably > harmless. Except perhaps for the vnc password ? vnc password appears to go into /vm/$uuid/vncpass (looking at libxl code only). AFAIK it does nothing special with the perms, but /vm/$uuid is not guest readable (perms are "n0") so I think that works out ok. I wonder if that's part of the point of /vm/$uuid. > > > +### /vm/$UUID/uuid = UUID [] > > > + > > > +Value is the same UUID as the path. > > > + > > > +### /vm/$UUID/name = STRING [] > > > + > > > +The domains name. > > IMO this should be > (a) in /local/domain/$DOMID > (b) also a copy in /byname/$NAME = $DOMID for fast lookup > but not in 4.2. > > Guests shouldn't rely on it. In fact do guests actually need anything > from here ? I'd say definitely not, but it has existed with xend for many years so I'd be surprised if something hadn't crept in somewhere :-( Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |