Since linux identify PCI peripheral by [domain:bus:device:function]
number like following,
# lspci -D
0000:00:00.0 Host bridge: Red Hat, Inc. QEMU PCIe Host bridge
0000:00:01.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
0000:00:02.0 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub
PCI Express Root Port 0 (rev 02)
0000:00:02.1 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub
PCI Express Root Port 0 (rev 02)
0000:00:02.2 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub
PCI Express Root Port 0 (rev 02)
0000:00:02.3 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub
PCI Express Root Port 0 (rev 02)
0000:01:00.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
0000:02:01.0 USB controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M)
USB2 EHCI Controller (rev 10)
0000:02:02.0 Unclassified device [00ff]: Virtio: Virtio memory balloon
0000:02:03.0 SCSI storage controller: Virtio: Virtio SCSI
0000:02:04.0 Display controller: Virtio: Virtio GPU (rev 01)
0000:03:00.0 Ethernet controller: Virtio: Virtio network device (rev 01)
Here are my questions: Are these [domain:bus:device:function] number
come from hardware's
physical connection or allocated by software dynamic? If hardware do not
change, can we
guarantee these number do not change after system reboot? If they are
not fixed, then is there
anyway I can get a fixed ID which can indicate physical connection.
Thanks, Hope to get your help.