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] Xenbus behaviour

To: Glauber de Oliveira Costa <gcosta@xxxxxxxxxx>
Subject: Re: [Xen-devel] Xenbus behaviour
From: Ewan Mellor <ewan@xxxxxxxxxxxxx>
Date: Thu, 14 Dec 2006 12:18:00 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir@xxxxxxxxxxxxx>
Delivery-date: Thu, 14 Dec 2006 04:17:57 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1166108205.2371.7.camel@xxxxxxxxxxxxxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <C1A6BAA6.5D4E%keir@xxxxxxxxxxxxx> <1166108205.2371.7.camel@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
On Thu, Dec 14, 2006 at 09:56:45AM -0500, Glauber de Oliveira Costa wrote:

> On Thu, 2006-12-14 at 08:24 +0000, Keir Fraser wrote:
> > On 13/12/06 8:11 pm, "Glauber de Oliveira Costa" <gcosta@xxxxxxxxxx> wrote:
> > 
> > > I've noticed today that some xenbus state changes are reported twice, as
> > > in the follow example from dmesg:
> > > 
> > > state is 4 (Connected), /local/domain/8/device/vif/4/state,
> > > /local/domain/8/device/vif/4/stateDele
> > > state is 4 (Connected), /local/domain/8/device/vif/4/state,
> > > /local/domain/8/device/vif/4/stateDele
> > > 
> > > I'm not sure whether this is legal or a bug.
> > 
> > It's certainly legal, but a bit surprising and annoying. Only the 'state'
> > node is watched, so presumably it is getting written to twice?
> 
> I'm not yet sure about the root of this problem. But from what I've
> gathered so far, it seems (I'll try confirming this today) that the two
> fires are actually happening. But one of them is for InitWait, and the
> other one is for Closing. But when the first one is read, Closing state
> has already been written in the store, overwriting the old value. (It is
> not the situation that is shown in the log, tough. I'm analyzing it more
> on the guest side now). Result is that guest reads Closing twice, when
> it should be reading InitWait and Closing. Do you think this is a
> reasonable hypothesis ? 
> 
> Moreover, if multiple triggers are indeed valid, we should maybe take
> extra care about double fires in drivers. For example, this situation I'
> m describing crashes xennet on domU, because when receiving the second
> Closing, it tries to unregister_netdev() again, in an invalid state. 

That sounds like a reasonable hypothesis, yes, and it definitely needs
fixing.  There's always going to be a race between the watch firing and the
driver coming back to read things that may change underneath.  The watch
should always mean "something might have changed, go check", and nothing more
precise than that.

Ewan.

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

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