Re: 2.7 block ramblings (was Re: DMA for ide-scsi?)

Jens Axboe
2003-09-16T19:55:40Z

On Tue, Sep 16 2003, Jeff Garzik wrote:
> On Mon, Sep 15, 2003 at 09:34:45AM +0200, Jens Axboe wrote:
> > On Sat, Sep 13 2003, Jeff Garzik wrote:
> > > Oh, and I'm pondering the best way to deliver out-of-bang ATA taskfiles
> > > and SCSI cdbs to a device. (for the uninitiated, this is lower level
> > > than block devices / cdrom devices / etc.)
> > >
> > > ... AF_BLOCK is not out of the question ;-)
> >
> > Eh... I wont comment on that. I think we are way into Garzik lala land
> > there :)
> >
> > I'd prefer just keeping sg_io_hdr, but dumping sg. A fully fledged bsg
> > (block sg) implementation. That way programs continue to work like
> > before on ATAPI/SCSI, for ATA we can use it as a task file transport.
>
> I don't propose dumping the ugly "submit cdb/taskfile" ioctls, but we do
> need to deprecate them. The ioctls are awful for throughput, async
> queueing, and the like. And of course in general, ioctls are evil :)
>
> And we should deprecate them with a solution that aligns what with Linus
> described in Dec 2001 on lkml: a chrdev where userland write(2)s cdbs
> and taskfiles, and read(2)s the results. This is where my thinking
> picked up: if we are creating a chrdev to send "packets" and receive
> responses to those packets............ <insert conclusion here>

== bsg, block sg. Did you read what I wrote? :). I started implementing
this and have something that barely works. You just bind a block device
to a /dev/sg* char device and use read/write on that. Aka sg.

I don't want ioctls command submission interfaces more than you do.

--
Jens Axboe