0


pkmap_page_table はカーネル起動時の kmap のページテーブルのポインタを持っています。
たとえば、PKMAP_BASE は 0xFFE00000 で、FIXADDR_START は 0xFFF00000 です。カーネルがハイ メモリを使用しようとする場合、TTB0 の PTE は仮想アドレスに対して 0xFFE00000 ~ 0xFFF00000 に設定する必要があります。
それでは、pkmap_page_table の PTE を使用してマップを作成するにはどうすればよいでしょうか。
また、TTB0 の PTE は pkmap_page_table の PTE と同じようにどのように変更されますか?

ありがとうございました。

4

1 に答える 1

0

実際にどのような問題が発生しているのかはわかりませんが、「Understading the Linux Kernel」という本にいくつかのコード sinnpet が掲載されています。

309ページで; 最後の行; 「プロセスが目覚めると、関数は、別のプロセスが呼び出しによってページをマップしたかどうかをチェックしますpage_address()。他のプロセスがまだページをマップしていない場合、内部ループが再開されます。」

于 2013-04-09T05:26:25.200 に答える