Subsystem Trace Points: PCI¶
Overview¶
The PCI tracing system provides tracepoints to monitor critical hardware events that can impact system performance and reliability. These events normally show up here:
/sys/kernel/tracing/events/pci
Cf. include/trace/events/pci.h for the events definitions.
Available Tracepoints¶
pci_hp_event¶
Monitors PCI hotplug events including card insertion/removal and link state changes.
pci_hp_event "%s slot:%s, event:%s\n"
Event Types:
LINK_UP- PCIe link establishedLINK_DOWN- PCIe link lostCARD_PRESENT- Card detected in slotCARD_NOT_PRESENT- Card removed from slot
Example Usage:
# Enable the tracepoint
echo 1 > /sys/kernel/debug/tracing/events/pci/pci_hp_event/enable
# Monitor events (the following output is generated when a device is hotplugged)
cat /sys/kernel/debug/tracing/trace_pipe
irq/51-pciehp-88 [001] ..... 1311.177459: pci_hp_event: 0000:00:02.0 slot:10, event:CARD_PRESENT
irq/51-pciehp-88 [001] ..... 1311.177566: pci_hp_event: 0000:00:02.0 slot:10, event:LINK_UP
pcie_link_event¶
Monitors PCIe link speed changes and provides detailed link status information.
pcie_link_event "%s type:%d, reason:%d, cur_bus_speed:%d, max_bus_speed:%d, width:%u, flit_mode:%u, status:%s\n"
Parameters:
type- PCIe device type (4=Root Port, etc.)reason- Reason for link change:0- Link retrain1- Bus enumeration2- Bandwidth notification enable3- Bandwidth notification IRQ4- Hotplug event
Example Usage:
# Enable the tracepoint
echo 1 > /sys/kernel/debug/tracing/events/pci/pcie_link_event/enable
# Monitor events (the following output is generated when a device is hotplugged)
cat /sys/kernel/debug/tracing/trace_pipe
irq/51-pciehp-88 [001] ..... 381.545386: pcie_link_event: 0000:00:02.0 type:4, reason:4, cur_bus_speed:20, max_bus_speed:23, width:1, flit_mode:0, status:DLLLA