WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] xend: notify xenpv device model that console inf

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] xend: notify xenpv device model that console info is ready
From: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Date: Wed, 24 Feb 2010 12:59:22 +0900
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Tue, 23 Feb 2010 20:00:45 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20100223150246.GE25741@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <7k7hq4ph63.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxx> <20100223150246.GE25741@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi,

I don't have the confidence to resolve the race condition quickly
since the xend is so complex.

Solutions come to my mind are:

1) XendDomainInfo.py: exchange the exec order of _createDevices() from 
_initDomain() and _storeDomDetails()
2) XendDomainInfo.py: don't spawn qemu-dm until _storeDomDetails()

But they both give much influences and there are many places to be fixed.

Another solution is to fix the qemu-dm. It might be better,
though, I think that the interface between qemu-dm and xend
shouldn't be changed. 

So, I push this patch. It's simple and sure to fix the issue.

Thanks,
Kouya

Konrad Rzeszutek Wilk writes:
> On Tue, Feb 23, 2010 at 04:03:48PM +0900, Kouya Shimura wrote:
> Content-Description: message body text
> > Sometimes PV domain with vfb doesn't boot up. /sbin/kudzu is stuck.
> > After investigation, I've found that the evtchn for console is not
> > bound at all.
> > 
> > Normal sequence of evtchn initialization in qemu-dm for xenpv is:
> > 1) watch xenstore backpath (/local/domain/0/backend/console/<domid>/0)
> > 2) read console info (/local/domain/<domid>/console/{type, ring-ref, 
> > port..})
> > 3) bind the evtchn to the port.
> > 
> > But in some case, xend writes to the backpath before the console info
> 
> Would it be better to fix the race condition?
> 
> > is prepared, and never write to the backpath again. So the qemu-dm fails
> > at 2) and never reach to 3).
> > 
> > When this happens, manually xenstore-write command on Domain-0
> > resumes the guest.
> > 
> > Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
> > 
> 
> > diff -r 4ba4323889b9 tools/python/xen/xend/XendDomainInfo.py
> > --- a/tools/python/xen/xend/XendDomainInfo.py       Mon Feb 22 18:47:22 
> > 2010 +0000
> > +++ b/tools/python/xen/xend/XendDomainInfo.py       Tue Feb 23 14:50:40 
> > 2010 +0900
> > @@ -1642,6 +1642,11 @@ class XendDomainInfo:
> >                  console_uuid = serial_consoles[0].get('uuid')
> >                  self.info.console_update(console_uuid, 'location',
> >                                           self.console_port)
> > +                # Notify xenpv device model that console info is ready
> > +                if not self.info.is_hvm() and self.info.has_rfb():
> > +                    console_ctrl = self.getDeviceController('console')
> > +                    # The value is unchanged. Just for xenstore watcher
> > +                    console_ctrl.writeBackend(0, 'uuid', console_uuid)
> >                  
> >  
> >          # Update VNC port if it exists and write to xenstore
> 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>