This status report applies to the latest SATA driver release, found in kernels >= 2.6.18-git5 (i.e. what will be 2.6.19).
The drivers were moved to drivers/ata in the kernel source tree, and a large number of PATA drivers were merged. ACPI support is available in libata-dev.git and -mm. Port multiplier and power management support is maturing rapidly.
The "ATA host state machine", the core of the entire driver, is considered production-stable.
Error handling has been dramatically improved, but error handling should now be considered beta, not production.
Support for SATA Native Command Queueing (NCQ) is available.
Tangent: Host-based queueing and Native Command Queueing: Queueing is the process of sending multiple commands to a single device, without waiting for prior commands to finish. This increases performance and reduces latency. There are three types of queueing in the ATA world:
#1 is unlikely to be supported.
#2 may supported by libata, on a per-driver basis, for all
hardware that supports it.
#3 is supported by libata, for most hardware and devices that
support NCQ.
Most SATA controllers are hotplug-capable, if your system bus (PCI, etc.) is also hotplug-capable. All SATA devices are hotplug-capable.
The following SATA controllers will never support hotplug: Intel ICH5-8 (non-AHCI), Pacific Digital Talon (ADMA), Promise SATA SX4.
These controllers do not export enough information about the SATA phy to make it possible to support hotplug. In some cases, such as Intel ICH5-8 (non-AHCI), it is possible to support "coldplug" operation: the user informs the OS driver he wishes to disconnect his SATA device, rather than simply disconnecting it.
There is little demand at the present time for aggressive, automatic power management under Linux.
System suspend/resume (suspend-to-RAM, suspend-to-disk) is currently supported for ata_piix, ahci, sata_sil and sata_sil24 drivers.
ACPI support is also needed in certain situations, to ensure that Linux properly initializes the device on boot, and after resume. A patch from Intel is available in -mm and libata-dev.git for this.
There are also some lingering reports that using SMART commands while the disk is in heavy usage leads to timeouts and other failures. This needs to be investigated. Haven't seen any of these reports recently.
libata has gained full support for PATA, including older chipsets and devices with buggy/problematic designs. Alan Cox has done a lot of work on this. PATA is be fully supported, alongside SATA. libata PATA drivers exist for almost all PATA chipsets.
libata PATA drivers will not be turned on by default for a long time, to avoid conflicts with CONFIG_IDE (the traditional IDE driver).
Tejun Heo has posted initial port multiplier support.