mstresourcedump Utility
The mstresourcedump tool extracts and prints data segments generated by the firmware. It is supported in 5th generation NIC devices. The dump output is used by NVIDIA for debug and troubleshooting.
Scapy and Pyverbs are no longer resourcedump dependencies. The same functionality has been changed with a C code that is based on the RDMA core included in OFED or Upstream.
mstresourcedump can be used only if Python 3.x is installed. Using lower versions will result in the tool's failure.
It is important for the user to generate a bin file for debugging and troubleshooting cases when needed by NVIDIA support team.
If the firmware version used is not supported, the tool will generate the following error message:
“Error: Failed to fetch query data with exception: Failed to send Register RESOURCE DUMP with rc: 515. Exiting...”.
mstresourcedump [-h] [-v] {dump,query}
where
dump |
Dump command |
query |
Query command |
-h, --help |
Show help message and exit |
-v, --version |
Shows tool version and exit |
mstresourcedump Query Usage
mstresourcedump query [-h] [--virtual-hca-id VIRTUAL_HCA_ID] --device DEVICE
where
-h, --help |
Show help message and exit |
-v, --virtual-hca-id |
The virtual HCA (host channel adapter, NIC) ID |
-d, --device |
The device name |
-m, --mem |
Perform the dump through memory (OFED with rdma-core dependency). Accepts: [ibv device (for example "mlx5_4")] |
An example of how to run the query command:
# mstresourcedump query --device 04
:00.0
__________________________________________________________________
Segment Type - 0x1300
(FULL_EQC)
Dump Params Applicability Special Values
-------------------------------- -------------- --------------
index1 (EQN) Mandatory N/A
num-of-obj1 N/A N/A
index2 (N/A) N/A N/A
num-of-obj2 N/A N/A
__________________________________________________________________
__________________________________________________________________
Segment Type - 0x1000
(FULL_QPC)
Dump Params Applicability Special Values
-------------------------------- -------------- --------------
index1 (QPN) Mandatory N/A
num-of-obj1 N/A N/A
index2 (N/A) N/A N/A
num-of-obj2 N/A N/A
…
…
…
mstresourcedump Dump Usage
mstresourcedump dump [-h] -d DEVICE -s SEGMENT [-v VIRTUAL_HCA_ID] [-i1 INDEX1] [-i2 INDEX2] [-n1 NUM_OF_OBJ1] [-n2 NUM_OF_OBJ2] [-de DEPTH] [-b BIN] [-m]
where
-h, --help |
Show help message and exit |
-v, --virtual-hca-id |
The virtual HCA (host channel adapter, NIC) ID |
-i1, --index1 |
The first context index to dump (if supported for this segment) |
-i2, --index2 |
The second context index to dump (if supported for this segment) |
-n1, --num-of-obj1 |
The number of objects to be dumped (if supported for this segment). accepts: ["all", "active", number, depends on the capabilities] |
-n2, --num-of-obj2 |
The number of objects to be dumped (if supported for this segment). accepts: ["all", "active", number, depends on the capabilities] |
-de, --depth |
The depth of walking through reference segments. 0 stands for flat, 1 allows crawling of a single layer down the struct, etc. "inf" for all |
-b, --bin |
The output to a binary file that replaces the default print in hexadecimal, a readable format |
-d, --device |
The device name |
-s, --segment |
The segment to dump |
-m, --mem |
Perform the dump through memory (OFED with rdma-core dependency). Accepts: [ibv device (for example "mlx5_4")] |
Examples of how to:
run the dump command:
# mstresourcedump dump --device
04
:00.0
--segment0x1200
--index10x404
--depth0
Found10
segments: ------------------------------------------- Segment Type:0xfffe
Segment Size:16
Bytes Segment Data:0x0004FFFE
0x00000000
0x00000000
0x101A0111
------------------------------------------- Segment Type:0xfffa
Segment Size:20
Bytes Segment Data:0x0005FFFA
0x12000000
0x00000404
0x00000000
0x00000000
-------------------------------------------run the Dump command and save it in bin file:
# mstresourcedump dump --device
04
:00.0
--segment0x1200
--index10x404
--depth0
–bin segment_1200.bin write to file: segment_1200.bin