From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick Colp Subject: Re: OCaml xenstored Date: Wed, 16 Jul 2008 13:07:57 -0700 Message-ID: <487E551D.80000@cs.ubc.ca> References: <487E3D01.20601@cs.ubc.ca> <487E3FAB.4050707@citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010209050504060901010607" Return-path: In-Reply-To: <487E3FAB.4050707@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Diego Ongaro Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------010209050504060901010607 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit > I think you've overlooked to include a copyright statement or license. Oops, thanks. Attached is the copyrighted and licensed version (GPL). Just to make it clear, this is very much a work-in-progress and I've also added a TODO file outlining what I'm working on now (or will be soon). I posted before about some of the issues with the current XenStore daemon implementation. Unfortunately, this initial version of the OCaml daemon does not address most the concerns. However, it has improved the performance as now the store is an in-memory tree rather than a file-backed TDB. The eventual goal is to have a safe and simple XenStore implementation that can run either as a dom0 process or in its own domain. The main issues I'm looking at fixing right now are transactions and supporting modularised security policies. I found something interesting while developing. The original protocol specified that it is conventional that a node should not contain both data and children. In the proposed cleaned up protocol, I specified that this property should be enforced (not just conventional). However, when I enforced it, I found that firing up xend would fail as there was a node that tried to have both data and children. I had to add a hack so that this would work. The guilty node is: /vm/image. Here's an example dump of the vm subtree of XenStore just after xend has been run: vm = "" 00000000-0000-0000-0000-000000000000 = "" on_xend_stop = "ignore" shadow_memory = "0" uuid = "00000000-0000-0000-0000-000000000000" on_reboot = "restart" image = "(linux (kernel ))" ostype = "linux" kernel = "" cmdline = "" ramdisk = "" on_poweroff = "destroy" on_xend_start = "ignore" on_crash = "restart" xend = "" restart_count = "0" vcpus = "2" vcpu_avail = "3" name = "Domain-0" I'm not sure if this problem occurs anywhere else, but I think ideally these would be fixed so that a node does in fact have only data or children, and never both. Patrick Diego Ongaro wrote: > Patrick Colp wrote: >> I have completed my first version of said OCaml XenStore daemon, which >> I've attached to this message. It contains the source files, Makefile, >> and a README. > > I think you've overlooked to include a copyright statement or license. > -Diego --------------010209050504060901010607 Content-Type: application/x-bzip; name="xenstored-ocaml.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="xenstored-ocaml.tar.bz2" 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 i5a5NjZvMpZkCf3i7kinChIPBlSMQA== --------------010209050504060901010607 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------010209050504060901010607--