From mboxrd@z Thu Jan 1 00:00:00 1970 From: Diego Ongaro Subject: [PATCH RFC 5/5] Grant table for console, xenstore pages Date: Fri, 11 Jul 2008 20:17:50 +0100 Message-ID: <4877B1DE.8070809@citrix.com> References: <4877B09E.5000909@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4877B09E.5000909@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: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org If each of the files /var/run/{console,xenstore}.did contains an integer, this integer is interpreted as the domain id for that daemon. The default or fallback is domid=0, of course. In this patch, xend is modified to use this mechanism for the allocated unbound ports. Signed-off-by: Diego Ongaro --- diff -r 581c5525e1ac tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Thu Jul 10 19:50:48 2008 +0100 +++ b/tools/python/xen/xend/XendDomainInfo.py Fri Jul 11 15:30:06 2008 +0100 @@ -2427,17 +2427,26 @@ def _createChannels(self): """Create the channels to the domain. """ - self.store_port = self._createChannel() - self.console_port = self._createChannel() + def read_domid(service): + try: + f = open("/var/run/%s.did" % service) + try: + return int(f.read()) + finally: + f.close() + except (IOError, ValueError): + return 0 # assume domain 0 is providing service + self.store_port = self._createChannel(read_domid("xenstore")) + self.console_port = self._createChannel(read_domid("console")) - def _createChannel(self): + def _createChannel(self, remote_dom): """Create an event channel to the domain. """ try: if self.domid != None: return xc.evtchn_alloc_unbound(domid = self.domid, - remote_dom = 0) + remote_dom = remote_dom) except: log.exception("Exception in alloc_unbound(%s)", str(self.domid)) raise