Linuxでは、カーネルはすべてのTLBミスケースを処理する必要がありますか?

Linuxでは、カーネルはすべてのTLBミスケースを処理する必要がありますか?

私はLinuxメモリ管理に関するいくつかの概念を頭の中に整理しようとしていますが、次の質問があります。

Linuxでは、TLBの欠落はカーネルコードとして扱われますか?見逃しても簡単に見つけることができます。ページテーブルにマッピングがあることを確認する(ページ巡回)[1]?私の言葉は、いわゆるページウォーキングカーネルコードで実行されますか?

いわゆる?ページウォーキング(どのようなTLBミスへの応答)はソフトページエラーと見なされますか?

答え1

プロセッサによって異なります。 x86アーキテクチャでは、TLBの欠落はハードウェアによって処理されるため、カーネルに透過的です。カーネルコードがTLBを処理する唯一の時間は、TLBの内容が破棄されたとき(TLBフラッシュ)です。

「ソフトページエラー」は通常、RAMにメモリページがありますが、MMUがこの状況を認識しないことを意味します。つまり、ページテーブルにそのページフレームのエントリはありません。

関連情報