故障管理守护进程 fmd(1M) 为诊断引擎 (diagnosis engine, DE) 插件模块的开发提供编程接口。可通过编写 DE 来使用和诊断任何错误遥测或特定错误遥测。eft DE 设计为根据以 Eversholt 语言指定的诊断规则来诊断任意数量的 ereport 类。
大多数 I/O 子系统都使用 eft DE 和规则集来诊断与设备和设备驱动程序相关的问题。已为 PCI 叶设备指定了一组报告标准 I/O 控制器错误中列出的标准 ereport。除了这些 ereport 外,同时还提供了提取遥测并确定关联设备故障的 eft 诊断规则。生成这些 ereport 的驱动程序不需要交付其他任何诊断软件或 eft 规则。
检测和生成这些 ereport 时将产生以下故障事件:
PCI 总线上的硬件故障
设备内的硬件故障
设备中的硬件故障或驱动程序的缺陷,导致设备发送无效请求
设备中的硬件故障,导致驱动程序不对有效请求做出响应
链路中的硬件故障
链路关闭,导致设备无法对有效请求做出响应
设备内的硬件故障
设备中的硬件故障或驱动程序的缺陷,导致设备发送无效请求
设备中的硬件故障,导致设备无法对有效请求做出响应
要生成其他 ereport 或提供更专门的诊断软件或 eft 规则的驱动程序开发者可以通过编写基于 C 的 DE 或 eft 诊断规则集来实现此目标。有关信息,请参见 OpenSolaris 项目的故障管理社区。