mstfwtrace Utility
The mstfwtrace utility extracts and prints trace messages generated by the firmware running on 5th generation (Group II) devices iRISCs.
These trace messages inform developers of software drivers about internal status, events, critical errors, etc. Trace messages generated by iRISCs are stored in the trace buffer. The trace buffer is located in host memory.
When using secure firmware, the user needs to validate that tracer's value is set to "1" to enable it.
For MLNX_OFED up to 4.6: /sys/kernel/debug/tracing/events/mlx5/fw_tracer/enable
For MLNX_OFED 4.6 and above: /sys/kernel/debug/tracing/events/mlx5/mlx5_fw/enable
For linux kernel tracer (when MLNX_OFED is not available): /sys/kernel/debug/tracing/events/enable
By default, the firmware does not print trace messages. Please contact your FAE for more details on how to enable firmware tracing.
Enter the following command:
# mstfwtrace [options...]
where:
-h|--help |
Print this help message and exit |
-d|--device |
PCI device (BDF) |
--tracer_mode |
Tracer mode [MEM] |
--real_ts |
Print real timestamps in [hh:mm:ss:nsec] format |
-i|--irisc |
iRISC name (use the "all" option after -i) |
-s|--stream |
Run in streaming mode |
-m|--mask |
Trace class mask, use "+" to enable multiple classes or use integer format, e.g: -m class1+class2+... or 0xff00ff00 |
-l|--level |
Trace level |
-v|--version |
Print tool's version and exit |
--ignore_old_events |
Ignore collecting old events |
Device-Specific Information:
Connect-IB, ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, Switch-IB, Switch-IB 2, Quantum, Quantum-2, Spectrum, Spectrum-2, Spectrum-3:
iRISC names: [all]Trace classes:
DEBUG_INIT, INIT, ICM, ICM_FREE_LIST, HOST_MNG, CMD_IF, PHY_IB, PHY_RX_ADAP, PHY_EYE_OPN, PHY_COMMON, PHY_MANAGER, PWR, FLR, ICM_ACCESS, MAD, RXT_CHECKS, I2C, TRANSPORT, FW_LL, RX_ERRORS, CMD_DRIVER, PROFILING, MANAGEMENT, FLASH, STEERING, IFARM, ICMD, PCI, DC_CLEANUP, PHY_ETH, VIRTExample:
# mstfwtrace -d
41
:00.1
-i all Read old events: [0x28ed5b22771a5
]0
[0xa1
] IRON populate_local_dbase end entry_ix=0x0
, <state_31_28,cmd_ix_20_16,gvmi_15_0>=0x10000001
, cause_been_set=0
[0x28ed5b227b160
]0
[0xa5
] access_reg: register_id=0x9043
[0x28ed5b228297f
]0
[0xa1
] IRON populate_local_dbase end entry_ix=0x0
, <state_31_28,cmd_ix_20_16,gvmi_15_0>=0x10000001
, cause_been_set=0
[0x28ed5b2284365
]0
[0xa3
] access_reg: register_id=0x9043
Readnew
events: [0x28edf8a8a3788
]0
[0xa1
] IRON populate_local_dbase end entry_ix=0x0
, <state_31_28,cmd_ix_20_16,gvmi_15_0>=0x10000001
, cause_been_set=0
[0x28edf8a8a5bc0
]0
[0xa5
] access_reg: register_id=0x9043
[0x28edf92960db4
]0
[0xa1
] IRON populate_local_dbase end entry_ix=0x0
, <state_31_28,cmd_ix_20_16,gvmi_15_0>=0x10000001
, cause_been_set=0
[0x28edf929623dd
]0
[0xa2
] access_reg: register_id=0x9043