Re: Integration of SCST in the mainstream Linux kernel

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Nicholas A. Bellinger
Date: Thursday, January 31, 2008 - 6:25 am

Greetings all,

On Wed, 2008-01-30 at 19:56 +0900, FUJITA Tomonori wrote:

The PyX storage engine supports a scatterlist linked list algorithm that
maps any sector count + sector size combination down to contiguous
struct scatterlist arrays across (potentially) multiple Linux storage
subsystems from a single CDB received on a initiator port.  This design
was a consequence of a requirement for running said engine on Linux v2.2
and v2.4 across non cache coherent systems (MIPS R5900-EE) using a
single contiguous memory block mapped into struct buffer_head for PATA
access, and struct scsi_cmnd access on USB storage.  Note that this was
before struct bio and struct scsi_request existed..

The PyX storage engine as it exists at Linux-iSCSI.org today can be
thought of as a hybrid OSD processing engine, as it maps storage object
memory across a number of tasks from a received command CDB.  The
ability to pass in pre allocated memory from an RDMA capable adapter, as
well as allocated internally (ie: traditional iSCSI without open_iscsi's
struct skbuff rx zero-copy) is inherient in the design of the storage
engine.  The lacking Bidi support can be attributed to lack of greater
support (and hence user interest) in Bidi, but I am really glad to see
this getting into the SCSI ML and STGT, and is certainly of interest in
the long term.  Another feature that is missing in the current engine is
see in Linux as well.  This is pretty easy to add in iSCSI with an AHS
and in the engine and storage subsystems.


The 60k lines of code also includes functionality (the SE mirroring
comes to mind) that I do not plan to push towards mainline, along with
other legacy bits so we can build on earlier v2.6 embedded platforms.
The existing Target mode LIO-SE that provides linked list scatterlist
mapping algorithm that is similar to what Jens and Rusty have been
working on, and is under 14k lines including the switch(cdb[0]) +
function pointer assignment to per CDB specific structure that is called
potentially out-of-order in the RX side context of the CmdSN state
machine in RFC-3720.  The current SE is also lacking the very SCSI
specific task management state machines that not a whole lot of iSCSI
implementions implement properly, and seem to be minimal interest to
users, and of moderate interest to vendors.  Getting this implemented
generically in SCSI, as opposed to an transport specific mechanisim
would benefit the Linux SCSI target engine.

The pSCSI (struct scsi_cmnd), iBlock (struct bio) and FILE (struct file)
plugins together are a grand total of 3.5k lines using the v2.9 LIO-SE
interface.  Assuming we have a single preferred data and control patch
for underlying physical and virtual block devices, this could also get
smaller.  A quick check of the code puts the traditional kernel level
iSCSI statemachine at roughly 16k, which is pretty good for the complete
state machine.  Also, having iSER and traditional iSCSI share MC/S and
ERL=2 common code will be of interest, as well as iSCSI login state
machines, which are identical minus the extra iSER specific keys and
requirement to transition from byte stream mode to RDMA accelerated
mode.

Since this particular code is located in a non-data path critical
section, the kernel vs. user discussion is a wash.  If we are talking
about data path, yes, the relevance of DD tests in kernel designs are
suspect :p.  For those IB testers who are interested, perhaps having a
look with disktest from the Linux Test Project would give a better
comparision between the two implementations on a RDMA capable fabric
like IB for best case performance.  I think everyone is interested in
seeing just how much data path overhead exists between userspace and
kernel space in typical and heavy workloads, if if this overhead can be
minimized to make userspace a better option for some of this very
complex code.

--nab


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Jan 23, 7:22 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Wed Jan 23, 10:11 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Tue Jan 29, 1:42 pm)
Re: Integration of SCST in the mainstream Linux kernel, Roland Dreier, (Tue Jan 29, 2:31 pm)
Re: Integration of SCST in the mainstream Linux kernel, FUJITA Tomonori, (Tue Jan 29, 4:32 pm)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Jan 30, 1:29 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Jan 30, 1:38 am)
Re: Integration of SCST in the mainstream Linux kernel, FUJITA Tomonori, (Wed Jan 30, 3:56 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Wed Jan 30, 4:17 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Wed Jan 30, 4:18 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Wed Jan 30, 4:40 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Jan 30, 6:10 am)
Re: Integration of SCST in the mainstream Linux kernel, FUJITA Tomonori, (Wed Jan 30, 6:54 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Wed Jan 30, 9:22 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Wed Jan 30, 9:34 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Jan 30, 9:50 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Jan 30, 10:03 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Thu Jan 31, 12:48 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Thu Jan 31, 6:25 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Thu Jan 31, 7:34 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Thu Jan 31, 7:44 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Thu Jan 31, 8:50 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Thu Jan 31, 10:14 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Thu Jan 31, 10:40 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Thu Jan 31, 11:15 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Fri Feb 1, 1:11 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Fri Feb 1, 2:08 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Fri Feb 1, 3:39 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Fri Feb 1, 4:04 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Vladislav Bolkhovitin, (Fri Feb 1, 4:50 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Vladislav Bolkhovitin, (Fri Feb 1, 4:50 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Fri Feb 1, 5:05 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Vladislav Bolkhovitin, (Fri Feb 1, 5:25 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Fri Feb 1, 6:25 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Fri Feb 1, 7:36 am)
Re: Integration of SCST in the mainstream Linux kernel, Pete Wyckoff, (Sat Feb 2, 8:32 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 4, 5:27 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Mon Feb 4, 6:53 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 8:30 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 4, 9:25 am)
Re: Integration of SCST in the mainstream Linux kernel, David Dillow, (Mon Feb 4, 10:00 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 10:06 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 4, 10:08 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 4, 10:16 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 10:25 am)
Re: Integration of SCST in the mainstream Linux kernel, Douglas Gilbert, (Mon Feb 4, 10:30 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 4, 10:56 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 11:22 am)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 11:29 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 4, 11:38 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 11:49 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 11:54 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 12:06 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 12:19 pm)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 12:44 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 1:24 pm)
Re: Integration of SCST in the mainstream Linux kernel, J. Bruce Fields, (Mon Feb 4, 2:01 pm)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 2:24 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 3:00 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 3:59 pm)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Mon Feb 4, 4:00 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 4:12 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Mon Feb 4, 4:16 pm)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 4:27 pm)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 4:45 pm)
Re: Integration of SCST in the mainstream Linux kernel, Matt Mackall, (Mon Feb 4, 5:07 pm)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 5:24 pm)
Re: Integration of SCST in the mainstream Linux kernel, Matt Mackall, (Mon Feb 4, 5:45 pm)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Mon Feb 4, 6:20 pm)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Tomasz Chmielewski, (Tue Feb 5, 12:14 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Tue Feb 5, 1:38 am)
Re: Integration of SCST in the mainstream Linux kernel, Olivier Galibert, (Tue Feb 5, 6:05 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Tomasz Chmielewski, (Tue Feb 5, 9:07 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Tue Feb 5, 9:25 am)
Re: Integration of SCST in the mainstream Linux kernel, Erez Zilber, (Tue Feb 5, 10:01 am)
Re: Integration of SCST in the mainstream Linux kernel, Erez Zilber, (Tue Feb 5, 10:10 am)
Re: Integration of SCST in the mainstream Linux kernel, Jeff Garzik, (Tue Feb 5, 10:50 am)
Re: Integration of SCST in the mainstream Linux kernel, Jeff Garzik, (Tue Feb 5, 11:08 am)
Re: Integration of SCST in the mainstream Linux kernel, Linus Torvalds, (Tue Feb 5, 11:18 am)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Tue Feb 5, 11:37 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Tue Feb 5, 11:59 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Tue Feb 5, 12:00 pm)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Tue Feb 5, 12:01 pm)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Tue Feb 5, 12:01 pm)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Tue Feb 5, 12:02 pm)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Tue Feb 5, 12:02 pm)
Re: Integration of SCST in the mainstream Linux kernel, Jeff Garzik, (Tue Feb 5, 12:12 pm)
Re: Integration of SCST in the mainstream Linux kernel, James Bottomley, (Tue Feb 5, 12:13 pm)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Tue Feb 5, 12:21 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Tue Feb 5, 5:11 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Tue Feb 5, 5:17 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Tue Feb 5, 5:48 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Tue Feb 5, 5:51 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Tue Feb 5, 6:43 pm)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Nicholas A. Bellinger, (Tue Feb 5, 7:01 pm)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Feb 6, 3:22 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Feb 6, 5:16 am)
Re: Integration of SCST in the mainstream Linux kernel, Benny Halevy, (Wed Feb 6, 9:45 am)
Re: Integration of SCST in the mainstream Linux kernel, Roland Dreier, (Wed Feb 6, 10:06 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Wed Feb 6, 11:07 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Thu Feb 7, 6:45 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Nicholas A. Bellinger, (Thu Feb 7, 8:38 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Fri Feb 8, 3:32 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Fri Feb 8, 3:37 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Fri Feb 8, 4:33 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Nicholas A. Bellinger, (Fri Feb 8, 4:53 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Fri Feb 8, 7:36 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Fri Feb 8, 7:42 am)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Fri Feb 8, 4:53 pm)
Re: Integration of SCST in the mainstream Linux kernel, Nicholas A. Bellinger, (Fri Feb 8, 5:00 pm)
Re: Integration of SCST in the mainstream Linux kernel, Luben Tuikov, (Sat Feb 9, 12:32 am)
Re: Integration of SCST in the mainstream Linux kernel, Vladislav Bolkhovitin, (Mon Feb 11, 3:02 am)
Re: [Scst-devel] Integration of SCST in the mainstream Lin ..., Nicholas A. Bellinger, (Tue Feb 12, 8:44 pm)
CONFIG_SLUB and reproducable general protection faults on ..., Nicholas A. Bellinger, (Tue Feb 12, 11:18 pm)
Re: CONFIG_SLUB and reproducable general protection faults ..., Nicholas A. Bellinger, (Wed Feb 13, 9:37 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Fri Feb 15, 8:02 am)
Re: Integration of SCST in the mainstream Linux kernel, Erez Zilber, (Mon Feb 18, 2:43 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Mon Feb 18, 4:01 am)
Re: Integration of SCST in the mainstream Linux kernel, Erez Zilber, (Wed Feb 20, 12:34 am)
Re: Integration of SCST in the mainstream Linux kernel, Bart Van Assche, (Wed Feb 20, 1:41 am)