[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] handling local attach of phy disks for pygrub (Was: Xen 4.3 xl migrate " htree_dirblock_to_tree" on second host)



On Wed, 2014-02-12 at 11:46 +0100, Roger Pau Monnà wrote:

> I though this was already working on libxl... Could you please test the 
> attached patch? Which is basically the chunk Ian posted above plus the 
> libxl__device_disk_local_initiate_detach part.

Did this patch work?

> 
> ---
> commit 3bcf91cbbd9a18db9ae7d594ffde7979774ed512
> Author: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> Date:   Wed Feb 12 11:15:17 2014 +0100
> 
>     libxl: local attach support for PHY backends using scripts
>     
>     Allow disks using the PHY backend to locally attach if using a script.
>     
>     Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx>
>     Suggested-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> 
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 730f6e1..5cb46a1 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -2630,6 +2630,16 @@ void 
> libxl__device_disk_local_initiate_attach(libxl__egc *egc,
>  
>      switch (disk->backend) {
>          case LIBXL_DISK_BACKEND_PHY:
> +            if (disk->script != NULL) {
> +                LOG(DEBUG, "trying to locally attach PHY device %s with 
> script %s",
> +                           disk->pdev_path, disk->script);
> +                libxl__prepare_ao_device(ao, &dls->aodev);
> +                dls->aodev.callback = local_device_attach_cb;
> +                device_disk_add(egc, LIBXL_TOOLSTACK_DOMID, disk,
> +                                &dls->aodev, libxl__alloc_vdev,
> +                                (void *) blkdev_start);
> +                return;
> +            }
>              LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching PHY disk 
> %s",
>                         disk->pdev_path);
>              dev = disk->pdev_path;
> @@ -2709,7 +2719,7 @@ static void local_device_attach_cb(libxl__egc *egc, 
> libxl__ao_device *aodev)
>      }
>  
>      dev = GCSPRINTF("/dev/%s", disk->vdev);
> -    LOG(DEBUG, "locally attaching qdisk %s", dev);
> +    LOG(DEBUG, "locally attached disk %s", dev);
>  
>      rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID, disk, &device);
>      if (rc < 0)
> @@ -2749,6 +2759,7 @@ void 
> libxl__device_disk_local_initiate_detach(libxl__egc *egc,
>      if (!dls->diskpath) goto out;
>  
>      switch (disk->backend) {
> +        case LIBXL_DISK_BACKEND_PHY:
>          case LIBXL_DISK_BACKEND_QDISK:
>              if (disk->vdev != NULL) {
>                  GCNEW(device);
> @@ -2766,7 +2777,6 @@ void 
> libxl__device_disk_local_initiate_detach(libxl__egc *egc,
>              /* disk->vdev == NULL; fall through */
>          default:
>              /*
> -             * Nothing to do for PHYSTYPE_PHY.
>               * For other device types assume that the blktap2 process is
>               * needed by the soon to be started domain and do nothing.
>               */
> 
> 
> 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.