Да, во FreeBSD page cache не учитывает популярность страниц, отданных
sendfile()ом или прочитанных с помощью read(). Популярность учитывается
только при обращеннии к mmap()тым страницам. Тем не менее, какое-то
Насколько я понял МакКусика, для read() сначала делается что-то типа
того что и для mmap() - страница загружается в память и привязывается к
vnode файла.
Разница между read() и mmap() в том что в первом случае нужные данные
после загрузки с винта в память копируются в указанные в read()
анонимные страницы привязанные к процессу, а во втором - загруженная
страница с данными сама биндится в адрессное пространство процесса.
В обоих случаях при работе с данными идет обращение к странице
привязанной к vnode - для read() чтоб скопировать в адрессное
пространство процесса, который затем зашлет данные в сокет, и для mmap()
- чтоб скопировать уже сразу в сокет.
Не в курсе как с zero_copy, будет ли засчитываться обращение ядра к
mmap-нутым страницам или нет.