linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
@ 2010-06-07  3:50 Nicholas A. Bellinger
  2010-06-07  6:45 ` FUJITA Tomonori
  0 siblings, 1 reply; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-06-07  3:50 UTC (permalink / raw)
  To: stgt-devel, linux-scsi, linux-kernel, FUJITA Tomonori, Mike
  Cc: James Bottomley, Douglas Gilbert, Nicholas Bellinger

From: Nicholas Bellinger <nab@linux-iscsi.org>

Greeting STGT folks,

This is the third round of patches for adding proper LUN passthrough support into STGT
using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
SG_IO and the new BSG v4 backstores.

Following Tomo-san's input, the changelog between v2 -> v3 is as follows:

1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
   of making changes to usr/sbc.c

2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.

3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
   and for passthrough case use the new device_type_passthrough() to locate
   struct device_type_template sg_template.

4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()

This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.

Best,

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org

Nicholas Bellinger (3):
  [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
  [tgt]: Add bs_sg struct device_type_template sg_template and struct
    backingstore_template->bs_init()
  [tgt]: Add BSG v4 backstore support to usr/bs_sg.c

 usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 usr/scsi_cmnd.h |    7 ++
 usr/target.c    |  113 +++++++++++++++++++++++---
 usr/tgtd.h      |   16 ++++
 4 files changed, 362 insertions(+), 21 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  3:50 [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3 Nicholas A. Bellinger
@ 2010-06-07  6:45 ` FUJITA Tomonori
  2010-06-07  8:27   ` Nicholas A. Bellinger
  0 siblings, 1 reply; 11+ messages in thread
From: FUJITA Tomonori @ 2010-06-07  6:45 UTC (permalink / raw)
  To: nab
  Cc: stgt, linux-scsi, linux-kernel, fujita.tomonori, michaelc,
	bharrosh, James.Bottomley, dgilbert

On Sun,  6 Jun 2010 20:50:15 -0700
"Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:

> From: Nicholas Bellinger <nab@linux-iscsi.org>
> 
> Greeting STGT folks,
> 
> This is the third round of patches for adding proper LUN passthrough support into STGT
> using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
> SG_IO and the new BSG v4 backstores.
> 
> Following Tomo-san's input, the changelog between v2 -> v3 is as follows:
> 
> 1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
>    of making changes to usr/sbc.c
> 
> 2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.
> 
> 3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
>    and for passthrough case use the new device_type_passthrough() to locate
>    struct device_type_template sg_template.
> 
> 4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()
> 
> This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
> passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.
> 
> Best,
> 
> Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org
> 
> Nicholas Bellinger (3):
>   [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
>   [tgt]: Add bs_sg struct device_type_template sg_template and struct
>     backingstore_template->bs_init()
>   [tgt]: Add BSG v4 backstore support to usr/bs_sg.c
> 
>  usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
>  usr/scsi_cmnd.h |    7 ++
>  usr/target.c    |  113 +++++++++++++++++++++++---
>  usr/tgtd.h      |   16 ++++
>  4 files changed, 362 insertions(+), 21 deletions(-)

The first and second patches Look fine overall. I have some comments
and wrote some cleanup patches.

I've put the first two patches with my cleanups:

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git pass

Can you confirm that it works for you? Then I can merge them into
master.

Let's leave bsg support alone and focus on the sg support for now.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  6:45 ` FUJITA Tomonori
@ 2010-06-07  8:27   ` Nicholas A. Bellinger
  2010-06-07  8:56     ` FUJITA Tomonori
  2010-06-07 23:45     ` FUJITA Tomonori
  0 siblings, 2 replies; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-06-07  8:27 UTC (permalink / raw)
  To: FUJITA Tomonori
  Cc: stgt, linux-scsi, linux-kernel, michaelc, bharrosh,
	James.Bottomley, dgilbert

On Mon, 2010-06-07 at 15:45 +0900, FUJITA Tomonori wrote:
> On Sun,  6 Jun 2010 20:50:15 -0700
> "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> 
> > From: Nicholas Bellinger <nab@linux-iscsi.org>
> > 
> > Greeting STGT folks,
> > 
> > This is the third round of patches for adding proper LUN passthrough support into STGT
> > using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
> > SG_IO and the new BSG v4 backstores.
> > 
> > Following Tomo-san's input, the changelog between v2 -> v3 is as follows:
> > 
> > 1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
> >    of making changes to usr/sbc.c
> > 
> > 2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.
> > 
> > 3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
> >    and for passthrough case use the new device_type_passthrough() to locate
> >    struct device_type_template sg_template.
> > 
> > 4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()
> > 
> > This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
> > passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.
> > 
> > Best,
> > 
> > Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org
> > 
> > Nicholas Bellinger (3):
> >   [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
> >   [tgt]: Add bs_sg struct device_type_template sg_template and struct
> >     backingstore_template->bs_init()
> >   [tgt]: Add BSG v4 backstore support to usr/bs_sg.c
> > 
> >  usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
> >  usr/scsi_cmnd.h |    7 ++
> >  usr/target.c    |  113 +++++++++++++++++++++++---
> >  usr/tgtd.h      |   16 ++++
> >  4 files changed, 362 insertions(+), 21 deletions(-)
> 
> The first and second patches Look fine overall. I have some comments
> and wrote some cleanup patches.
> 
> I've put the first two patches with my cleanups:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git pass
> 
> Can you confirm that it works for you? Then I can merge them into
> master.

The pass branch works fine using '-E sg -Y pt' for SG_IO backstore <->
fabric LUN assocation with TCM_Loop LLD Target Ports.  Thanks for
cleaning things up to use TYPE_PT btw, I should have asked about that
earlier. ;)

> 
> Let's leave bsg support alone and focus on the sg support for now.
> --

Ok, I just fixed some minor breakage and applied patch 3 on top of
tgt.git/pass in my local tree and everything appears to work with
'-E bsg -Y pt'.

Please let me know if you have any other comments on the BSG bits or if
you would like me to send along a updated patch 3 seperately.

Thanks Tomo!

--nab



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  8:27   ` Nicholas A. Bellinger
@ 2010-06-07  8:56     ` FUJITA Tomonori
  2010-06-07  9:07       ` Nicholas A. Bellinger
  2010-06-07 23:45     ` FUJITA Tomonori
  1 sibling, 1 reply; 11+ messages in thread
From: FUJITA Tomonori @ 2010-06-07  8:56 UTC (permalink / raw)
  To: nab
  Cc: fujita.tomonori, stgt, linux-scsi, linux-kernel, michaelc,
	bharrosh, James.Bottomley, dgilbert

On Mon, 07 Jun 2010 01:27:16 -0700
"Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:

> Ok, I just fixed some minor breakage and applied patch 3 on top of
> tgt.git/pass in my local tree and everything appears to work with
> '-E bsg -Y pt'.
> 
> Please let me know if you have any other comments on the BSG bits or if
> you would like me to send along a updated patch 3 seperately.

Please send patches except for bsg first.

About bsg support, we need both sg and bsg? Just bsg is not enough?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  8:56     ` FUJITA Tomonori
@ 2010-06-07  9:07       ` Nicholas A. Bellinger
  2010-06-07  9:35         ` FUJITA Tomonori
  0 siblings, 1 reply; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-06-07  9:07 UTC (permalink / raw)
  To: FUJITA Tomonori
  Cc: stgt, linux-scsi, linux-kernel, michaelc, bharrosh,
	James.Bottomley, dgilbert

On Mon, 2010-06-07 at 17:56 +0900, FUJITA Tomonori wrote:
> On Mon, 07 Jun 2010 01:27:16 -0700
> "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> 
> > Ok, I just fixed some minor breakage and applied patch 3 on top of
> > tgt.git/pass in my local tree and everything appears to work with
> > '-E bsg -Y pt'.
> > 
> > Please let me know if you have any other comments on the BSG bits or if
> > you would like me to send along a updated patch 3 seperately.
> 
> Please send patches except for bsg first.
> 
> About bsg support, we need both sg and bsg? Just bsg is not enough?

I figured you would still like legacy support w/o bsg for the forseeable
future with older production kernels.  I don't recall which kernel BSG
support was added or if this code has already been backported to the
various distro kernels.

Best,

--nab

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  9:07       ` Nicholas A. Bellinger
@ 2010-06-07  9:35         ` FUJITA Tomonori
  2010-06-07  9:40           ` Nicholas A. Bellinger
  0 siblings, 1 reply; 11+ messages in thread
From: FUJITA Tomonori @ 2010-06-07  9:35 UTC (permalink / raw)
  To: nab
  Cc: fujita.tomonori, stgt, linux-scsi, linux-kernel, michaelc,
	bharrosh, James.Bottomley, dgilbert

On Mon, 07 Jun 2010 02:07:09 -0700
"Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:

> On Mon, 2010-06-07 at 17:56 +0900, FUJITA Tomonori wrote:
> > On Mon, 07 Jun 2010 01:27:16 -0700
> > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > 
> > > Ok, I just fixed some minor breakage and applied patch 3 on top of
> > > tgt.git/pass in my local tree and everything appears to work with
> > > '-E bsg -Y pt'.
> > > 
> > > Please let me know if you have any other comments on the BSG bits or if
> > > you would like me to send along a updated patch 3 seperately.
> > 
> > Please send patches except for bsg first.
> > 
> > About bsg support, we need both sg and bsg? Just bsg is not enough?
> 
> I figured you would still like legacy support w/o bsg for the forseeable
> future with older production kernels.  I don't recall which kernel BSG
> support was added or if this code has already been backported to the
> various distro kernels.

I prefer to support only bsg (until someone tells me to support sg).


btw, if you look for a tool to generate a bidi command, my sgv4-tools
might work for you.

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/sgv4-tools.git

try sgv4_xdwriteread (note that it's not useful at all except for
generating bidi).

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  9:35         ` FUJITA Tomonori
@ 2010-06-07  9:40           ` Nicholas A. Bellinger
  0 siblings, 0 replies; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-06-07  9:40 UTC (permalink / raw)
  To: FUJITA Tomonori
  Cc: stgt, linux-scsi, linux-kernel, michaelc, bharrosh,
	James.Bottomley, dgilbert

On Mon, 2010-06-07 at 18:35 +0900, FUJITA Tomonori wrote:
> On Mon, 07 Jun 2010 02:07:09 -0700
> "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> 
> > On Mon, 2010-06-07 at 17:56 +0900, FUJITA Tomonori wrote:
> > > On Mon, 07 Jun 2010 01:27:16 -0700
> > > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > > 
> > > > Ok, I just fixed some minor breakage and applied patch 3 on top of
> > > > tgt.git/pass in my local tree and everything appears to work with
> > > > '-E bsg -Y pt'.
> > > > 
> > > > Please let me know if you have any other comments on the BSG bits or if
> > > > you would like me to send along a updated patch 3 seperately.
> > > 
> > > Please send patches except for bsg first.
> > > 
> > > About bsg support, we need both sg and bsg? Just bsg is not enough?
> > 
> > I figured you would still like legacy support w/o bsg for the forseeable
> > future with older production kernels.  I don't recall which kernel BSG
> > support was added or if this code has already been backported to the
> > various distro kernels.
> 
> I prefer to support only bsg (until someone tells me to support sg).
> 

Ok, if that is the case I will respin a patch on top of tgt.git/pass to
remove SG and use BSG exclusively.  Please let me know if you have any
more recommendations in this area.

> 
> btw, if you look for a tool to generate a bidi command, my sgv4-tools
> might work for you.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/tomo/sgv4-tools.git
> 
> try sgv4_xdwriteread (note that it's not useful at all except for
> generating bidi).

Ah perfect, this is exactly what I am looking for.  Many thanks.

Best,

--nab


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07  8:27   ` Nicholas A. Bellinger
  2010-06-07  8:56     ` FUJITA Tomonori
@ 2010-06-07 23:45     ` FUJITA Tomonori
  2010-06-08  0:19       ` Nicholas A. Bellinger
  1 sibling, 1 reply; 11+ messages in thread
From: FUJITA Tomonori @ 2010-06-07 23:45 UTC (permalink / raw)
  To: nab
  Cc: fujita.tomonori, stgt, linux-scsi, linux-kernel, michaelc,
	bharrosh, James.Bottomley, dgilbert

On Mon, 07 Jun 2010 01:27:16 -0700
"Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:

> On Mon, 2010-06-07 at 15:45 +0900, FUJITA Tomonori wrote:
> > On Sun,  6 Jun 2010 20:50:15 -0700
> > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > 
> > > From: Nicholas Bellinger <nab@linux-iscsi.org>
> > > 
> > > Greeting STGT folks,
> > > 
> > > This is the third round of patches for adding proper LUN passthrough support into STGT
> > > using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
> > > SG_IO and the new BSG v4 backstores.
> > > 
> > > Following Tomo-san's input, the changelog between v2 -> v3 is as follows:
> > > 
> > > 1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
> > >    of making changes to usr/sbc.c
> > > 
> > > 2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.
> > > 
> > > 3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
> > >    and for passthrough case use the new device_type_passthrough() to locate
> > >    struct device_type_template sg_template.
> > > 
> > > 4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()
> > > 
> > > This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
> > > passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.
> > > 
> > > Best,
> > > 
> > > Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org
> > > 
> > > Nicholas Bellinger (3):
> > >   [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
> > >   [tgt]: Add bs_sg struct device_type_template sg_template and struct
> > >     backingstore_template->bs_init()
> > >   [tgt]: Add BSG v4 backstore support to usr/bs_sg.c
> > > 
> > >  usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > >  usr/scsi_cmnd.h |    7 ++
> > >  usr/target.c    |  113 +++++++++++++++++++++++---
> > >  usr/tgtd.h      |   16 ++++
> > >  4 files changed, 362 insertions(+), 21 deletions(-)
> > 
> > The first and second patches Look fine overall. I have some comments
> > and wrote some cleanup patches.
> > 
> > I've put the first two patches with my cleanups:
> > 
> > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git pass
> > 
> > Can you confirm that it works for you? Then I can merge them into
> > master.
> 
> The pass branch works fine using '-E sg -Y pt' for SG_IO backstore <->
> fabric LUN assocation with TCM_Loop LLD Target Ports.  Thanks for
> cleaning things up to use TYPE_PT btw, I should have asked about that
> earlier. ;)

Thanks for the confirmation. I've merged these patches into master.

I'll merge your bsg patch if nobody complains about dropping sg
support in a few days.


Thanks,

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-07 23:45     ` FUJITA Tomonori
@ 2010-06-08  0:19       ` Nicholas A. Bellinger
  2010-07-20 23:17         ` James Bottomley
  0 siblings, 1 reply; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-06-08  0:19 UTC (permalink / raw)
  To: FUJITA Tomonori
  Cc: stgt, linux-scsi, linux-kernel, michaelc, bharrosh,
	James.Bottomley, dgilbert

On Tue, 2010-06-08 at 08:45 +0900, FUJITA Tomonori wrote:
> On Mon, 07 Jun 2010 01:27:16 -0700
> "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> 
> > On Mon, 2010-06-07 at 15:45 +0900, FUJITA Tomonori wrote:
> > > On Sun,  6 Jun 2010 20:50:15 -0700
> > > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > > 
> > > > From: Nicholas Bellinger <nab@linux-iscsi.org>
> > > > 
> > > > Greeting STGT folks,
> > > > 
> > > > This is the third round of patches for adding proper LUN passthrough support into STGT
> > > > using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
> > > > SG_IO and the new BSG v4 backstores.
> > > > 
> > > > Following Tomo-san's input, the changelog between v2 -> v3 is as follows:
> > > > 
> > > > 1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
> > > >    of making changes to usr/sbc.c
> > > > 
> > > > 2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.
> > > > 
> > > > 3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
> > > >    and for passthrough case use the new device_type_passthrough() to locate
> > > >    struct device_type_template sg_template.
> > > > 
> > > > 4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()
> > > > 
> > > > This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
> > > > passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.
> > > > 
> > > > Best,
> > > > 
> > > > Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org
> > > > 
> > > > Nicholas Bellinger (3):
> > > >   [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
> > > >   [tgt]: Add bs_sg struct device_type_template sg_template and struct
> > > >     backingstore_template->bs_init()
> > > >   [tgt]: Add BSG v4 backstore support to usr/bs_sg.c
> > > > 
> > > >  usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > > >  usr/scsi_cmnd.h |    7 ++
> > > >  usr/target.c    |  113 +++++++++++++++++++++++---
> > > >  usr/tgtd.h      |   16 ++++
> > > >  4 files changed, 362 insertions(+), 21 deletions(-)
> > > 
> > > The first and second patches Look fine overall. I have some comments
> > > and wrote some cleanup patches.
> > > 
> > > I've put the first two patches with my cleanups:
> > > 
> > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git pass
> > > 
> > > Can you confirm that it works for you? Then I can merge them into
> > > master.
> > 
> > The pass branch works fine using '-E sg -Y pt' for SG_IO backstore <->
> > fabric LUN assocation with TCM_Loop LLD Target Ports.  Thanks for
> > cleaning things up to use TYPE_PT btw, I should have asked about that
> > earlier. ;)
> 
> Thanks for the confirmation. I've merged these patches into master.
> 
> I'll merge your bsg patch if nobody complains about dropping sg
> support in a few days.
> 

Perfect, thank you Tomo-san.

Best,

--nab


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-06-08  0:19       ` Nicholas A. Bellinger
@ 2010-07-20 23:17         ` James Bottomley
  2010-07-20 23:39           ` Nicholas A. Bellinger
  0 siblings, 1 reply; 11+ messages in thread
From: James Bottomley @ 2010-07-20 23:17 UTC (permalink / raw)
  To: Nicholas A. Bellinger
  Cc: FUJITA Tomonori, stgt, linux-scsi, linux-kernel, michaelc,
	bharrosh, dgilbert

On Mon, 2010-06-07 at 17:19 -0700, Nicholas A. Bellinger wrote:
> On Tue, 2010-06-08 at 08:45 +0900, FUJITA Tomonori wrote:
> > On Mon, 07 Jun 2010 01:27:16 -0700
> > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > 
> > > On Mon, 2010-06-07 at 15:45 +0900, FUJITA Tomonori wrote:
> > > > On Sun,  6 Jun 2010 20:50:15 -0700
> > > > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > > > 
> > > > > From: Nicholas Bellinger <nab@linux-iscsi.org>
> > > > > 
> > > > > Greeting STGT folks,
> > > > > 
> > > > > This is the third round of patches for adding proper LUN passthrough support into STGT
> > > > > using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
> > > > > SG_IO and the new BSG v4 backstores.
> > > > > 
> > > > > Following Tomo-san's input, the changelog between v2 -> v3 is as follows:
> > > > > 
> > > > > 1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
> > > > >    of making changes to usr/sbc.c
> > > > > 
> > > > > 2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.
> > > > > 
> > > > > 3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
> > > > >    and for passthrough case use the new device_type_passthrough() to locate
> > > > >    struct device_type_template sg_template.
> > > > > 
> > > > > 4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()
> > > > > 
> > > > > This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
> > > > > passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.
> > > > > 
> > > > > Best,
> > > > > 
> > > > > Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org
> > > > > 
> > > > > Nicholas Bellinger (3):
> > > > >   [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
> > > > >   [tgt]: Add bs_sg struct device_type_template sg_template and struct
> > > > >     backingstore_template->bs_init()
> > > > >   [tgt]: Add BSG v4 backstore support to usr/bs_sg.c
> > > > > 
> > > > >  usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > > > >  usr/scsi_cmnd.h |    7 ++
> > > > >  usr/target.c    |  113 +++++++++++++++++++++++---
> > > > >  usr/tgtd.h      |   16 ++++
> > > > >  4 files changed, 362 insertions(+), 21 deletions(-)
> > > > 
> > > > The first and second patches Look fine overall. I have some comments
> > > > and wrote some cleanup patches.
> > > > 
> > > > I've put the first two patches with my cleanups:
> > > > 
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git pass
> > > > 
> > > > Can you confirm that it works for you? Then I can merge them into
> > > > master.
> > > 
> > > The pass branch works fine using '-E sg -Y pt' for SG_IO backstore <->
> > > fabric LUN assocation with TCM_Loop LLD Target Ports.  Thanks for
> > > cleaning things up to use TYPE_PT btw, I should have asked about that
> > > earlier. ;)
> > 
> > Thanks for the confirmation. I've merged these patches into master.
> > 
> > I'll merge your bsg patch if nobody complains about dropping sg
> > support in a few days.
> > 
> 
> Perfect, thank you Tomo-san.

Ping on this ... is it actually all working and we could remove the STGT
code in favour of this?

James

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3
  2010-07-20 23:17         ` James Bottomley
@ 2010-07-20 23:39           ` Nicholas A. Bellinger
  0 siblings, 0 replies; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-07-20 23:39 UTC (permalink / raw)
  To: James Bottomley
  Cc: FUJITA Tomonori, stgt, linux-scsi, linux-kernel, michaelc,
	bharrosh, dgilbert, Jeff Garzik

On Tue, 2010-07-20 at 16:17 -0700, James Bottomley wrote:
> On Mon, 2010-06-07 at 17:19 -0700, Nicholas A. Bellinger wrote:
> > On Tue, 2010-06-08 at 08:45 +0900, FUJITA Tomonori wrote:
> > > On Mon, 07 Jun 2010 01:27:16 -0700
> > > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > > 
> > > > On Mon, 2010-06-07 at 15:45 +0900, FUJITA Tomonori wrote:
> > > > > On Sun,  6 Jun 2010 20:50:15 -0700
> > > > > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote:
> > > > > 
> > > > > > From: Nicholas Bellinger <nab@linux-iscsi.org>
> > > > > > 
> > > > > > Greeting STGT folks,
> > > > > > 
> > > > > > This is the third round of patches for adding proper LUN passthrough support into STGT
> > > > > > using struct scsi_lu->cmd_perform() and struct scsi_lu->cmd_done() callers with existing
> > > > > > SG_IO and the new BSG v4 backstores.
> > > > > > 
> > > > > > Following Tomo-san's input, the changelog between v2 -> v3 is as follows:
> > > > > > 
> > > > > > 1) Add struct device_type_template sg_template for SG_IO and BSG in usr/bs_sg.c instead
> > > > > >    of making changes to usr/sbc.c
> > > > > > 
> > > > > > 2) Add struct backingstore_template->bs_passthrough member of type int for SG_IO and BSG.
> > > > > > 
> > > > > > 3) In usr/target.c:tgt_device_create() pass bst->bs_passthrough into device_type_lookup()
> > > > > >    and for passthrough case use the new device_type_passthrough() to locate
> > > > > >    struct device_type_template sg_template.
> > > > > > 
> > > > > > 4) Remove unnecessary post_cmd_done() from usr/target.c:__cmd_done_passthrough()
> > > > > > 
> > > > > > This patch series has been tested with STGT/iSCSI using 'sg'+'bsg' and 'rdwr' for non
> > > > > > passthrough mode backstores into TCM_Loop LLD emulated iSCSI target ports.
> > > > > > 
> > > > > > Best,
> > > > > > 
> > > > > > Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org
> > > > > > 
> > > > > > Nicholas Bellinger (3):
> > > > > >   [tgt]: Add proper STGT LUN backstore passthrough support (rev 3)
> > > > > >   [tgt]: Add bs_sg struct device_type_template sg_template and struct
> > > > > >     backingstore_template->bs_init()
> > > > > >   [tgt]: Add BSG v4 backstore support to usr/bs_sg.c
> > > > > > 
> > > > > >  usr/bs_sg.c     |  247 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > > > > >  usr/scsi_cmnd.h |    7 ++
> > > > > >  usr/target.c    |  113 +++++++++++++++++++++++---
> > > > > >  usr/tgtd.h      |   16 ++++
> > > > > >  4 files changed, 362 insertions(+), 21 deletions(-)
> > > > > 
> > > > > The first and second patches Look fine overall. I have some comments
> > > > > and wrote some cleanup patches.
> > > > > 
> > > > > I've put the first two patches with my cleanups:
> > > > > 
> > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git pass
> > > > > 
> > > > > Can you confirm that it works for you? Then I can merge them into
> > > > > master.
> > > > 
> > > > The pass branch works fine using '-E sg -Y pt' for SG_IO backstore <->
> > > > fabric LUN assocation with TCM_Loop LLD Target Ports.  Thanks for
> > > > cleaning things up to use TYPE_PT btw, I should have asked about that
> > > > earlier. ;)
> > > 
> > > Thanks for the confirmation. I've merged these patches into master.
> > > 
> > > I'll merge your bsg patch if nobody complains about dropping sg
> > > support in a few days.
> > > 
> > 
> > Perfect, thank you Tomo-san.
> 
> Ping on this ... is it actually all working and we could remove the STGT
> code in favour of this?
> 

Hi James,

Using TCM_Loop with SG_IO and BSG with LUN level passthrough and explict
I_T nexus and port configuration
using /sys/kernel/config/target/loopback is still functioning as
expected with userspace STGT/iSCSI.  Note that TCM_Loop v4 supports
multi-fabric port level emulation for FC, SAS and iSCSI, and will
configure itself to return CDB level $PROTO_IDENT based on
the /sys/kernel/config/target/loopback/$WWPN prefix.  So it should work
with those the STGT/OpenFCoE userspace fabric as well.

Also just FYI, I am not planning to removing any STGT kernel code at
this point from lio-core-2.6.git with mainline push of TCM in order to
use userspace STGT fabric modules with TCM_Loop. Actually, I would like
to (eventually) adapt it to function as a seperate TCM backstore
subsystem plugin to allow fabric level ports access to userspace CDB
processing capability.

So yes, I think that drivers/scsi/scsi_tgt_* is still be of use for us
when doing kernel level fabric <-> userspace CDB processing.  If you
will recall there was some time spent trying to get userspace CDB
backstore passthrough as a seperate TCM subsystem module, but had been
left out the TCM scsi-misc.git tree for the v2.6.35 push, which is
here: 

http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=blob;f=drivers/target/target_core_stgt.c;hb=HEAD

I was hoping to get up this up running with drivers/scsi/scsi_tgt_* by
the end of the year for the next round so that the kernel -> userspace
CDB passthrough logic can be used for doing PCI and VirtIO HW target
mode emulation with QEMU/KVM.  Also, I know that jgarzik is interested
in something like this for HAIL as well.

Best,

--nab

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-07-20 23:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-07  3:50 [PATCH 0/3] Add proper STGT <-> bs_sg passthrough v3 Nicholas A. Bellinger
2010-06-07  6:45 ` FUJITA Tomonori
2010-06-07  8:27   ` Nicholas A. Bellinger
2010-06-07  8:56     ` FUJITA Tomonori
2010-06-07  9:07       ` Nicholas A. Bellinger
2010-06-07  9:35         ` FUJITA Tomonori
2010-06-07  9:40           ` Nicholas A. Bellinger
2010-06-07 23:45     ` FUJITA Tomonori
2010-06-08  0:19       ` Nicholas A. Bellinger
2010-07-20 23:17         ` James Bottomley
2010-07-20 23:39           ` Nicholas A. Bellinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).