Re: [RFC v2 05/21] tcm: Add ConfigFS subsystem backstoreinfrastructure

From: Nicholas A. Bellinger
Date: Wed Oct 06 2010 - 03:48:22 EST


On Wed, 2010-10-06 at 16:25 +0900, FUJITA Tomonori wrote:
> On Wed, 6 Oct 2010 16:09:26 +0900
> FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote:
>
> > On Tue, 05 Oct 2010 21:30:42 -0700
> > "Nicholas A. Bellinger" <nab@xxxxxxxxxxxxxxx> wrote:
> >
> > > I have been thinking about something similar that is needed for the WIP
> > > TCM HW target mode drivers when a:
> > >
> > > mkdir -p /sys/kernel/config/target/$TCM_MOD/$LPORT_WWPN/tpgt_1
> > >
> > > happens the WWPN is coming from HW. This currently looks like something
> > > along the lines of the following for tcm_lpfc:
> > >
> > > http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=blob;f=drivers/target/tcm_lpfc/tcm_lpfc_configfs.c;hb=tcm_lpfc#l227
> >
> > The above link doesn't work for me so I'm not sure.
> >
> > But I guess that you are talking about the problem that
> > tcm_lpfc_make_lport() can accept proper hardware port addresses. We
> > are on the same page if so.
> >
> >
> > > The main issue here is that the user still needs to know the $LPORT_WWPN
> > > before hand (either from looking at a sticker on the card, or via
> > > another method) in order to preform the initial TFO->fabric_make_wwn()
> > > -> $TCM_MOD_make_wwn() operation. So what we need is a configfs attrib
> > > at the top level TCM fabric group in order to see a list of the
> > > available hardware ports from the specific $TCM_MOD. What I was
> > > thinking for TCM HW fabric module ports would be to have something like:
> > >
> > > /sys/kernel/config/target/$TCM_MOD/hw_ports
> > >
> > > that would walk the struct pci_dev looking for fabric module specific HW
> > > target mode capabilities. I assume this is what you had in mind for
> > > drivers/scsi/ibmvscsi as well, yes..?
> >
> > Doesn't sound so.
> >
> > I want the driver to create necessary target directories in
> > /sys/kernel/config/target/ibmvscsit/ automatically.
>
> In addition, I also think that /sys/kernel/config/target/$TCM_MOD
> should show up automatically when I load the module.
>
> vine:/home/fujita# modprobe iscsi_target_mod
>
> Then why do I need to create iscsi directory by hand?

Because configfs is driven by completely userspace syscalls. 8-)

>
> vine:/home/fujita# mkdir /sys/kernel/config/target/iscsi
>

Actually, these is an LKM autoload feature for LIO-Target and TCM_Loop
currently in place when:

mkdir /sys/kernel/config/target/[iscsi,loopback]

occurs and propigates through target_Core_configfs.c code into
target_core_register_fabric() here:

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

Other than these two hardcoded cases (I plan to add these as new modules
are merged into mainline), the userspace code is expected to:

modprobe $TCM_FAB_MOD ;
mkdir /sys/kernel/config/target/$FAB_MOD

in order to access the top level generic fabric directory/group in
target_core_fabric_configfs.c code.

>
> btw, 'iscsi' needs to renamed to iscsi_tcp or something like that?

I was thinking here to keep the default software iSCSI LIO-Target code
to use 'iscsi' and use add a seperate iSCSI HW target mode with a iscsi_
$HWNAME prefix as necessary for the existing iSCSI HW TOE cases.

However there is a certain flavour of iSCSI HW target offload silicon
currently in development that I am considering to integrate directly
into LIO-Target code in order to function transparently with existing
LIO kernel code, along with some new fabric configfs attribute knobs for
tuning, debugging, etc.

--nab

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/