問題タブ [page-fault]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2587 参照

c - ゼロ フィル オン デマンドは Linux カーネルでどのように実装されていますか? また、どこで無効にできますか?

メモリを malloc すると、仮想メモリのみが利用可能になり、実際にはゼロページを指していました。malloced メモリに書き込もうとすると、実際の物理メモリが割り当てられます。この時点で、ゼロ ページからページ フォールトによってマッピングされた物理メモリにゼロをコピーするコピー オン ライトが発生します。私の問題は、ゼロ フィル オン デマンドが Linux ソース コードでどのように/どこで実装されているかです。この機能を無効にしてテストを行いたいと考えています。brk() や mmap() ではなく、ページ違反手順で発生した可能性があると思います。

ゼロ フィル オン デマンドに関連する同様のトピック。ZFODCOW

0 投票する
1 に答える
1277 参照

page-fault - マイナー ページ フォールトのコストを測定する方法は?

Linux はページをユーザーに返す前にページをゼロにする必要があるため、Transparent huge page(THP) がラージ ページ フォールトのレイテンシを引き起こすことを確認したいと思います。THP は 4KB ページの 512 倍大きいため、クリアが遅くなります。メモリが断片化されている場合、OS はメモリを圧縮して THP を生成することがよくあります。

そこで、マイナーページフォールトのレイテンシー(コスト)を測定したいのですが、まだわかりません。

0 投票する
0 に答える
49 参照

memory-management - カーネルで非常に大きな仮想アドレス空間 (TB) を予約する最良の方法は何ですか?

TLB を手動で更新して、新しい仮想メモリ ページをカーネル空間内の特定の物理ページ セットに変換しようとしています。do_page_faultロード/ストア命令が特定の仮想アドレス範囲 (まだ割り当てられていない) で発生するたびに、事前に TLB にページ テーブル エントリを配置するように、これを実行したいと考えています。翻訳は簡単です。たとえば、次のコードが適切に機能することを望みます。

したがって、翻訳は による単なる減算0xffff000000000000です。TLB 更新機能を実装する最良の方法は何ですか?

編集:これを行う主な理由は、カーネルに大きな仮想メモリ空​​間を予約できるようにするためです。カーネル内の特定のアドレス範囲でページ フォールトを処理したいだけです。そのため、最初にアドレス範囲を予約する必要があります (100TB の制限を超える可能性があります)。次に、その特定の範囲のページ キャッシュを実装する必要があります。それが不可能な場合、そのための最善の解決策は何ですか?