Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Apr 2007 11:38:47 -0600
From:      Scott Long <scottl@samsco.org>
To:        "Kenneth D. Merry" <ken@kdm.org>, Roman Divacky <rdivacky@freebsd.org>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/cam/scsi scsi_sg.c scsi_sg.h src/sys/modules/cam Makefile src/sys/conf NOTES files src/sys/compat/linux linux_ioctl.c linux_ioctl.h
Message-ID:  <461A7A27.7090609@samsco.org>
In-Reply-To: <20070409165021.GA96611@nargothrond.kdm.org>
References:  <200704071940.l37Jew2t013708@repoman.freebsd.org> <20070407131228.L71232@ns1.feral.com> <46183104.6080904@samsco.org> <20070409165021.GA96611@nargothrond.kdm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
I guess this work never got into ports?  I'd like to see if there, even 
if it's augmented with other non-CAM versions.

Scott


Kenneth D. Merry wrote:
> That's a pretty neat trick!  Thanks Scott!
> 
> For what it's worth, Doug Gilbert already ported sg3_utils and sdparm to
> CAM a while back.  I see a message from him to -scsi in March, 2006,
> announcing it.
> 
> Ken
> 
> On Sat, Apr 07, 2007 at 18:02:12 -0600, Scott Long wrote:
>> To tell you the truth, the SG device has one of the worst programming 
>> interfaces that I've ever seen.  Even the various official docs on it
>> complain about how bad it is.  I've written apps for CAM, including a
>> swiss-army-knife java-based management app, and CAM is vastly superior.
>> I tried porting the app to linux and gave up due to how limited and
>> unpleasant it was.  From the kernel side, it's even scarier.
>>
>> But beyond that, the work I committed here was about opening up FreeBSD
>> to more storage management opportunities.  So I'm happy with whatever
>> anyone wants to do with it that furthers that goal.  I'd like to see
>> the native interface be used as a bridge to help introduce programmers
>> to FreeBSD and CAM; if the sg3_utils package is a step in that
>> direction or if it provides tools that camcontrol doesn't, then go for
>> it.
>>
>> Scott
>>
>>
>> mjacob@freebsd.org wrote:
>>> Cool- does this mean we should commit sg3_utils to ports then?
>>>
>>> On Sat, 7 Apr 2007, Scott Long wrote:
>>>
>>>> scottl      2007-04-07 19:40:58 UTC
>>>>
>>>> FreeBSD src repository
>>>>
>>>> Modified files:
>>>>   sys/modules/cam      Makefile
>>>>   sys/conf             files NOTES
>>>>   sys/compat/linux     linux_ioctl.c linux_ioctl.h
>>>> Added files:
>>>>   sys/cam/scsi         scsi_sg.c scsi_sg.h
>>>> Log:
>>>> Add the CAM 'SG' peripheral device.  This device implements a subset 
>>>> of the
>>>> Linux SCSI SG passthrough device API.  The intention is to allow for 
>>>> both
>>>> running of Linux apps that want to talk to /dev/sg* nodes, and to 
>>>> facilitate
>>>> porting of apps from Linux to FreeBSD.  As such, both native and 
>>>> linuxolator
>>>> entry points and definitions are provided.
>>>>
>>>> Caveats:
>>>>  - This does not support the procfs and sysfs nodes that the Linux SG
>>>>    driver provides.  Some Linux apps may rely on these for operation,
>>>>    others may only use them for informational purposes.
>>>>  - More ioctls need to be implemented.
>>>>  - Linux uses a naming scheme of "sg[a-z]" for devices, while FreeBSD 
>>>> uses a
>>>>    scheme of "sg[0-9]".  Devfs aliasis (symlinks) are automatically 
>>>> created
>>>>    to link the two together.  However, tools like camcontrol only see 
>>>> the
>>>>    native names.
>>>>  - Some operations were originally designed to return byte counts or 
>>>> other
>>>>    data directly as the syscall return value.  The linuxolator 
>>>> doesn't appear
>>>>    to support this well, so this driver just punts for these cases.
>>>>
>>>> Now that the driver is in place, others are welcome to add missing
>>>> functionality.  Thanks to Roman Divacky for pushing this work along.
>>>>
>>>> Revision  Changes    Path
>>>> 1.1       +987 -0    src/sys/cam/scsi/scsi_sg.c (new)
>>>> 1.1       +139 -0    src/sys/cam/scsi/scsi_sg.h (new)
>>>> 1.138     +27 -0     src/sys/compat/linux/linux_ioctl.c
>>>> 1.25      +34 -0     src/sys/compat/linux/linux_ioctl.h
>>>> 1.1419    +5 -0      src/sys/conf/NOTES
>>>> 1.1191    +1 -0      src/sys/conf/files
>>>> 1.15      +1 -0      src/sys/modules/cam/Makefile
>>>>
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?461A7A27.7090609>