On Linux MADV_SEQUENTIAL errors out with errno 22 (EINVAL, invalid argument) for workflows with >= 1B fingerprints. This should be harmless but
could potentially incurr in a small perf. penalty (in my benchmarks perf. gains from MADV_SEQUENTIAL are very small though).
I don't know why this could be happening and can only hypothesize that the logic to detect the memory address
where the numpy data is stored, and its size, may be buggy for some reason. It is strange that this
doesn't happen more frequently if that is the case however.
I also thought that it could be possible that the kernel decides to not mmap the arrays for some reason, and thus the memory is not aligned to a page-boundary. I don't know if that can be possible.
On Linux MADV_SEQUENTIAL errors out with errno 22 (EINVAL, invalid argument) for workflows with >= 1B fingerprints. This should be harmless but
could potentially incurr in a small perf. penalty (in my benchmarks perf. gains from MADV_SEQUENTIAL are very small though).
I don't know why this could be happening and can only hypothesize that the logic to detect the memory address
where the numpy data is stored, and its size, may be buggy for some reason. It is strange that this
doesn't happen more frequently if that is the case however.
I also thought that it could be possible that the kernel decides to not mmap the arrays for some reason, and thus the memory is not aligned to a page-boundary. I don't know if that can be possible.