libata error messages

38 篇文章 0 订阅

https://ata.wiki.kernel.org/index.php/Libata_error_messages

Libata error messages

From ata Wiki

Contents

[hide]

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

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

Exception line

The exception line gives an overview of the EH (Error Handler) state.

exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
EmaskError classification bitmask (AC_ERR_xxx in source code)
SActSATA SActive register
SErrSATA SError register
actionATA_EH_xxx actions, like revalidate, softreset, hardreset (see include/linux/libata.h)
frozenif 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
(separator)
 Device/Head
tagNCQ 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
(separator)
 Device/Head
EmaskATA 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

See below for a full list.

Error classes

These are the possible values for the (summary) in each error message, above.

host bus errorHost<->chip bus error (i.e. PCI, if on PCI bus)
ATA bus errorchip<->device bus error
timeoutController failed to respond to an active ATA command. This could be any number of causes. Most often this is due to an unrelated interrupt subsystem bug (try booting with 'pci=nomsi' or 'acpi=off' or 'noapic'), which failed to deliver an interrupt when we were expecting one from the hardware.
HSM violationHardware failed to respond in an expected manner. "HSM" stands for Host State Machine, a software-based finite state machine required by ATA that expects certain hardware behaviors, based on the current ATA command and other hardware-state programming details.
internal errorHardware flagged an impossible condition, most likely due to software misprogramming.
media errorSoftware detected a media error
invalid argumentSoftware marked ATA command as invalid, for some reason
device errorHardware indicates an error with last command. This error is delivered directly from the ATA device. If you see a lot of these, that is often an indication of a hardware problem.
unknown errorUncategorized error (should never happen)

ATA status expansion

The final line

status: { DRDY }

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

BusyDevice busy (all other bits invalid)
DRDYDevice ready. Normally 1, when all is OK.
DRQData ready to be sent/received via PIO
DFDevice fault
ERRError (see Error register for more info)

ATA error expansion

If any bits in the Error register are set, the Error register contents will be expanded into its component bits, for example:

error: { ICRC ABRT }
ICRCInterface CRC error during Ultra DMA transfer - often either a bad cable or power problem, though possibly an incorrect Ultra DMA mode setting by the driver
UNCUncorrectable error - often due to bad sectors on the disk
IDNFRequested address was not found
ABRTCommand aborted - either command not supported, unable to complete, or interface CRC (with ICRC)

SATA SError expansion

If any bits in the SATA SError register are set, the SError register contents will be expanded into its component bits, for example:

SError: { PHYRdyChg CommWake }

These bits are set by the SATA host interface in response to error conditions on the SATA link. Unless a drive hotplug or unplug operation occurred, it is generally not normal to see any of these bits set. If they are, it usually points strongly toward a hardware problem (often a bad SATA cable or a bad or inadequate power supply).

RecovDataData integrity error occurred, but the interface recovered
RecovCommCommunications between device and host temporarily lost, but regained
UnrecovDataData integrity error occurred, interface did not recover
PersistPersistent communication or data integrity error
ProtoSATA protocol violation detected
HostIntHost bus adapter internal error
PHYRdyChgPhyRdy signal changed state
PHYIntPHY internal error
CommWakeCOMWAKE detected by PHY (PHY woken up)
10B8B10b to 8b decoding error occurred
DisparIncorrect disparity detected
BadCRCLink layer CRC error occurred
HandshkR_ERR handshake response received in response to frame transmission
LinkSeqLink state machine error occurred
TrStaTrnsTransport layer state transition error occurred
UnrecFISUnrecognized FIS (frame information structure) received
DevExchDevice presence has changed
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值