
对AER注入错误需要内核模块支持注入,需要安装aer_inject.ko模块,以及需要工具aer-inject命令行工具
1、编译出aer_inject.ko
|
|
安装成功后,能够在dev设备下看到aer_inject
|
|
2、获取aer-inject aer错误注入工具
|
|
3、aer错误注入
执行下面命令注入错误,这个代表针对08:0e.0设备注入不可校正的SURPDN(Surprise Down Error)错误
./aer-inject -s 08:0e.0 examples/fatal
examples/fatal文件
|
|
3.1 先屏蔽AER错误,观察是否正常注入错误
由于该设备不可校正错误掩码寄存器中将SDES置为1,所以将该错误屏蔽了,从/var/log/message中日志也可以看出。
|
|
/var/log/message日志
|
|
3.2 不屏蔽AER错误,观察是否正常注入错误
通过setpci将该掩码SDES置为0,取消错误屏蔽
setpci -s 08:0e.0 100+08.L=00400000
再执行aer错误注入
./aer-inject -s 08:0e.0 examples/fatal
会发现该设备已出现错误,故障注入成功
|
|
后续没有找到恢复该设备的方法,重置设备报错echo 1 > /sys/bus/pci/devices/<device_bus_id>/reset
,只能重启恢复
Written with StackEdit.
目录
相关文章
PCIe AER寄存器值查看和修改
1、AER简介 AER 即 Advanced Error Reporting高级错误报告,是PCIe高级特性,用于报告PCIe 错误信息。
2024年5月8日
virtio_net设备初始化流程
worker_thread –> process_one_work –> pciehp_power_thread –> pciehp_ctrl.c pciehp_enable_slot –> board_added –> pciehp_pci.c pciehp_configure_device –> pci/bus.c pci_bus_add_devices –> pci_bus_add_device –> dd.c device_attach –> __device_attach –> bus_for_each_drv –> __device_attach_driver –> driver_probe_device –> really_probe –>call_driver_probe –> pci-driver.c pci_device_probe –> pci_call_probe –> local_pci_probe –> virtio_pci_common.c virtio_pci_probe –> virtio.c register_virtio_device –> core.c device_add –> base/bus.c
2024年6月18日
vfio-mdev使用
使用vfio-mdev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 # 加载驱动 modprobe vfio_pci # 编译内
2024年6月18日
Virtio PCI设备配置空间详解
以virtio_blk设备的配置空间为例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2024年5月29日
gdb常用命令
相关命令: r(run):运行 q(quit):退出 b(break):打断点 • b function_name • b row_num • b file_name:row_num • b row_num if condition
2024年5月9日
赞赏
微信
