>Hello,
>I have been working on enhancing the linux sg driver for a while now
>and you may like to try it. It has the following features:
First I've heard of it... Is it too late for input? (I'm not on the
linux-scsi list, although it sounds relevant; subscription
instructions please? Not that I need to add to a six-hour-a-day email
habit, but I had better be subbed if I'm going to contribute...)
As one of the developers pushing the Linux SG driver hardest (the
Paranoia project), I'm of the opinion that the driver does not need to
be enhanced; it needs to be replaced with something that wasn't
originally cobbled together for a single application. The design was
underpowered, the implementation badly flawed.
I've read the rest of your message below describing enhancements; it
appears you have a pretty good grip on what SG needs to do, what
needed to be corrected and how to do it, so I don't think I need to do
any flaming. I have a few questions, and I'd like to offer one
important 'demand' that I consider vital to Linux in general.
What needs to happen to SG, PG, ATAPI, et al is not a piecemeil
improvement of a single interface that further complicates
compatability issues for minimal gain, but a redesign and unification
that takes into account the practical programming experience of the
folks using it as well as the wisdom of preceeding systems. Above all
the interfaces must be *uniform*. If we're going to break with a
current interface, I'd like to see Linux go all out, break totally
with what's there and get a new interface set that's clean and above
all unified (right now, Paranoia has seperate Linux code at various
levels for ATAPI cooked ioctl() interfaces, ATAPI using SG with
IDE-SCSI, generic SCSI, and PG the parallel port raw ATAPI interface.
This is rediculous. And Joerg: No flames. Alpha 10 is based heavily
on your code at the transport level ;-).
Before the high-level driver holy wars start again, I'm aware of the
limitations of Linux's internal VFS and device layers. There's no
practical way, without redesigning the kernel, or acheiving true
unification of the interfaces through a single kernel device. What
*is* possible is design of a uniform generic interface standard that
is enforced across the different hardware devices such that in user
space the divisions are seamless. All four of the above obey the same
commands, dammit!
I realize that you worried about compatability. Unfortunately, the
old SG is so riddled with bugs that I'm relying heavily on some of
those bugs (including a kernel buffer clobber) to get around driver
shortcomings in Paranoia. The result of a better, but very similar,
interface is that I'll need new heuristics to seperate old from new,
and still have to treat both differently. If I already have to deal
with 'old' versus 'new', let's go for it and make the dichotomy
worthwhile.
You obviously have a firm grip of the state of SG and how to implement
better. Grant Guenther (author of the PG interface) has also told me
that he'd like to see such a unified interface and is willing in
general to move PG to such an interface. We have, unfortunately, lost
Gadi Oxman (author of SCSI-IDE emulation) to the real world, but
perhaps he's still willing to offer advice.
Monty (author of Paranoia III, the upcoming Paranoia IV, and cdparanoia)
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]