Libata error messages

 
 

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

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 (Error Handler) 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 include/linux/libata.h)
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:

ea Command (FLUSH CACHE EXT EAh, Non-Data)
/ (separator)
00 Feature
00 NSect
00 LBA L
00 LBA M
00 LBA H
/ (separator)
00 HOB Feature
00 HOB NSect
00 HOB LBA L
00 HOB LBA M
00 HOB LBA H
/ (separator)
a0 Device/Head
tag NCQ tag
0 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:

40 Status
/ (separator)
00 Error
00 NSect
01 LBA L
4f LBA M
c2 LBA H
/ (separator)
00 HOB Error
00 HOB NSect
00 HOB LBA L
00 HOB LBA M
00 HOB LBA H
/ (separator)
00 Device/Head
Emask ATA command's internal error mask (AC_ERR_xxx in source code)
0x4 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 internal error mask in each error message mentioned above.

AC_ERR_XXX, ATA Completion Errors were defined in include/linux/libata.h.

0x20 host bus error Host<->chip bus error (i.e. PCI, if on PCI bus)
0x10 ATA bus error chip<->device bus error
0x4 timeout Controller 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.
0x2 HSM violation Hardware 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.
0x40 internal error Hardware flagged an impossible condition, most likely due to software misprogramming.
0x8 media error Software detected a media error
0x80 invalid argument Software marked ATA command as invalid, for some reason
0x1 device error Hardware 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.
0x100 unknown error Uncategorized 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:

Busy Device busy (all other bits invalid)
DRDY Device ready. Normally 1, when all is OK.
DRQ Data ready to be sent/received via PIO
DF Device fault
ERR Error (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 }
ICRC Interface 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
UNC Uncorrectable error - often due to bad sectors on the disk
IDNF Requested address was not found
ABRT Command 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).

RecovData Data integrity error occurred, but the interface recovered
RecovComm Communications between device and host temporarily lost, but regained
UnrecovData Data integrity error occurred, interface did not recover
Persist Persistent communication or data integrity error
Proto SATA protocol violation detected
HostInt Host bus adapter internal error
PHYRdyChg PhyRdy signal changed state
PHYInt PHY internal error
CommWake COMWAKE detected by PHY (PHY woken up)
10B8B 10b to 8b decoding error occurred
Dispar Incorrect disparity detected
BadCRC Link layer CRC error occurred
Handshk R_ERR handshake response received in response to frame transmission
LinkSeq Link state machine error occurred
TrStaTrns Transport layer state transition error occurred
UnrecFIS Unrecognized FIS (frame information structure) received
DevExch Device presence has changed

Libata Error Message 解析的更多相关文章

  1. Compiler Error Message: CS0016: Could not write to output file 回绝访问

    Compiler Error Message: CS0016: Could not write to output file 'c:\Windows...dll' 拒绝访问 C:\Windows\Te ...

  2. Oracle Error - "OCIEnvCreate failed with return code -1 but error message text was not available".

    ISSUE: When trying to connect to an Oracle database you receive the following error: "OCIEnvCre ...

  3. 网站部署后Parser Error Message: Could not load type 的解决方案

    asp.net 的Webproject 项目是在64bit机上开发,默认选项发布后,部署到32bit的服务器上,出现Parser Error Message: Could not load type的 ...

  4. [BTS] The adapter "SQL" raised an error message. Details "The Messaging Engine is shutting down. ".

    Get a warning in event log. Log Name:      ApplicationSource:        BizTalk ServerDate:          3/ ...

  5. Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"

    Article ID: 939308 - View products that this article applies to. Expand all | Collapse all Symptoms ...

  6. Fix the “No Private Key” Error Message

    This article will show you how to correct the “No Private Key” error message in Windows Internet Inf ...

  7. undefined reference to typeinfo - C++ error message

    undefined reference to typeinfo - C++ error message There are some compiler and loader error message ...

  8. "This connection is untrusted" - Firefox error message

    Error Messages I am receiving the following error message in Firefox: After selecting Cancel to clos ...

  9. android stack error message is Fail to start the plugin

    E: 08-26 16:34:11.934: E/AliSDK(32236): 错误编码 = 1002208-26 16:34:11.934: E/AliSDK(32236): 错误消息 = SDK  ...

  10. Error message “Assembly must be registered in isolation” when registering Plugins in Microsoft Dynamics CRM 2011 2013 解决办法

    Error message “Assembly must be registered in isolation” when registering Plugins in Microsoft Dynam ...

随机推荐

  1. 在Windows 版的Chrome中切换标签页

    按住Ctrl+tab键之后使用page up/ page down键左右移动!

  2. Java - 输出空心菱形

    1. 思路:发现菱形的规律 ,定义三个变量,左边距和右边距,中间的边距 .   具体规律观察上图  . 2.上代码: //输出空心菱形 public class ForToLingXing { pub ...

  3. Linux-日期时间-date

  4. [转帖][大数据]ETL之增量数据抽取(CDC)

    https://www.cnblogs.com/johnnyzen/p/12781942.html 目录 1 CDC 概念 1.1 定义 1.2 需求背景 1.3 考察指标 2 CDC 常见解决方案 ...

  5. [转帖]docker使用阿里镜像源

    ps:docker使用阿里镜像源特别快 首先安装docker:参考https://www.jianshu.com/p/2dae7b13ce2f 一.使用阿里镜像地址: dockerd --regist ...

  6. [转帖]Linux—编写shell脚本操作数据库执行sql

    Linux-编写shell脚本操作数据库执行sql Hughman关注IP属地: 北京 0.0762020.03.20 09:02:13字数 295阅读 1,036 修改数据库数据   在升级应用时, ...

  7. Python学习之六_同时访问Oracle和Mysql的方法

    Python学习之六_同时访问Oracle和Mysql的方法 背景 jaydebeapi 可以访问大部分数据库. 但是他有一个问题是仅能够访问一种类型的数据库. 如果同事连接两种数据库,那么就会出现问 ...

  8. [转帖]HotSpot 虚拟机对象探秘

    https://www.cnblogs.com/xiaojiesir/p/15593092.html 对象的创建 一个对象创建的时候,到底是在堆上分配,还是在栈上分配呢?这和两个方面有关:对象的类型和 ...

  9. [转贴]更改 CMD 编码(解决 VSJupyter 乱码)

    https://zhuanlan.zhihu.com/p/521376336 以 将编码更改为 UTF-8 为例 1. 临时修改编码 运行 CMD 输入 chcp 查看当前的代码页 (代码页和国家/地 ...

  10. Kernel 内核支持的方法查询

    今天同事说自己的一个项目出现了报错如图: 报错的机器是 Windows XP 想找一个 windows XP的机器验证一下: 然后 想通过百度搜索确认一下 这个问题 但是发现基本上效果不大 改用了bi ...