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] libxl: add support for booting PV domains from N

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] libxl: add support for booting PV domains from NetBSD using raw files as disks. Fixed the shutdown race problem by checking "hotplug-status" instead of "state" xenstore variable in NetBSD
From: Roger Pau Monné <roger.pau@xxxxxxxxxxxxx>
Date: Thu, 15 Sep 2011 17:19:14 +0200
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 15 Sep 2011 08:19:42 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=mKj3Vd2MoMU4TlClRMCDiNZRasEyCVfb0O/sUvC6+9c=; b=Ga1Cy6JWTBmYHHgTh0bwgj2skuE9f07WkG6P6ADqwpaqt/CKureNG5h/HGfTBcJIp6 o1KSKwlnRv6Uw0wPH1CAQmiki7ND9MR193DiV9brn2M3SyHBCV7s9PzBH/CAQEJULDGx OnksI+wtKmhJ1UfS2t/W/ERziA5+720qJgYbo=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1316094117.26990.8.camel@xxxxxxxxxxxxxxxxxxxxxx>
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: <015617579cd36fc58318.1316091805@loki> <1316094117.26990.8.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
2011/9/15 Ian Campbell <Ian.Campbell@xxxxxxxxxx>:
> On Thu, 2011-09-15 at 09:03 -0400, Roger Pau Monne wrote:
>> # HG changeset patch
>> # User Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
>> # Date 1316091721 -7200
>> # Node ID 015617579cd36fc58318aaf350bec5f7cc07ef2f
>> # Parent  63e254468d6e8d81baeafaed68f05791dc21eb4e
>> libxl: add support for booting PV domains from NetBSD using raw files
>> as disks. Fixed the shutdown race problem by checking "hotplug-status"
>> instead of "state" xenstore variable in NetBSD.
>
> This was one long line which mercurial will use as a summary, it's a
> good idea to make sure that the first line stands somewhat alone as a
> summary so the e.g. "hg log" is useful.
> Also this sounds on the face of it like two bugfixes, if that's the case
> they should be submitted separately.

Well, it's not a bugfix, because NetBSD was not supported by libxl, so
I think it's just part of the patch to add support for NetBSD to
libxl. I will split the line, and the patch if it's necessary, but one
doesn't make sense without the other, and I don't really know what
would be in each patch.

>>
>> Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
>>
>> diff -r 63e254468d6e -r 015617579cd3 tools/hotplug/NetBSD/block
>> --- a/tools/hotplug/NetBSD/block      Wed Sep 14 14:18:40 2011 +0200
>> +++ b/tools/hotplug/NetBSD/block      Thu Sep 15 15:02:01 2011 +0200
>> @@ -19,7 +19,7 @@ error() {
>>
>>  xpath=$1
>>  xstatus=$2
>> -xtype=$(xenstore-read "$xpath/type")
>> +xtype=$3
>>  xparams=$(xenstore-read "$xpath/params")
>>
>>  case $xstatus in
>> @@ -38,6 +38,8 @@ 6)
>>               echo "unknown type $xtype" >&2
>>               ;;
>>       esac
>> +     echo xenstore-write $xpath/hotplug-status disconnected
>
> leftover debugging?

The block NetBSD script contains some echos, so I feel it would be
interesting to add this one too.

>> +     xenstore-write $xpath/hotplug-status disconnected
>>       xenstore-rm $xpath
>>       exit 0
>>       ;;
>>      libxl_ctx *ctx = libxl__gc_owner(gc);
>>      xs_transaction_t t;
>>      char *state_path = libxl__sprintf(gc, "%s/state", be_path);
>> +    char *hotplug_path = libxl__sprintf(gc, "%s/hotplug-status", be_path);
>>      char *state = libxl__xs_read(gc, XBT_NULL, state_path);
>> +    char *hotplug = libxl__xs_read(gc, XBT_NULL, hotplug_path);
>>      int rc = 0;
>>
>>      if (!state)
>>          goto out;
>> +
>> +#ifdef HAVE_PHY_BACKEND_FILE_SUPPORT
>> +    if (!strstr(be_path, "vbd")) {
>> +        if (atoi(state) != 4) {
>> +            xs_rm(ctx->xsh, XBT_NULL, be_path);
>> +            goto out;
>> +        }
>> +    } else {
>> +        if (!hotplug)
>> +            goto out;
>> +        if (!strcmp(hotplug, "disconnected")) {
>> +            xs_rm(ctx->xsh, XBT_NULL, be_path);
>> +            goto out;
>> +        }
>> +    }
>
> Do the other backend types also write this node? It looks like Linux
> does, at least in some circumstances (tap and vbd AFAICT), in which case
> perhaps this is suitable as the only test here (i.e. drop the #ifdef and
> the #else case). That would remove a lot of the conditional code in this
> patch.

If Linux also uses this, I will have to modify the Linux block script,
so that it sets hotplug-status to "disconnected" also. This will be
nice, I don't like code with #ifdefs as it tends to get messy and it's
not easy to understand.

Regards, Roger.

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