DragonFly- master sys/dev/disk/ahci ahci.c ahci.h ahci_attach.c ahci_cam.c ahci_dragonfly.c ahci_dragonfly.h atascsi.h

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jun 12 14:51:40 PDT 2009

commit f4553de13c8796ae9536441d5de2afa0aa352699
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Jun 12 14:45:35 2009 -0700

    AHCI - Implement parallel port scan and thread each port interrupt.
    * Implement a thread helper for each port.  The master interrupt will perform
      all actions which can be done without blocking and will delegate any
      remaining actions (typically error and timeout handling) to the
      port's thread helper.
    * The thread helper is responsible for the initial probe.  Thus ALL AHCI
      SATA PORTS WILL NOW PROBE IN PARALLEL!  Instead of 6 ports each taking
      2 seconds to probe we now have 6 ports probing in a total of 2 seconds.
    * Multiple port multipliers will probe in parallel, but targets on each
      one have to be iterated.
    * The attach code waits for all ports to fully probe and then runs CAM
      attachments serially.  This step goes very quickly since the ports
      have already probed.
    * Stalls on one physical port will no longer stall the rest of the ports.
      So, for example, stalls on the port connected to your port multiplier
      will not effect operations on, say, your internal SATA ports.

Summary of changes:
 sys/dev/disk/ahci/ahci.c           |  273 +++++++++++++++++++++++++++---------
 sys/dev/disk/ahci/ahci.h           |   26 +++-
 sys/dev/disk/ahci/ahci_attach.c    |   56 +++++---
 sys/dev/disk/ahci/ahci_cam.c       |  100 +++++++-------
 sys/dev/disk/ahci/ahci_dragonfly.c |  119 ++++++++++++++++
 sys/dev/disk/ahci/ahci_dragonfly.h |    1 +
 sys/dev/disk/ahci/atascsi.h        |    1 +
 7 files changed, 437 insertions(+), 139 deletions(-)


DragonFly BSD source repository

More information about the Commits mailing list