intel / DML

Intel® Data Mover Library (Intel® DML)
https://intel.github.io/DML/
MIT License
81 stars 17 forks source link

Incorrect patterns in update_**_for_continuation #31

Open jposwiata opened 9 months ago

jposwiata commented 9 months ago

FILL, to avoid "shifted pattern" on page boundary (I assume that 16B pattern is not handled yet and 8 is OK).

uint32_t processed = 8 * (fill_record.bytes_completed() / 8);
fill_dsc.transfer_size() -= processed;
fill_dsc.destination_address() += processed;

Does it apply to COMPARE_PATTERN?

DIF_INSERT:

uint32_t blocks_processed = bytes_completed / block_size;
bytes_completed -= blocks_processed  * block_size;
source_address += blocks_processed  * block_size;
destination_address += blocks_processed  * (block_size + DSA_DIF_SIZE);

Very similar pattern should be for DIF_STRIP.

abdelrahim-hentabli commented 9 months ago

Hey @jposwiata, thanks for bringing this to our attention. I don't think that we will have time to investigate/fix this issue for the next release (v1.2.0). Would it be okay if this is addressed at a later time? If you would need this fix as soon as it is addressed, you would need to use the develop branch as opposed to a release tag