From mboxrd@z Thu Jan 1 00:00:00 1970 From: John McCullough Subject: XenStore Watch Behavior Date: Sat, 26 Aug 2006 13:32:22 -0700 Message-ID: <20060826203222.GA2835@cs.ucsd.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1229025498==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Mime-version: 1.0 Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --===============1229025498== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="dDRMvlgZJXvWKvBx" Content-Disposition: inline --dDRMvlgZJXvWKvBx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hello, I have noticed some issues with watches on XenStore. Mainly that multiple watches on the same node in a hierachy or a watch on a node and a child of that node do not fire as one might expect. I have been working on hvm domain forking and I am using the XenStore to communicate between xend and the qemu-dm. The first issue that I noticed was that you cannot use a single node to communicate state. Only one of the watches on the node would fire and no communication could occur. Using two nodes for bidirectional communication worked fine in normal operation, however, I discovered that during shutdown some other watch existed on the domain's path in the store and it blocked the watches on the xend side. Initially I was using a combination of xswatch with a Semaphore to perform blocking reads and the xswatch function was never getting triggered. I changed to using the interface more directly via xs.watch and xs.read_watch. I could block and read data, but after my own function terminated the xswatch interface would try to execute my token as an xswatch token. Adding a no-op .fn and empty .args and .kwargs to my token let this pass through. Unfortunately in general operations before guest destruction the changes that I wanted to be caught by xs.read_watch were being consumed by an unrelated xs.watch. What is the intended behavior of watches on the XenStore? Should only one watch be allowed on a given sub-hierarchy? Should the most specific watch be triggered alone? Should all watches be triggered? Regards, John McCullough --dDRMvlgZJXvWKvBx Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQFE8K/W48DoLwhCPR0RAtArAJ9I3y9hgLn9M6uveL8ytb/Ury9glACgj65H pcXpoQOiqwrXO3X+DJxAujs= =rjT+ -----END PGP SIGNATURE----- --dDRMvlgZJXvWKvBx-- --===============1229025498== 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 --===============1229025498==--