Вы ожидаете, что системные вызовы mmap / mprotect установят сопоставления, которые обновляются немедленно, и не требуют дальнейшего взаимодействия для использования диапазонов памяти, как указано.Я вижу, что ядро действительно сбрасывает кеши на mprotect.В этом случае очистка кэша не требуется.
Однако , я также вижу, что некоторые версии libc вызывают cacheflush
после mprotect
, что подразумевает, что некоторые среды будутНужно, чтобы тайники сбрасывались (или были ранее).Я бы предположил, что это обход ошибки.
Вы всегда можете добавить вызов cacheflush;хотя это дополнительный код, он не должен быть вредным - в худшем случае кэши будут уже очищены.Вы всегда можете написать быстрый тест и посмотреть, что произойдет ...