PERFTEST/FT: Adds validation mode to pingpong perftests#11592
Conversation
c6122a5 to
92f7236
Compare
92f7236 to
b0aa182
Compare
| remote_addr = m_perf.ucp.remote_addr; | ||
| rkey = m_perf.ucp.rkey; | ||
| sn = 0; | ||
| sn = 1; |
There was a problem hiding this comment.
Why not starting from 0?
There was a problem hiding this comment.
My thinking was that it was safer to start with 1. 0 isn't a good starting value because buffers are often full of 0s. But it probably doesn't matter because the test will quickly cycle through sequence numbers.
There was a problem hiding this comment.
Check reset_buffers I don't think 0 is a problem here but maybe I'm wrong.
There was a problem hiding this comment.
Good point. With seq number byte initialized to UNKNOWN_SN, starting at 0 isn't an issue. Reverted back to using 0.
|
🚫 @william-gallagher-nv — not authorized to trigger a review on this repo. Contact a repo admin to be added to the allowed-users list. |
|
🚫 @william-gallagher-nv — not authorized to trigger a review on this repo. Contact a repo admin to be added to the allowed-users list. |
| UCX_PERF_TEST_FOREACH(&m_perf) { | ||
|
|
||
| if (validate) { | ||
| memset(send_buffer, sn, send_length); |
There was a problem hiding this comment.
With -D iov, send_buffer is the descriptor array and send_length is the IOV count, so this corrupts the descriptors. -V has to require contig or validate the IOV payloads.
There was a problem hiding this comment.
IOV payloads supported in latest commit
| return UCS_ERR_INVALID_PARAM; | ||
| } | ||
|
|
||
| if (params->test_type != UCX_PERF_TEST_TYPE_PINGPONG) { |
There was a problem hiding this comment.
AM pingpong doesn’t copy into recv_buffer unless -y is set, so -V will fail w/o corruption. Maybe imply -y or reject this combo?
There was a problem hiding this comment.
Good catch. I was testing AM pingpong with large buffers which use RNDV and don't hit this issue. Latest commit implicitly sets -y with AM tests.
| optind = 1; | ||
| while ((c = getopt_long(argc, argv, | ||
| "p:b:6NfvXc:P:hK:g:G:k" TEST_PARAMS_ARGS, | ||
| "p:b:6NfvXc:P:hK:g:G:kV" TEST_PARAMS_ARGS, |
There was a problem hiding this comment.
-V isn’t accepted in batch files. Should it be added to TEST_PARAMS_ARGS?
Makes functions private where possible.
What?
Adds a new mode to UCX perftest to validate that buffers are transferred completely.
Why?
Allows for validation of data transfers during fault tolerance testing when end point lanes fail and are restored.
How?
UCP Pingpong perftests set send buffers to a known value on the sender side. The buffer contents are received and echoed back by the receiving side. The contents of the buffer are validated back on the sender side.