From owner-cvs-src@FreeBSD.ORG Sun Apr 8 00:04:29 2007 Return-Path: X-Original-To: cvs-src@freebsd.org Delivered-To: cvs-src@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6203D16A404; Sun, 8 Apr 2007 00:04:29 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id C7C5B13C46C; Sun, 8 Apr 2007 00:02:31 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from phobos.samsco.home (phobos.samsco.home [192.168.254.11]) (authenticated bits=0) by pooker.samsco.org (8.13.8/8.13.8) with ESMTP id l3802SoG002041; Sat, 7 Apr 2007 18:02:28 -0600 (MDT) (envelope-from scottl@samsco.org) Message-ID: <46183104.6080904@samsco.org> Date: Sat, 07 Apr 2007 18:02:12 -0600 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.2pre) Gecko/20070111 SeaMonkey/1.1 MIME-Version: 1.0 To: mjacob@freebsd.org References: <200704071940.l37Jew2t013708@repoman.freebsd.org> <20070407131228.L71232@ns1.feral.com> In-Reply-To: <20070407131228.L71232@ns1.feral.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (pooker.samsco.org [168.103.85.57]); Sat, 07 Apr 2007 18:02:28 -0600 (MDT) X-Spam-Status: No, score=-0.8 required=5.5 tests=ALL_TRUSTED,SUBJ_HAS_SPACES autolearn=failed version=3.1.8 X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on pooker.samsco.org Cc: cvs-src@freebsd.org, src-committers@freebsd.org, Scott Long , 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 X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Apr 2007 00:04:29 -0000 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 >>