Индекс страниц для анонимных страниц в ядре

#memory-management #linux-kernel

Вопрос:

Используется ли индекс pgoff_t на странице структуры (физической странице) для чего-либо в случае анонимного сопоставления памяти?

Мотивация:

Для файла, сопоставленного с памятью (с использованием mmap), он используется в качестве смещения страницы в файле, но в случае анонимного сопоставления (также с использованием mmap) смещение страницы не имеет смысла и устанавливается равным виртуальному адресу памяти, на которую оно похоже в процессе, который называется mmap. Поэтому, если процесс использует mmap для получения одной страницы по виртуальному адресу 0x15000, то смещение страницы, а также индекс будут равны 0x15 (страница обычно 4096 B = 0x1000 B, смещение страницы смещается по количеству страниц). Поэтому как vm_pgoff в структуре vm_area_struct, так и индекс на странице структуры будут иметь значение 0x15.

Хотя кажется, что смещение страницы не имеет значения для анонимных страниц, оно по-прежнему используется при объединении виртуальных машин и на самом деле может вызвать проблемы. Поэтому важно знать, используется ли он для чего-то полезного или его можно изменить по мере необходимости для решения этих проблем.

Спасибо за любое понимание этого вопроса.