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] xenfb: make restartable

To: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] xenfb: make restartable
From: Markus Armbruster <armbru@xxxxxxxxxx>
Date: Fri, 15 Aug 2008 18:53:01 -0400
Cc: Xen Development Mailing List <xen-devel@xxxxxxxxxxxxxxxxxxx>, Gerd Hoffmann <kraxel@xxxxxxxxxx>
Delivery-date: Sat, 16 Aug 2008 04:22:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20080815222346.GE5198@implementation> (Samuel Thibault's message of "Fri\, 15 Aug 2008 23\:23\:46 +0100")
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: <48A40B17.2090701@xxxxxxxxxx> <20080814111520.GH4590@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48A4232B.6040500@xxxxxxxxxx> <20080814122931.GL4590@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48A43EAD.7040701@xxxxxxxxxx> <20080814142849.GS4590@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48A44967.4060401@xxxxxxxxxx> <20080814151359.GT4590@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20080814180251.GD4590@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <m3bpzubggl.fsf@xxxxxxxxxxxxxxxxxxxxx> <20080815222346.GE5198@implementation>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)
Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx> writes:

> Markus Armbruster, le Fri 15 Aug 2008 08:39:06 -0400, a écrit :
>> > +  if (!strcmp(dev->devicetype, "vfb")) {
>> > +      if (dev->xenfb->pixels) {
>> > +              munmap(dev->xenfb->pixels, dev->xenfb->fb_len);
>> > +              dev->xenfb->pixels = NULL;
>> > +      }
>> > +  }
>> >  }
>> >  
>> >  
>> 
>> The check for vfb is ugly.  The only alternative I can see is fb ==
>> dev->xenfb->fb.  Matter of taste.
>
> Hum, that was what I had written previously actually.  I don't see why
> it is "ugly", in that pixels is a device resource.  It should probably
> be in xenfb->fb actually.

struct xenfb_device captures stuff that both devices have.

By "is ugly" I meant to say that checking for vfb by testing its
devicetype string looks ugly to me.  But fb == dev->xenfb->fb isn't
exactly the acme of elegance either.

>> > @@ -653,6 +656,16 @@ static int xenfb_on_state_change(struct 
>> >               not much point in us continuing. */
>> >            return -1;
>> >    case XenbusStateInitialising:
>> > +          if (dev->state != XenbusStateClosed)
>> > +              /* Do not let a domain make us skip the closing state */
>> > +              return 0;
>> 
>> Why does this work?
>
> It's meant to not work.  If the frontend is not playing well (going
> through the closing state), then ignore what it's doing until it plays
> well. An alternative could be to just shut down.  In any case, we don't
> want to let it drive us to remapping something else without unmapping
> the previous fb.

We need to make up our mind how to handle invalid state transitions.

Is silently ignoring guest misbehavior smart?  I'd rather log it.

[...]

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