問題タブ [page-tables]
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.
c - ページテーブルをダンプするには?
私はLinux、C、およびスタックオーバーフローが初めてです。実行中のすべてのプロセスのページ テーブルを表示しようとしていました。このために、私はdump_pagetable.cを使用しています。
まずは通常のコンパイルで実行してみましたgcc dump_pagetables.c -o dump_pagetables.out
。しかし、それは私にエラーを与えました:
- このコードを実行するにはどうすればよいですか?
dump_pagetables.c
巨大なページも表示できるように変更するにはどうすればよいですか。
linux-kernel - github のファイルにカーネルパッチを適用する方法は?
ページテーブルのエントリを表示したかった。だから私はカーネルを4.1.4にビルドします
しかし、まだページ テーブルのエントリが表示されません。これで、dump_pagetable.cにパッチを適用する必要があることがわかりました。このパッチの名前がどこにあるのかもわかりません。
- このファイルだけにパッチを適用できますか? または、依存フォルダー全体にパッチを適用する必要がありますか? もしそうなら、それはどのフォルダですか?
- また、ファイルにパッチを適用するために必要なコマンドを認識していません。プロセスを案内してください。
- パッチが正常に完了したことを確認する方法は?
unix - RSS 値をページに合わせて配置することは必須ではありませんか
timeコマンドを使用して、アプリケーションのメモリ使用量を確認していました。次の出力が得られます
最大 RSS は 13300 で、ページが整列されていません。私の64ビットマシン(ubuntu)のページサイズは4096です。私の理解によると、メモリの割り当て/割り当て解除はページに基づいています。しかし、RSS図はページアラインではありません。その後、psコマンドを使用して観察しますが、システムで実行されているすべてのプロセスについても同様です。
物理メモリがページ単位で割り当て/割り当て解除されているという私の理解が正しくないということですか? 次に、メモリがどのように割り当てられ、メモリの粒度とは何ですか。
c - pae ページングを使用する場合の線形アドレス変換
ハイパーバイザー レベルからプロセス ページング構造をウォークスルー (および印刷) しようとしています。私が実行しているゲストは、PAE (物理アドレス拡張) ページングを使用する 32 ビット OS (ubuntu 12.04) です。
Intel マニュアルの次の図は、PAE ページングを使用する場合のさまざまな構造の詳細を示しています。
これらの情報の使用方法について混乱しています。
異なる PDPTE にアクセスするには、CR3 + i
(無視されたビットを含めて) 使用するか、CR3 を 4 だけ右にシフトしてからオフセットを追加する必要があり(CR3 >> 4) + i
ますか?
同様に、PDPTE からのページ ディレクトリのアドレスについては、エントリとその 40 ビット (12:51) からフラグを除外する必要があることを理解しています。ただし、CR3 + i
すべての PDPTE に対して 0ed PDE (使用したもの) しか得られません ... 以前kvm_read_guest(vcpu->kvm, cr3 + i, &pdpte, 8)
は PDPTE をkvm_read_guest(vcpu->kvm, (pdpte >> 12) + i, &pde, 8)
読み取り、PDPTE から PDE を読み取っていました。
誰かがこれについて何か説明があれば、私はとても感謝しています:)