async pass(4) patches available

From: Kenneth D. Merry <ken_at_FreeBSD.ORG>
Date: Mon, 30 Mar 2015 16:23:58 -0600
I have put patches to add an asynchronous interface to the pass(4) driver
and add a new camdd(8) utility here:

FreeBSD/head as of SVN revision 280857:

http://people.freebsd.org/~ken/async_pass.head.20150330.1.txt

FreeBSD stable/10 as of SVN revision 280856:

http://people.freebsd.org/~ken/async_pass.stable_10.20150330.1.txt

And the description / draft commit message:

http://people.freebsd.org/~ken/async_pass_commitmsg.20150330.txt

I have also attached the description and draft commit message to this
email.

The asynchronous changes to the pass(4) driver allow queueing and fetching
CAM CCBs via two new ioctls.  Notification of completed I/O can come via
kqueue(2), poll(2), select(2), etc.

The camdd(8) utility is intended as a simple data transfer utility,
benchmark, and an in-tree example of how to use the asynchronous pass(4)
interface.

camdd(8) is still a work in progress.  It needs to be cleaned up a bit and
streamlined.

There is one known arrival and departure bug with the pass(4) driver
changes.  We've reproduced it with our tests at Spectra, but I haven't yet
tracked it down.

There are many more arrival and departure bugs in FreeBSD/head, however.
We have fixed quite a few in our local tree, but the test (called devad2)
that triggers all of the problems uses the asynchronous pass(4) interface.
So this is a prerequisite for fixing/verifying those bugs.

Comments and testing are welcome!  As I said, camdd(8) in particular is a
work in progress.  It could use some cleanup and there are some more useful
features that could be added there.

Part of the reason for camdd(8) was as a test facility for the new
interface.  But, it also serves as a useful demonstration of the
asynchronous pass(4) functionality, given that the original application
that used the API doesn't make sense to go into FreeBSD.  (It is
Spectra-specific, and not generally useful.)

Ken
-- 
Kenneth Merry
ken_at_FreeBSD.ORG

Received on Mon Mar 30 2015 - 20:24:08 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:56 UTC