Add continuous flow support to mxl-fabrics#504
Conversation
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
…st creation. Rename DataLayout substypes to Discrete/Continuous instead of Video/Audio. Change some variable declarations to the 'modern' way. Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
…ed 'count' parameter validations to ensure the user doesn't pass a value that would exceed the size of the bounce buffer entry. Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
…g audio entry header size of the entrySizeRequired. Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
…for a given protocol. Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
|
|
||
| if (status != MXL_ERR_NOT_READY && status != MXL_STATUS_OK) | ||
| { | ||
| return status; |
There was a problem hiding this comment.
Wouldn't this skip the cleanup after the while loop?
There was a problem hiding this comment.
Good catch, I've moved the clean-up to the dtor. Also found and fixed a bug in the removeTarget function now that this is called during clean-up.
| if (status == MXL_STATUS_OK) | ||
| { | ||
| // transfer complete | ||
| return; |
There was a problem hiding this comment.
return here will skip the cleanup
There was a problem hiding this comment.
I also took the opportunity to clean-up the tests by creating abstractions for waiting for connection, waiting for transfer and waiting for completions.
| // entry count is a parameter of the protocol instance. | ||
| domain->registerRegion(_region, FI_WRITE); | ||
|
|
||
| _localRegion = domain->localRegions().front(); |
There was a problem hiding this comment.
In case of multi-targets, wouldn't this be no longer correct? I think we should do similar thing here as with RMAGrainEgressProtocoLTemplate and get the size of localRegions before calling registerRegion
There was a problem hiding this comment.
This should and is called exclusively during initiator setup to register the audio region containing the samples that will be transferred to all targets. This is unlike RMASampleEgressProtocol::registerMemory() which is called on addTarget() and registers a list of AudioEntryHeader entries which are different for each target.
So, what happens during the transfer setup is the following: the scatter-gather list is built of one of those AudioEntryHeader buffer and the samples. The AudioEntryHeader is different per targets, but the samples are the same for each targets.
…e wrong id was used for searching the target. Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
…ansfers and poll for completions. Co-authored-by: Michael Lefebvre <michael.lefebvre.31@gmail.com> Signed-off-by: Michael Lefebvre <michael.lefebvre@riedel.net>
43e0ca3 to
ad4178c
Compare
This pull request introduces support for the "continuous flows" to Fabrics.
This will close the following issues: #178 and #181.
To visualize what was implemented https://github.com/dmf-mxl/mxl/blob/main/docs/fabrics/img/mxl-fabrics-cont-flow-rma.png