在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