Patchwork hw/virtio-scsi: Set max_target=0 during vhost-scsi operation

login
register
mail settings
Submitter Nicholas A. Bellinger
Date July 11, 2012, 8:55 p.m.
Message ID <1342040128-29176-1-git-send-email-nab@linux-iscsi.org>
Download mbox | patch
Permalink /patch/170513/
State New
Headers show

Comments

Nicholas A. Bellinger - July 11, 2012, 8:55 p.m.
From: Nicholas Bellinger <nab@linux-iscsi.org>

This QEMU patch sets VirtIOSCSIConfig->max_target=0 for vhost-scsi operation
to restrict virtio-scsi LLD guest scanning to max_id=0 (a single target ID
instance) when connected to individual tcm_vhost endpoints as requested by
Paolo.

This ensures that virtio-scsi LLD only attempts to scan target IDs up to
VIRTIO_SCSI_MAX_TARGET when connected via virtio-scsi-raw.

It's currently cut against Zhi's qemu vhost-scsi tree here:

   https://github.com/wuzhy/qemu/tree/vhost-scsi

Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
---
 hw/virtio-scsi.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
Zhiyong Wu - July 12, 2012, 5:34 a.m.
HI,

Do we need to maintain one QEMU branch to collect all useful latest
patches for tcm_vhost support?  You know, those patches will not get
merged into qemu.git/master.


On Thu, Jul 12, 2012 at 4:55 AM, Nicholas A. Bellinger
<nab@linux-iscsi.org> wrote:
> From: Nicholas Bellinger <nab@linux-iscsi.org>
>
> This QEMU patch sets VirtIOSCSIConfig->max_target=0 for vhost-scsi operation
> to restrict virtio-scsi LLD guest scanning to max_id=0 (a single target ID
> instance) when connected to individual tcm_vhost endpoints as requested by
> Paolo.
>
> This ensures that virtio-scsi LLD only attempts to scan target IDs up to
> VIRTIO_SCSI_MAX_TARGET when connected via virtio-scsi-raw.
>
> It's currently cut against Zhi's qemu vhost-scsi tree here:
>
>    https://github.com/wuzhy/qemu/tree/vhost-scsi
>
> Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
> ---
>  hw/virtio-scsi.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
> index e38cdd0..71276b6 100644
> --- a/hw/virtio-scsi.c
> +++ b/hw/virtio-scsi.c
> @@ -523,7 +523,11 @@ static void virtio_scsi_get_config(VirtIODevice *vdev,
>      stl_raw(&scsiconf->sense_size, s->sense_size);
>      stl_raw(&scsiconf->cdb_size, s->cdb_size);
>      stl_raw(&scsiconf->max_channel, VIRTIO_SCSI_MAX_CHANNEL);
> -    stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
> +    if (s->vhost_scsi) {
> +        stl_raw(&scsiconf->max_target, 0);
> +    } else {
> +        stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
> +    }
>      stl_raw(&scsiconf->max_lun, VIRTIO_SCSI_MAX_LUN);
>  }
>
> --
> 1.7.2.5
>
> --
> You received this message because you are subscribed to the Google Groups "Linux-iSCSI.org Target Development" group.
> To post to this group, send email to linux-iscsi-target-dev@googlegroups.com.
> To unsubscribe from this group, send email to linux-iscsi-target-dev+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/linux-iscsi-target-dev?hl=en.
>
Paolo Bonzini - July 12, 2012, 6:24 a.m.
Il 12/07/2012 07:34, Zhi Yong Wu ha scritto:
> HI,
> 
> Do we need to maintain one QEMU branch to collect all useful latest
> patches for tcm_vhost support?  You know, those patches will not get
> merged into qemu.git/master.

Never say never, but the answer to your question is yes: please apply
this patch to your vhost-scsi branch and push it to github.

Paolo
Zhiyong Wu - July 12, 2012, 6:59 a.m.
thanks, it is applied to my vhost_scsi git tree
git://github.com/mdroth/qemu.git vhost-scsi


On Thu, Jul 12, 2012 at 4:55 AM, Nicholas A. Bellinger
<nab@linux-iscsi.org> wrote:
> From: Nicholas Bellinger <nab@linux-iscsi.org>
>
> This QEMU patch sets VirtIOSCSIConfig->max_target=0 for vhost-scsi operation
> to restrict virtio-scsi LLD guest scanning to max_id=0 (a single target ID
> instance) when connected to individual tcm_vhost endpoints as requested by
> Paolo.
>
> This ensures that virtio-scsi LLD only attempts to scan target IDs up to
> VIRTIO_SCSI_MAX_TARGET when connected via virtio-scsi-raw.
>
> It's currently cut against Zhi's qemu vhost-scsi tree here:
>
>    https://github.com/wuzhy/qemu/tree/vhost-scsi
>
> Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
> ---
>  hw/virtio-scsi.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
> index e38cdd0..71276b6 100644
> --- a/hw/virtio-scsi.c
> +++ b/hw/virtio-scsi.c
> @@ -523,7 +523,11 @@ static void virtio_scsi_get_config(VirtIODevice *vdev,
>      stl_raw(&scsiconf->sense_size, s->sense_size);
>      stl_raw(&scsiconf->cdb_size, s->cdb_size);
>      stl_raw(&scsiconf->max_channel, VIRTIO_SCSI_MAX_CHANNEL);
> -    stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
> +    if (s->vhost_scsi) {
> +        stl_raw(&scsiconf->max_target, 0);
> +    } else {
> +        stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
> +    }
>      stl_raw(&scsiconf->max_lun, VIRTIO_SCSI_MAX_LUN);
>  }
>
> --
> 1.7.2.5
>
> --
> You received this message because you are subscribed to the Google Groups "Linux-iSCSI.org Target Development" group.
> To post to this group, send email to linux-iscsi-target-dev@googlegroups.com.
> To unsubscribe from this group, send email to linux-iscsi-target-dev+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/linux-iscsi-target-dev?hl=en.
>
Zhiyong Wu - July 12, 2012, 6:59 a.m.
thanks, it is applied to my vhost_scsi git tree
git://github.com/wuzhy/qemu.git vhost-scsi

On Thu, Jul 12, 2012 at 4:55 AM, Nicholas A. Bellinger
<nab@linux-iscsi.org> wrote:
> From: Nicholas Bellinger <nab@linux-iscsi.org>
>
> This QEMU patch sets VirtIOSCSIConfig->max_target=0 for vhost-scsi operation
> to restrict virtio-scsi LLD guest scanning to max_id=0 (a single target ID
> instance) when connected to individual tcm_vhost endpoints as requested by
> Paolo.
>
> This ensures that virtio-scsi LLD only attempts to scan target IDs up to
> VIRTIO_SCSI_MAX_TARGET when connected via virtio-scsi-raw.
>
> It's currently cut against Zhi's qemu vhost-scsi tree here:
>
>    https://github.com/wuzhy/qemu/tree/vhost-scsi
>
> Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
> ---
>  hw/virtio-scsi.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
> index e38cdd0..71276b6 100644
> --- a/hw/virtio-scsi.c
> +++ b/hw/virtio-scsi.c
> @@ -523,7 +523,11 @@ static void virtio_scsi_get_config(VirtIODevice *vdev,
>      stl_raw(&scsiconf->sense_size, s->sense_size);
>      stl_raw(&scsiconf->cdb_size, s->cdb_size);
>      stl_raw(&scsiconf->max_channel, VIRTIO_SCSI_MAX_CHANNEL);
> -    stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
> +    if (s->vhost_scsi) {
> +        stl_raw(&scsiconf->max_target, 0);
> +    } else {
> +        stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
> +    }
>      stl_raw(&scsiconf->max_lun, VIRTIO_SCSI_MAX_LUN);
>  }
>
> --
> 1.7.2.5
>
> --
> You received this message because you are subscribed to the Google Groups "Linux-iSCSI.org Target Development" group.
> To post to this group, send email to linux-iscsi-target-dev@googlegroups.com.
> To unsubscribe from this group, send email to linux-iscsi-target-dev+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/linux-iscsi-target-dev?hl=en.
>
Nicholas A. Bellinger - July 12, 2012, 10:08 p.m.
Hi Zhi,

On Thu, 2012-07-12 at 14:59 +0800, Zhi Yong Wu wrote:
> thanks, it is applied to my vhost_scsi git tree
> git://github.com/wuzhy/qemu.git vhost-scsi
> 

Thanks for picking up this patch in your vhost-scsi tree.

As mentioned off-list, I'd like to rebase to a more recent qemu.git to
include megasas 8708EM2 HBA emulation from Dr. Hannes so we can
experiment with a few more types of target setups.  ;)

I'll likely do this on my local branch for now, but if you have the
extra cycles please feel free to update vhost-scsi to the latest
qemu.git HEAD so we can have both vhost-scsi + megasas HBA emulation in
the same working tree.

Depending upon how long we'll need to hold vhost-scsi patches
out-of-tree (hopefully it's less than infinity ;) a qemu/vhost-scsi
working tree on kernel.org might also be helpful.

Thanks!

--nab
Zhiyong Wu - July 16, 2012, 1:55 a.m.
HI, nab,

On Fri, Jul 13, 2012 at 6:08 AM, Nicholas A. Bellinger
<nab@linux-iscsi.org> wrote:
> Hi Zhi,
>
> On Thu, 2012-07-12 at 14:59 +0800, Zhi Yong Wu wrote:
>> thanks, it is applied to my vhost_scsi git tree
>> git://github.com/wuzhy/qemu.git vhost-scsi
>>
>
> Thanks for picking up this patch in your vhost-scsi tree.
>
> As mentioned off-list, I'd like to rebase to a more recent qemu.git to
> include megasas 8708EM2 HBA emulation from Dr. Hannes so we can
> experiment with a few more types of target setups.  ;)
I have rebased my vhost-scsi tree to latest qemu.git.
>
> I'll likely do this on my local branch for now, but if you have the
> extra cycles please feel free to update vhost-scsi to the latest
> qemu.git HEAD so we can have both vhost-scsi + megasas HBA emulation in
> the same working tree.
I have push rebased vhost-scsi tree to my public git.
>
> Depending upon how long we'll need to hold vhost-scsi patches
> out-of-tree (hopefully it's less than infinity ;) a qemu/vhost-scsi
Heh, i also hope so, but have not anthority to push it to kernel.org.

> working tree on kernel.org might also be helpful.
>
> Thanks!
>
> --nab
>
>
>

Patch

diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
index e38cdd0..71276b6 100644
--- a/hw/virtio-scsi.c
+++ b/hw/virtio-scsi.c
@@ -523,7 +523,11 @@  static void virtio_scsi_get_config(VirtIODevice *vdev,
     stl_raw(&scsiconf->sense_size, s->sense_size);
     stl_raw(&scsiconf->cdb_size, s->cdb_size);
     stl_raw(&scsiconf->max_channel, VIRTIO_SCSI_MAX_CHANNEL);
-    stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
+    if (s->vhost_scsi) {
+        stl_raw(&scsiconf->max_target, 0);
+    } else {
+        stl_raw(&scsiconf->max_target, VIRTIO_SCSI_MAX_TARGET);
+    }
     stl_raw(&scsiconf->max_lun, VIRTIO_SCSI_MAX_LUN);
 }