在Solaris mdb里面有个prtconf命令,可以打印device tree,也可以显示驱动设置的私有数据结构。但是crash并没有类似的命令。今天发现了一个全局变量pci_bus_type,通过这个变量可以实现类似的功能。
https://github.com/mishuang2017/crash/commit/b8ce5ca4a4004762ba00547c427450d189ea1abe
在我的小米笔记本上显示如下:
crash> bus
pci_bus_type
bus_type ffffffffaf0cada0
subsys_private ffff929cb4c29000
klist ffff929cb4c290a0
list -H ffff929cb4c290a8
iwl_pci_driver:
pci_driver ffffffffc0781240
device_private ffff929cb4ed0d00
device ffff929cb4f130b0
pci_dev ffff929cb4f13000
device_driver ffffffffc07812b0
kobject ffff929cb4f130c0
name 0000:02:00.0
iwl_trans ffff929cb3aa0018
在插有mellanox cx5网卡并且创建了三个virtual functions的机器上显示如下:
crash> bus
pci_bus_type
bus_type ffffffffaa32dce0
subsys_private ffff9bb11a545800
klist ffff9bb11a5458a0
list -H ffff9bb11a5458a8
mlx5_core_driver:
pci_driver ffffffffc0c7b000
device_private ffff9ba91ac060c0
device ffff9ba91ac420b0
pci_dev ffff9ba91ac42000
device_driver ffffffffc0c7b070
kobject ffff9ba91ac420c0
name 0000:04:00.0
mlx5_core_dev ffff9ba7d91000c0
device_private ffff9ba91ac06240
device ffff9ba91ac430b0
pci_dev ffff9ba91ac43000
device_driver ffffffffc0c7b070
kobject ffff9ba91ac430c0
name 0000:04:00.1
mlx5_core_dev ffff9ba84b9800c0
device_private ffff9bb118c91740
device ffff9ba76006b0b0
pci_dev ffff9ba76006b000
device_driver ffffffffc0c7b070
kobject ffff9ba76006b0c0
name 0000:04:00.2
mlx5_core_dev ffff9ba81ae000c0
device_private ffff9ba809bb9200
device ffff9ba81e99b0b0
pci_dev ffff9ba81e99b000
device_driver ffffffffc0c7b070
kobject ffff9ba81e99b0c0
name 0000:04:00.3
mlx5_core_dev ffff9ba800a800c0
device_private ffff9ba809bb8f00
device ffff9ba81e99f0b0
pci_dev ffff9ba81e99f000
device_driver ffffffffc0c7b070
kobject ffff9ba81e99f0c0
name 0000:04:00.4
mlx5_core_dev ffff9ba7db4000c0