DragonFly kernel List (threaded) for 2009-06
AHCI driver update - initial PM support in.
The AHCI driver now handles port multipliers. I don't have any hardware
with the FBSS (FIS-based switching) feature so it doesn't support that
Note that performance for command-based switching access, which is the
kind we use, is horrible by definition and there isn't much we can do
about it. It's because the AHCI part only issues one command at a time
and then waits for the response before issuing the next one when working
across a port multiplier. For example, if you access a unit which as
I/O errors and long timeouts, it will stall all the devices behind the
PM (and in fact might stall the entire SATA subsystem for a period of
time due there being only one interrupt).
The port multiplier support is not considered production ready yet,
there are some issues with iteration timeouts (sometimes it misses a
disk), and I haven't life-tested the I/O yet with 4-5 disks installed.
I also intend to make notification work (if its possible), or otherwise
detect when a target unit behind a port multiplier is added or removed.
I still have a ton of stuff on my TODO list, mostly related to
performance. It's pretty clear that I am going to have to give
each SATA port its own thread to handle certain conditions so
stalls don't effect the entire system.
We also really, really need to start making the device mounts available
by disk serial number as the probe ordering will change the 'daXXX'
assigned to any given drive, but that's another issue.