Pre-canned tests description¶
Overview¶
xbtest comes with a set of pre-canned tests which use one or more of the available test cases.
The pre-canned tests can be used as templates to create your own tests.
Use command line option -h
to list and locate the pre-canned test files.
Any pre-canned test requires xbtest to be set up correctly (see Set up xbtest).
Warning
The exact list and content of available pre-canned tests is specific to each platform.
The test_sequence
used by these various tests depends on the targeted platform.
Important
For each platform, all pre-canned tests have been validated in DELL PowerEdge R740 server with its fans spinning at 100% in a 25°C room.
xbtest supports the following pre-canned tests described in next sections:
Note
The test_sequence
listed in these various pre-canned sections is purely illustrative.
Please refer to the actual pre-canned test of your platform for accurate parameter definitions.
verify
¶
The verify
pre-canned test checks the integrity of the xclbin (see Verify test case description).
dma
¶
The dma
pre-canned test performs a basic DMA test case of all memories available on the card (for example: DDR and/or HBM).
For more information about host <-> memory test capabilities, see DMA test case description.
In this test, the DMA bandwidths are only reported as information and are not checked against any thresholds.
The following are two examples of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 10, "target": "HBM" },
{ "duration": 10, "target": "DDR" }
]
"test_sequence": [
{ "duration": 10, "target": "PL_DDR" },
{ "duration": 10, "target": "PS_DDR" }
]
p2p_card
¶
The p2p_card
pre-canned test performs a basic P2P CARD test case of all memories available on the source card (for example: DDR and/or HBM).
For more information about card <-> card test capabilities, see P2P CARD test case description.
In this test, the P2P bandwidths are only reported as information and are not checked against any thresholds.
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 10, "source": "HBM" },
{ "duration": 10, "source": "DDR" }
]
p2p_nvme
¶
The p2p_nvme
pre-canned test performs a basic P2P NVME test case of all memories available on the card (for example: DDR and/or HBM) tested as source and then tested as target.
For NoDMA platform, memories available on card are only tested as target.
For more information about NVMe SSD <-> card test capabilities, see P2P NVME test case description.
In this test, the P2P bandwidths are only reported as information and are not checked against any thresholds.
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 10, "source": "HBM" },
{ "duration": 10, "source": "DDR" },
{ "duration": 10, "target": "HBM" },
{ "duration": 10, "target": "DDR" }
]
memory
¶
The memory
pre-canned test performs a basic Memory test case of all memories available on the card (for example DDR or HBM).
See Memory test case description for more information about CU <-> memory test capabilities.
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 20, "mode": "alternate_wr_rd" },
{ "duration": 20, "mode": "only_wr" },
{ "duration": 20, "mode": "only_rd" },
{ "duration": 20, "mode": "simultaneous_wr_rd" }
]
memory_host
(Slave bridge)¶
The host memory must be enabled before running the memory_host
pre-canned test (see Host memory set up).
The memory_host
pre-canned test performs a basic Memory test case of the allocated host memory.
See Memory test case description for more information about CU <-> memory test capabilities.
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 20, "mode": "alternate_wr_rd" },
{ "duration": 20, "mode": "only_wr" },
{ "duration": 20, "mode": "only_rd" },
{ "duration": 20, "mode": "simultaneous_wr_rd" }
]
Note
In the memory_host
pre-canned test, write and read bandwidths are not compared against any thresholds.
Bandwidths are only reported as information.
power
¶
The power
pre-canned test performs a basic Power test case (see Power test case description).
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 100, "toggle_rate": 10 },
{ "duration": 100, "toggle_rate": 20 },
{ "duration": 100, "toggle_rate": 30 },
{ "duration": 100, "toggle_rate": 40 }
]
GT¶
Each GT pre-canned test requires a different set up (see GT test set up).
gt_mac
¶
The gt_mac
pre-canned test uses the QSFP passive electrical loopback module.
All the GT_MAC CUs present in xclbin are referenced in this pre-canned test.
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"test_sequence": [
{ "duration": 1, "mode": "conf_25gbe_rs_fec" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 10, "mode": "run" },
{ "duration": 1, "mode": "check_status" },
{ "duration": 1, "mode": "conf_10gbe_c74_fec" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 10, "mode": "run" },
{ "duration": 1, "mode": "check_status" }
]
Note
The usage of QSFP passive electrical loopback module allows 10/25GbE rate update during the test.
switch
¶
The switch
pre-canned tests require to be connected to a 10GbE or 25GbE switch port.
See GT MAC test case description for supported test sequence, lane mapping, switch and cables.
These pre-canned tests perform basic tests at 10GbE or 25GbE rate while the GT is connected to a 10 or 25GbE switch port. The traffic is looped back by the switch. All the GT_MAC CUs present in xclbin are referenced in these pre-canned tests. One pre-canned test is provided per lane rate:
10GbE:
switch_10gbe
.25GbE:
switch_25gbe
.
Here is an example of how a pre-canned test_sequence
may look like.
Refer to the pre-canned test provided in the Platform specific library for accurate content.
"gt_mac": {
"0": {
"global_config": {
"match_tx_rx": true,
"test_sequence": [
{ "duration": 1, "mode": "conf_10gbe_no_fec" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 60, "mode": "run" },
{ "duration": 1, "mode": "check_status" }
]
},
"lane_config": {
"0": {
"tx_mapping": 1
},
"1": {
"tx_mapping": 0
},
"2": {
"tx_mapping": 3
},
"3": {
"tx_mapping": 2
}
}
}
}
gt_mac_lpbk
¶
The gt_mac_lpbk
pre-canned test requires a 25GbE capable connection between the 2 CU (GT MAC and GT LPBK).
The 2 CUs are directly connected to each other.
See GT MAC test case description for supported test sequence, lane mapping, switch and cables.
This pre-canned test performs a basic test at 25GbE rate (without FEC). The traffic is generated GT MAC and to looped back by via the GT LPBK.
"gt_mac": {
"0": {
"global_config": {
"match_tx_rx": true,
"test_sequence": [
{ "duration": 1, "mode": "conf_25gbe_no_fec" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 60, "mode": "run" },
{ "duration": 1, "mode": "check_status" }
]
}
}
},
"gt_lpbk": {
"1": {
"global_config": {
"test_sequence": [
{ "duration": 1, "mode": "conf_25gbe_no_fec" }
]
}
}
}
gt_mac_port_to_port
¶
The gt_mac_port_to_port
pre-canned test requires a 10GbE or 25GbE capable connection between the 2 GT MAC CUs.
The 2 CU are directly connected to each other.
See GT MAC test case description for supported test sequence, lane mapping, switch and cables.
This pre-canned test performs basic tests at 10GbE and 25GbE rate. The traffic is generated by each GT MAC CU and terminated by the other one.
"gt_mac": {
"0": {
"global_config": {
"match_tx_rx": true,
"test_sequence": [
{ "duration": 1, "mode": "conf_25gbe_c74_fec" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 30, "mode": "run" },
{ "duration": 1, "mode": "check_status" },
{ "duration": 1, "mode": "conf_10gbe_c74_fec" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 30, "mode": "run" },
{ "duration": 1, "mode": "check_status" }
]
}
},
"1": {
"global_config": {
"mac_to_mac_connection": 0
}
}
}
gt_prbs
¶
The gt_prbs
pre-canned test requires a 25GbE capable loopback connection.
See GT MAC test case description for supported test sequence, lane mapping, switch and cables.
This pre-canned test performs a basic test at 25GbE rate. 64/66B PRBS 31 is generated and checked.
"gt_prbs": {
"0": {
"global_config": {
"test_sequence": [
{ "duration": 1, "mode": "conf_25gbe" },
{ "duration": 1, "mode": "clear_status" },
{ "duration": 30, "mode": "run" },
{ "duration": 1, "mode": "read_status" }
]
}
}
}
stress
¶
The stress
pre-canned test requires GTs to be connected to a 25GbE switch port (see GT test set up).
This pre-canned test combines multiple pre-canned tests:
verify
switch_25gbe
memory
power
Refer to the pre-canned test provided in the Platform specific library for accurate content.
Important
If the GTs are not connected to a 25GbE switch port, this pre-canned test will fail.