Libata error messages

From ata Wiki
(Difference between revisions)
Jump to: navigation, search
(describe ATA status register expansion line)
m (fix table)
Line 120: Line 120:
  
 
The final line expands the ATA status register returned in the output taskfile into its component bits:
 
The final line expands the ATA status register returned in the output taskfile into its component bits:
{|
+
{| border="1" cellpadding="5" cellspacing="0"
 
|Busy||Device busy (all other bits invalid)
 
|Busy||Device busy (all other bits invalid)
 +
|-
 
|DRDY||Device ready
 
|DRDY||Device ready
 +
|-
 
|DRQ||Data ready to be sent/received via PIO
 
|DRQ||Data ready to be sent/received via PIO
 +
|-
 
|DF||Device fault
 
|DF||Device fault
 +
|-
 
|ERR||Error (see Error register for more info)
 
|ERR||Error (see Error register for more info)
 
|}
 
|}

Revision as of 16:33, 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
tag NCQ tag number, 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

ATA status expansion

The final line expands the ATA status register returned in the output taskfile into its component bits:

Busy Device busy (all other bits invalid)
DRDY Device ready
DRQ Data ready to be sent/received via PIO
DF Device fault
ERR Error (see Error register for more info)
Personal tools