В 64-битном Linux, IA-32E paging
используется с 4 уровней пейджинговых структур (PML4
/PDPT
/PD
/PT
). Записи в предыдущих трех структурах дают физический адрес соответствующей следующей структуры. Мой вопрос вопрос заключается в том, будут ли отображаться физические адреса всех этих структур поискового вызова в таблице поискового вызова? Если они отображаются, в каком режиме (User
/Supervisor
)? Огромное спасибо!Будут ли физические адреса всех пейджинговых структур в Linux быть отображены в таблицах страниц
Я захватил некоторые конкретные адреса памяти, к которым обращались vcpu
в течение периода в KVM
. Эти адреса находятся в форме gfn
(гостевой номер физического кадра). Я хотел сказать, были ли эти gfns
отображены в ядре или в пользовательском пространстве. Поэтому я просмотрел таблицу подкачки гостя (виртуальная машина), чтобы найти соответствующие записи в таблице таблиц для этих gfns
. См. Мой предыдущий вопрос here.
Я обнаружил, что физические адреса некоторых структур поискового вызова отображаются в таблице поискового вызова, а некоторые нет. То есть физические адреса некоторых структур поискового вызова (такие как адрес PT
, заданный PDE
), не имеют действительного соответствующего PTE
в таблице страниц. Поскольку я часто менял механизм памяти , я боюсь, что, возможно, это явление вызвано моим кодом или, может быть, что-то не так с моим кодовым кодом.
Так что я хочу знать в нормальном Linux, как обрабатываются эти материалы.
Большое спасибо!
Если это не так, как ядро получить доступ к таблицам страниц, когда включена виртуальная память? –
@AlexHoppus Да, я заметил это раньше. Но то, что показывает эксперимент, сбивает с толку, я хочу это подтвердить. Благодаря! – tamlok