Subject: thorpej_scsipi branch merged
To: None <current-users@NetBSD.ORG>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: current-users
Date: 04/25/2001 20:52:33
Hi,
I just merged the thorpej_scsipi branch in -current, should appear on anoncvs
and sup servers soon.
The core scsipi is well tested, but a number of HBA drivers have not been
tested. If you encounter any problems please report with send-pr and I'll
handle it ASAP. To know whenever you're running the new code, check kernel
threads: you should have one thread per ATAPI or scsi channel:
rochebonne:/usr/src/thorpej_scsipi>ps ax 
PID TT STAT    TIME COMMAND
[...]
  2 ?? DK   0:00.00 (pciide0:1)
(this is on my PC with ATAPI cd, on my SS20 it's a esp0:0)

For those who missed it, the commit message is appened below

--
Manuel Bouyer <bouyer@antioche.eu.org>
--

Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.