Software Status: Recent Updates

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Software status

Contents
 [hide] 

1 Recent updates

2 Software support

o 2.1 Basic Serial ATA

support

o 2.2 Queueing

support

o 2.3 Hotplug support

o 2.4 Power

Management support

o 2.5 SMART support

o 2.6 PATA support

o 2.7 ATAPI support

o 2.8 Port Multiplier

support

Recent updates

Link Power Management support for AHCI capable hardware is maturing, though a few devices have issues.

Software support
Basic Serial ATA support
The "ATA host state machine", the core of the entire driver, is considered production-stable.

Error handling is also production-stable, but continues to be refined (because by its very nature, faults are rare,
therefore fault workaround and prevention testing is all the more difficult).

Queueing support
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. "legacy TCQ" -- some PATA devices support this. This design is largely a hack on top of existing ATA,
to enable queueing for certain devices. Since host controllers did not require updates to support this,
there are many limitations and complications that an OS driver must deal with, to enable legacy TCQ.
As a result, legacy TCQ will only be supported on those few host controllers which provide host-based
TCQ (see next item). This is very low priority, and may never be supported.

2. "host-based TCQ" -- the host controller supports a queue of drive commands, whether or not the drive
supports it.

3. "Native Command Queueing" -- both host and drive cooperate in the queueing and execution of drive
commands. This should provide the highest performance and lowest latency of all three options.

No. 1 is unlikely to be supported. No. 2 may supported by libata, on a per-driver basis, for all hardware that
supports it. No. 3 is supported by libata, for most hardware and devices that support NCQ.

Hotplug support
libata supports both controller hotplug ("yank the card") and device hotplug ("yank the drive").

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.

Polling for certain errors on these controllers may make it possible to provide the appearance of hotplug, in
some case.

Power Management support


Over and above the power management specified in the ATA/ATAPI specification, one can aggressively control
the power consumption of SATA hosts, the SATA bus, and the SATA device. As discussed on some mailing
lists, the aggressive power management can be too aggressive, and park the heads too often (resulting in
shortened disk drive life). Careful attention must be paid to balance.

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_fsl,
sata_inic162x, sata_nv, sata_sil, sata_sil24 and sata_via 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.
SMART support
With the integration of ATA passthru in kernel 2.6.15, SMART is fully supported in the standard libata driver.

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.

PATA support
libata is not specific to Serial ATA. It works for Parallel ATA (a.k.a. IDE) as well. Certain SATA controllers such
as Promise and SiS include PATA ports on their SATA controllers.

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).

ATAPI support
ATAPI devices are now supported on all controllers that support ATAPI (most of them except Marvell
88SX504x, 88SX508x and Promise SX4).

Port Multiplier support


Port Multipler (PMP) capability allows multiple SATA devices to attach to a concentrator, which then attaches to
a SATA controller via a single SATA cable.

Both port multiplier modes are supported, see SATA hardware features for a detailed list of chips which support
it.

You might also like