Libata error messages

From ata Wiki
(Difference between revisions)
Jump to: navigation, search
m (add table border)
m (add borders to tables)
Line 26: Line 26:
 
The exception line gives an overview of the EH state
 
The exception line gives an overview of the EH state
 
  exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
 
  exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
{|
+
{| border="1" cellpadding="5" cellspacing="0"
 
|Emask||Error classification bitmask (AC_ERR_xxx in source code)
 
|Emask||Error classification bitmask (AC_ERR_xxx in source code)
 
|-
 
|-
Line 47: Line 47:
  
 
This lists ATA registers in the following order:
 
This lists ATA registers in the following order:
{|
+
{| border="1" cellpadding="5" cellspacing="0"
 
|Command
 
|Command
 
|-
 
|-
Line 83: Line 83:
 
  res 40/00:00:01:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
 
  res 40/00:00:01:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
 
In order:
 
In order:
{|
+
{| border="1" cellpadding="5" cellspacing="0"
 
|Status
 
|Status
 
|-
 
|-

Revision as of 16:23, 27 March 2008

Contents

Overview

All libata error messages produced by the kernel use a standard format:

ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
ata3.00: cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0
         res 40/00:00:01:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
ata3.00: status: { DRDY }

Prefix

The prefix

ata3.00:

decodes as

ata prefix, indicating this is a libata port or device message
3 port number, counting from one (1)
00 device number, usually zero unless Port Multiplier or PATA master/slave is involved

Exception line

The exception line gives an overview of the EH state

exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
Emask Error classification bitmask (AC_ERR_xxx in source code)
SAct SATA SActive register
SErr SATA SError register
action ATA_EH_xxx actions, like revalidate, softreset, hardreset (see source code)
frozen if present, indicates the port was frozen for EH
t<number> number of retries

Input taskfile

The "cmd" line gives the ATA command (taskfile) sent to the device:

cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0

This lists ATA registers in the following order:

Command
(separator)
Feature
NSect
LBA L
LBA M
LBA H
(separator)
HOB Feature
HOB NSect
HOB LBA L
HOB LBA M
HOB LBA H

NCQ tag number is also appended ("tag $N"), or listed as zero if NCQ is not active/applicable.

Output taskfile, error summary

The next line contains a current dump of the ATA device's registers, along with an error summary:

res 40/00:00:01:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)

In order:

Status
(separator)
Error
NSect
LBA L
LBA M
LBA H
(separator)
HOB Error
HOB NSect
HOB LBA L
HOB LBA M
HOB LBA H
Emask ATA command's internal error mask (AC_ERR_xxx in source code)
(summary) An English summary of the error, such as
  • timeout
  • HSM violation
  • media error
Personal tools