Указывает ли madvise (___, ___, MADV_DONTNEED) ОС на ленивую запись на диск?

Гипотетически, предположим, я хочу выполнить последовательную запись в потенциально очень большой файл.

Если я mmap () гигантский регион и madvise (MADV_SEQUENTIAL) на весь этот регион, то я могу записать в память относительно эффективным способом. Это я получил работать просто отлично.

Теперь, чтобы освободить различные ресурсы ОС во время написания, я время от времени выполняю munmap () для небольших фрагментов памяти, в которые уже записано. Меня беспокоит то, что munmap () и msync () заблокируют мой поток, ожидая физической передачи данных на диск. Я вообще не могу замедлить писателя, поэтому мне нужно найти другой путь.

Было бы лучше использовать madvise (MADV_DONTNEED) на небольшом, уже написанном фрагменте памяти? Я хочу сказать ОС, чтобы лениво записывать эту память на диск, а не блокировать мой вызывающий поток.

В справочной странице по madvise () есть что сказать, что довольно двусмысленно:

MADV_DONTNEED
Do  not expect access in the near future.  (For the time being, the 
application is finished with the given range, so the kernel can free
resources associated with it.)  Subsequent accesses of pages in this
range will succeed, but will result either in re-loading  of the memory
contents from the underlying mapped file (see mmap(2)) or
zero-fill-on-demand pages for mappings without an underlying file.

Ответы на вопрос(2)

Ваш ответ на вопрос