Skip to content

open-osd: OSD Initiator library for Linux

Boaz Harrosh linux-next linux-scsi lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest18 patches 34 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/18major.h: char-major number for OSD device driverDocumentation/devices.txt include/linux/major.h+7 -02 replies
2/18scsi: OSD_TYPEdrivers/scsi/scsi_scan.c include/scsi/scsi.h+2 -00 replies
2/18scsi: OSD_TYPEdrivers/scsi/scsi_scan.c include/scsi/scsi.h+2 -00 replies
3/18libosd: OSDv1 Headersinclude/scsi/osd_initiator.h include/scsi/osd_protocol.h include/scsi/osd_sec.h +1 more+914 -07 replies
3/18libosd: OSDv1 Headersinclude/scsi/osd_initiator.h include/scsi/osd_protocol.h include/scsi/osd_sec.h +1 more+914 -08 replies
3/18libosd: OSDv1 Headersinclude/scsi/osd_initiator.h include/scsi/osd_protocol.h include/scsi/osd_sec.h +1 more+914 -02 replies
3/18libosd: OSDv1 Headersinclude/scsi/osd_initiator.h include/scsi/osd_protocol.h include/scsi/osd_sec.h +1 more+914 -02 replies
4/18libosd: OSDv1 preliminary implementationdrivers/scsi/osd/Kbuild drivers/scsi/osd/Makefile drivers/scsi/osd/osd_debug.h +1 more+540 -00 replies
4/18libosd: OSDv1 preliminary implementationdrivers/scsi/osd/Kbuild drivers/scsi/osd/Makefile drivers/scsi/osd/osd_debug.h +1 more+540 -016 replies
4/18libosd: OSDv1 preliminary implementationdrivers/scsi/osd/Kbuild drivers/scsi/osd/Makefile drivers/scsi/osd/osd_debug.h +1 more+538 -00 replies
5/18osd_uld: OSD scsi ULDdrivers/scsi/osd/Kbuild drivers/scsi/osd/osd_ktests.h drivers/scsi/osd/osd_uld.c+422 -00 replies
6/18osd_uld: API for retrieving osd devices from Kerneldrivers/scsi/osd/osd_uld.c include/scsi/osd_initiator.h+57 -00 replies
7/18osd_test: User-mode application to run the OSD testsdrivers/scsi/osd/Makefile drivers/scsi/osd/osd_test.c+82 -20 replies
8/18osd_ktests: Add basic OSD testsdrivers/scsi/osd/Kbuild drivers/scsi/osd/osd_ktests.c drivers/scsi/osd/osd_ktests.h +1 more+337 -20 replies
9/18libosd: attributes Supportdrivers/scsi/osd/osd_initiator.c include/scsi/osd_attributes.h+900 -00 replies
10/18osd_ktests: Test Attribute listsdrivers/scsi/osd/osd_ktests.c+110 -00 replies
11/18libosd: OSD Security processing stubsdrivers/scsi/osd/osd_initiator.c+85 -00 replies
12/18libosd: Add Flush and List-objects supportdrivers/scsi/osd/osd_initiator.c+124 -00 replies
13/18libosd: Not implemented commandsdrivers/scsi/osd/osd_initiator.c+35 -00 replies
14/18libosd: OSD version 2 Supportdrivers/scsi/osd/osd_initiator.c include/scsi/osd_initiator.h include/scsi/osd_protocol.h+201 -180 replies
15/18libosd: OSDv2 auto detectiondrivers/scsi/osd/osd_initiator.c drivers/scsi/osd/osd_uld.c include/scsi/osd_initiator.h+133 -00 replies
16/18osd: Documentation for OSD libraryDocumentation/scsi/osd.txt+198 -00 replies
17/18osd: Kconfig file for in-tree buildsdrivers/scsi/osd/Kconfig+41 -00 replies
18/18scsi: Add osd library to build systemMAINTAINERS drivers/scsi/Kconfig drivers/scsi/Makefile+14 -00 replies

Reviews trailers per patch

19 of 24 patches have a Reviewed-by or Acked-by.

PatchBenny Halevy
1/18
2/18
2/18
3/18R-b R-b R-b R-b
3/18R-b R-b R-b R-b
3/18R-b R-b R-b R-b
3/18R-b R-b R-b R-b
4/18R-b R-b R-b
4/18R-b R-b R-b
4/18R-b R-b R-b
5/18R-b
6/18
7/18
8/18R-b
9/18R-b
10/18R-b
11/18R-b
12/18R-b
13/18R-b
14/18R-b
15/18R-b
16/18R-b
17/18R-b
18/18R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCHSET 00/18] open-osd: OSD Initiator library for Linux

Please consider for inclusion, an in-kernel OSD initiator library. Its main users are planned to be various OSD based file systems and the pNFS-Objects Layout Driver. (To be submitted soon)

To try out and run the library please visit
http://open-osd.org and follow the instructions there.

The submitted patchset is also available via git at:
git://git.open-osd.org/linux-open-osd.git osd
http://git.open-osd.org/gitweb.cgi?p=linux-open-osd.git;a=shortlog;h=osd

Or a compact out-of-tree repository that includes sources and some extras:
git://git.open-osd.org/open-osd.git master
http://git.open-osd.org/gitweb.cgi?p=open-osd.git;a=summary

The submitted patches add public header files to include/scsi/ for use by other subsystems. The source files and private headers are put at a new drivers/scsi/osd/ directory, with the privilege of a separate Makefile and Kconfig.

here is the list of patches:

[PATCH 01/18] major.h: char-major number for OSD device driver
A request for a new char-device major number

[PATCH 02/18] scsi: OSD_TYPE
The OSD scsi type constant definition.

[PATCH 03/18] libosd: OSDv1 Headers
[PATCH 04/18] libosd: OSDv1 preliminary implementation
Most basic, but usable library module (libosd.ko) including Kbuild/Makefile.

[PATCH 05/18] osd_uld: OSD scsi ULD
[PATCH 06/18] osd_uld: API for retrieving osd devices from Kernel [PATCH 07/18] osd_test: User-mode application to run the OSD tests [PATCH 08/18] osd_ktests: Add basic OSD tests
These patches add a scsi ULD for OSD type devices. Please see commit logs for details.

[PATCH 09/18] libosd: attributes Support
[PATCH 10/18] osd_ktests: Test Attribute lists
[PATCH 11/18] libosd: OSD Security processing stubs
[PATCH 12/18] libosd: Add Flush and List-objects support [PATCH 13/18] libosd: Not implemented commands
[PATCH 14/18] libosd: OSD version 2 Support
[PATCH 15/18] libosd: OSDv2 auto detection
Up to here this is a fairly complete body of work, to support both OSD1 and OSD2 targets. Main pieces that are still missing from the library at this point are: The OSD2 capabilities structure, do to lack of an OSD target that supports it, so it was never tested. And the absence of any OSD-security methods other then NO_SECURITY. These will come in future versions.

[PATCH 16/18] osd: Documentation for OSD library
Some reading about OSD in general and further usability instructions. Please comment on anything missing from this document.

[PATCH 17/18] osd: Kconfig file for in-tree builds
[PATCH 18/18] scsi: Add osd library to build system
The in-tree compilation is only enabled at the end of the patchset. Run your favorite configure-tool to enable the library and osd_uld compilation. Default is off.
The patchset is however fully bisectable and compilable from the beginning if Invoked out-of-tree style with the -M switch. (see out-of-tree URL for how)

We would like this to sit in -mm tree for a while to make sure it is compilable on all platform. We don't see any danger of it being included in the next Kernel as it will not break anything. Of course, given that we have addressed everyone's comments, at this round.

What's new/changed since the last RFC:
Mainly work has been done to address James comments about the ULD.
See http://archive.netbsd.se/?ml=linux-scsi&a=2008-07&m=8051556
I hope I've nailed down all possible problems in the reference counting / locking of both the osd_uld_device structure , and the MODULE. Also a new API was devised for in-kernel users to query for osd devices.
See: "[PATCH 06/18] osd_uld: API for retrieving osd devices from Kernel" for further discussion on this subject.
Also the development and support of osdfs, submitted as RFC last week, was
a good test bed for stability and usability. So there were a few fixes and cleanups do to that effort.

All-in-all I'm very confident in this work and feel it can serve as a good base for OSD work in the Linux Kernel. We welcome anyone to please try this SW, test it, break it to pieces, and please tell us about your experience.

Thanks
Boaz