qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 1/2] xen_platform: unplug also SCSI disks


From: Stefano Stabellini
Subject: Re: [Qemu-devel] [PATCH v3 1/2] xen_platform: unplug also SCSI disks
Date: Fri, 21 Oct 2016 12:54:50 -0700 (PDT)
User-agent: Alpine 2.10 (DEB 1266 2009-07-14)

On Fri, 21 Oct 2016, Olaf Hering wrote:
> Using 'vdev=sd[a-o]' will create an emulated LSI controller, which can
> be used by the emulated BIOS to boot from disk. If the HVM domU has also
> PV driver the disk may appear twice in the guest. To avoid this an
> unplug of the emulated hardware is needed, similar to what is done for
> IDE and NIC drivers already.
> 
> Since the SCSI controller provides only disks the entire controller can
> be unplugged at once.
> 
> Impact of the change for classic and pvops based guest kernels:
> 
>  vdev=sda:disk0
> before: pvops:   disk0=pv xvda + emulated sda
>         classic: disk0=pv sda  + emulated sdq
> after:  pvops:   disk0=pv xvda
>         classic: disk0=pv sda
> 
>  vdev=hda:disk0, vdev=sda:disk1
> before: pvops:   disk0=pv xvda
>                  disk1=emulated sda
>         classic: disk0=pv hda
>                  disk1=pv sda  + emulated sdq
> after:  pvops:   disk0=pv xvda
>                  disk1=not accessible by blkfront, index hda==index sda
>         classic: disk0=pv hda
>                  disk1=pv sda
> 
>  vdev=hda:disk0, vdev=sda:disk1, vdev=sdb:disk2
> before: pvops:   disk0=pv xvda
>                  disk1=emulated sda
>                  disk2=pv xvdb + emulated sdb
>         classic: disk0=pv hda
>                  disk1=pv sda  + emulated sdq
>                  disk2=pv sdb  + emulated sdr
> after:  pvops:   disk0=pv xvda
>                  disk1=not accessible by blkfront, index hda==index sda
>                  disk2=pv xvdb
>         classic: disk0=pv hda
>                  disk1=pv sda
>                  disk2=pv sda
> 
> Signed-off-by: Olaf Hering <address@hidden>

Reviewed-by: Stefano Stabellini <address@hidden>


>  hw/i386/xen/xen_platform.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
> index f85635c..91d8a7a 100644
> --- a/hw/i386/xen/xen_platform.c
> +++ b/hw/i386/xen/xen_platform.c
> @@ -114,6 +114,10 @@ static void unplug_disks(PCIBus *b, PCIDevice *d, void 
> *o)
>              PCI_CLASS_STORAGE_IDE
>              && strcmp(d->name, "xen-pci-passthrough") != 0) {
>          pci_piix3_xen_ide_unplug(DEVICE(d));
> +    } else if (pci_get_word(d->config + PCI_CLASS_DEVICE) ==
> +            PCI_CLASS_STORAGE_SCSI
> +            && strcmp(d->name, "xen-pci-passthrough") != 0) {
> +        object_unparent(OBJECT(d));
>      }
>  }
>  
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]