Как я могу получить значение CR3? - PullRequest
1 голос
/ 20 сентября 2011

Как я могу получить значение CR3?

Кроме того, как я могу получить значение CR3 процесса A (скажем, Firefox)?

Есть ли какая-либо команда, которую я мог бы использовать для чтениятекущий CR3?

Спасибо!

1 Ответ

1 голос
/ 20 сентября 2011

С здесь :

Я пытаюсь понять, в какой степени значение PGD (глобальный каталог страницы), хранящееся в регистре CR3, указывает запущенный процесс / поток с помощьюПланировщик Linux.

Я знаю, что каждый процесс имеет свое собственное значение PGD, но меня смущает значение регистра CR3, когда запланированы потоки ядра.

потоки ядра) просто заимствовать PGD последнего запланированного процесса (это означает, что все адресное пространство) .... это сделано, чтобы сохранить ненужную очистку TLB, поскольку поток ядра работает в пространстве ядра, и это одинаково для всех процессов

Таким образом, чтобы избежать сбросов TLB (Translation Lookaside Buffer), ядро ​​просто использует PGD из текущего процесса пользовательского режима, тогда как в пользовательском режиме регистр CR3 будет изменяться каждый раз при запуске нового процесса, поскольку они расположены.по другому виртуальному адресу, поэтому их отображение будет другим, я думаю.

...