RE: Open-FCoE on linux-scsi

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

 



>From: "Love, Robert W" <robert.w.love@xxxxxxxxx>
>Subject: RE: Open-FCoE on linux-scsi
>Date: Mon, 31 Dec 2007 08:34:38 -0800
>
>> >> Hello SCSI mailing list,
>> >>
>> >> 	I'd just like to introduce ourselves a bit before we get
>> >> started. My name is Robert Love and I'm joined by a team of
engineers
>> >> including Vasu Dev, Chris Leech and Yi Zou. We are committed to
>> >> maintaining the Open-FCoE project. Aside from Intel engineers we
>> expect
>> >> engineers from other companies to contribute to Open-FCoE.
>> >>
>> >> 	Our goal is to get the initiator code upstream. We have a lot of
>> >> working code but recognize that we're early in this project's
>> >> development. We're looking for direction from you, the experts, on
>> what
>> >> this project should grow into.
>> >
>> >I've just added a new fcoe target driver to tgt:
>> >
>> >http://stgt.berlios.de/
>> >
>> That's great; we'll check it out as soon as everyone is back from the
>> holidays.
>
>It's still an experiment. Patches are welcome.
>
>
>> >The driver runs in user space unlike your target mode driver (I just
>> >modified your FCoE code to run it in user space).
>> >
>> There seems to be a trend to move non-data-path code userspace,
however,
>
>Implementing FCoE target drive in user space has no connection with a
>trend to move non-data-path code user space. It does all the data-path
>in user space.
>
>The examples of the trend to move non-data-path code userspace are
>open-iscsi, multi-path, etc, I think.
>
>
>> I don't like having so much duplicate code. We were going to
investigate
>> if we could redesign the target code to have less of a profile and
just
>> depend on the initiator modules instead of recompiling openfc as
>> openfc_tgt.
>>
>> What's the general opinion on this? Duplicate code vs. more kernel
code?
>> I can see that you're already starting to clean up the code that you
>> ported. Does that mean the duplicate code isn't an issue to you? When
we
>> fix bugs in the initiator they're not going to make it into your tree
>> unless you're diligent about watching the list.
>
>It's hard to convince the kernel maintainers to merge something into
>mainline that which can be implemented in user space. I failed twice
>(with two iSCSI target implementations).
>
>Yeah, duplication is not good but the user space code has some
>great advantages. Both approaches have the pros and cons.
>
>
>> >The initiator driver succeeded to log in a target, see logical
units,
>> >and perform some I/Os. It's still very unstable but it would be
>> >useful for FCoE developers.
>> >
>> >
>> >I would like to help you push the Open-FCoE initiator to mainline
>> >too. What are on your todo list and what you guys working on now?
>>
>> We would really appreciate the help! The best way I could come up
with
>> to coordinate this effort was through the BZ-
>> http://open-fcoe.org/bugzilla. I was going to write a BZ wiki entry
to
>> help new contributors, but since I haven't yet, here's the bottom
line.
>> Sign-up to the BZ, assign bugs to yourself from my name (I'm the
default
>> assignee now) and also file bugs as you find them. I don't want to
>> impose much process, but this will allow all of us to know what
everyone
>> else is working on.
>>
>> The main things that I think need to be fixed are (in no particular
>> order)-
>>
>> 1) Stability- Just straight up bug fixing. This is ongoing and
everyone
>> is looking at bugs.
>
>Talking about stability is a bit premature, I think. The first thing
>to do is finding a design that can be accepted into mainline.

How can we get this started? We've provided our current solution, but
need feedback to guide us in the right direction. We've received little
quips about libsa and libcrc and now it looks like we should look at
what we can move to userspace (see below), but that's all the feedback
we've got so far. Can you tell us what you think about our current
architecture? Then we could discuss your concerns... 

>
>
>> 2) Abstractions- We consider libsa a big bug, which we're trying to
>> strip down piece by piece. Vasu took out the LOG_SA code and I'm
looking
>> into changing the ASSERTs to BUG_ON/WARN_ONs. That isn't all of it,
but
>> that's how we're breaking it down.
>
>Agreed, libsa (and libcrc) should be removed.
>
>
>> 3) Target- The duplicate code of the target is too much. I want to
>> integrate the target into our -upstream tree. Without doing that,
fixes
>> to the -upstream tree won't benefit the target and it will get into
>> worse shape than it already is, unless someone is porting those
patches
>> to the target too. I think that ideally we'd want to reduce the
target's
>> profile and move it to userspace under tgt.
>>
>> 4) Userspace/Kernel interaction- It's our belief that netlink is the
>> preferred mechanism for kernel/userspace interaction. Yi has
converted
>> the FCoE ioctl code to netlink and is looking into openfc next.
>
>There are other options and I'm not sure that netlink is the best. I
>think that there is no general consensus about the best mechanism for
>kernel/userspace interaction. Even ioctl is still accepted into
>mainline (e.g. kvm).
>
>I expect you get an idea to use netlink from open-iscsi, but unlike
>open-iscsi, for now the FCoE code does just configuration with
>kernel/userspace interaction. open-iscsi has non-data path in user
>space so the kernel need to send variable-length data (PDUs, event,
>etc) to user space via netlink. So open-iscsi really needs netlink.
>If you have the FCoE non-data path in user space, netlink would work
>well for you.

We definitely got the netlink direction from open-iscsi. Combining your
comment that "It's hard to convince the kernel maintainers to merge
something into mainline that which can be implemented in user space"
with 
"If you have the FCoE non-data path in user space, netlink would work
well for you", makes it sound like this is an architectural change we
should consider. I'm not sure how strong the trend is though. Is moving
non data-path code to userspace a requirement? (you might have answered
me already by saying you had 2x failed upstream attempts)

>
>I would add one TODO item, better integration with scsi_transport_fc.
>If we have HW FCoE HBAs in the future, we need FCoE support in the fc
>transport class (you could use its netlink mechanism for event
>notification).

What do you have in mind in particular? Our layers are, 

SCSI
Openfc
FCoE
net_devive
NIC driver

So, it makes sense to me that we fit under scsi_transport_fc. I like our
layering- we clearly have SCSI on our top edge and net_dev at our bottom
edge. My initial reaction would be to resist merging openfc and fcoe and
creating a scsi_transport_fcoe.h interface.
 
>
>
>BTW, I think that the name 'openfc' is a bit strange. Surely, the
>mainline iscsi initiator driver is called 'open-iscsi' but it doesn't
>have any functions or files called 'open*'. It's just the project
>name.

Understood, but open-iscsi doesn't have the layering scheme that we do.
Since we're providing a Fibre Channel protocol processing layer that
different transport types can register with I think the generic name is
appropriate. Anyway, I don't think anyone here is terribly stuck on the
name; it's not a high priority at this time.
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux