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

[Xen-devel] Re: [PATCH] libxl: enabling upstream qemu as pure pv backend

To: Wei Liu <liuw@xxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] libxl: enabling upstream qemu as pure pv backend.
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Wed, 8 Jun 2011 12:33:12 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>, Stefano
Delivery-date: Wed, 08 Jun 2011 04:30:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1307503152.31359.2.camel@limbo>
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: <1307503152.31359.2.camel@limbo>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
On Wed, 8 Jun 2011, Wei Liu wrote:
> commit 02cf9f9cfdf720c636c6ba08f795e49b5eb1f03e
> Author: Wei Liu <liuw@xxxxxxxxx>
> Date:   Wed Jun 8 11:13:25 2011 +0800
> 
>     libxl: enabling upstream qemu as pure pv backend.
>     
>     This patch makes device_model_{version,override} work for pure pv
>     guest, so that users can specify upstream qemu as pure pv backend
>     other than traditional qemu-xen.
>     
>     Signed-off-by: Wei Liu <liuw@xxxxxxxxx>
> 
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index 62294b2..4ff3c7d 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -507,7 +507,8 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>          libxl_device_console_destroy(&console);
>  
>          if (need_qemu)
> -            libxl__create_xenpv_qemu(gc, domid, d_config->vfbs, 
> &dm_starting);
> +            libxl__create_xenpv_qemu(gc, domid, &d_config->dm_info,
> +                                     d_config->vfbs, &dm_starting);
>      }
>  
>      if (dm_starting) {
> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
> index 47a51c8..0505c84 100644
> --- a/tools/libxl/libxl_dm.c
> +++ b/tools/libxl/libxl_dm.c
> @@ -702,7 +702,7 @@ retry_transaction:
>          if (ret)
>              goto out_free;
>      }
> -    if (libxl__create_xenpv_qemu(gc, domid, vfb, &dm_starting) < 0) {
> +    if (libxl__create_xenpv_qemu(gc, domid, info, vfb, &dm_starting) < 0) {
>          ret = ERROR_FAIL;
>          goto out_free;
>      }
> @@ -909,8 +909,8 @@ static int libxl__build_xenpv_qemu_args(libxl__gc *gc,
>                                          libxl_device_model_info *info)
>  {
>      libxl_ctx *ctx = libxl__gc_owner(gc);
> -    memset(info, 0x00, sizeof(libxl_device_model_info));
>  
> +    info->vnc = 0;
>      if (vfb != NULL) {
>          info->vnc = vfb->vnc;
>          if (vfb->vnclisten)
> @@ -927,9 +927,12 @@ static int libxl__build_xenpv_qemu_args(libxl__gc *gc,
>          info->nographic = 1;
>      info->domid = domid;
>      info->dom_name = libxl_domid_to_name(ctx, domid);
> -    info->device_model_version = 
> LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
> -    info->device_model = NULL;
> -    info->type = LIBXL_DOMAIN_TYPE_PV;
> +    info->target_ram = 0;
> +    info->videoram = 0;
> +    info->acpi = 0;
> +    info->vcpus = 0;
> +    info->vcpu_avail = 0;
> +    info->xen_platform_pci = 0;
>      return 0;
>  }

I don't think is a good idea to reset all these value to 0 here,
considering that the info parameter can be passed by the user.
It is better to use another libxl_device_model_info local variable and
just copy the very few fields we care about.
Otherwise in the stubdom case above you'll have the unwanted side effect
of removing useful informations of the stubdom from the structure.


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

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