一般的に、ユーザー プロセスは物理アドレスをまったく気にしないため、プロセス仮想アドレスに対応する物理アドレスをユーザー状態から取得する必要はありません。 ユーザーは、DMA がユーザー モードで実行されるシナリオ (DPDK など) など、いくつかのアプリケーション シナリオについて懸念する場合があります。各ページのメモリ使用量やスワップアウトの有無などをデバッグして分析するシナリオもあります。 ユーザー モードから仮想アドレスに対応する物理アドレスを取得するには、プロセスのページ テーブルを調べることはできず、権限もありません。幸いなことに、カーネルはページマップと呼ばれるインターフェースを提供しており、このインターフェースはハードウェア アーキテクチャとは何の関係もありません。 /proc/pid/ の下に pagemap というファイルがあります。各ページに対して 64 ビットの記述子を生成し、物理ページ フレーム番号または仮想アドレス ページに対応する SWAP 内のスペースを記述します。詳細については、次のドキュメントを参照してください。 linux/ドキュメント/管理者ガイド/mm/ページマップ.rst この 64 ビットの説明は次のとおりです。 アーキテクチャが異なれば MMU やページ テーブル形式も異なりますが、ページマップ インターフェイスは特定のページ テーブル形式とは何の関係もなく、抽象化されていると言えます。 次に、スワップの影響を無視し (スワップがオフになっているか、ページが常にピン状態にあると仮定)、仮想アドレスを物理アドレスに変換する DPDK のコード セクションをコピーします。
最後のステップは、キー計算プロセスです。
page & 0x7ffffffffffffffULL はページ フレーム番号 (PFN) を取得し、それをページ サイズで乗算してこのページの開始の物理アドレスを取得し、次に virtaddr % page_size のページ オフセットを追加して最終的な物理アドレスを取得します。 実際に上記の関数を呼び出してアドレス変換を完了してみましょう。
結果は次のとおりです。
カーネル モードでページマップ proc インターフェイスを実装するためのコードは、次の場所にあります。
コア機能は、PTE を pagemap_entry に変換するプロセスです。興味のある方は、ぜひ読んでみてください: ページマップ内のフラグがどのように設定されているかを知るには、赤い線の位置に特に注意してください。 この記事はWeChatの公開アカウント「Linux Reading Field」から転載したものです。以下のQRコードからフォローできます。この記事を転載する場合は、Linux Reading Field 公式アカウントまでご連絡ください。 |
<<: AWSの機械学習クラウドサービスのインスタンスコストが18%下落、今年中国で開始されたばかり
>>: プログラマーの精神修養への道 - 分散システムにおける最も重要なハブとなるかもしれない
ウェブサイトを構築する友人は皆、外部リンクの重要性を知っているので、ウェブサイトの最初から外部リンク...
ウェブサイトの関連性は、ウェブサイトで注目すべき領域であり、ユーザーエクスペリエンスの焦点でもありま...
1. 春節期間中、宅配便会社は荷物が多すぎるため、通常に戻るまで1週間ほどかかる「大晦日にネットで服...
海外メディアの報道によると、アメリカの配車サービス「ウーバー」の評価額はわずか4年でゼロから驚異の1...
新浪科技は11月1日午後、アリババのワイヤレスビジネスグループがWeitaoプラットフォームの公開テ...
フィード広告は、ソーシャル ネットワークやオンライン メディア上でユーザーが読みたい情報の中に散りば...
中国では新たなインフラ政策が積極的に推進されており、データセンター、クラウドコンピューティング、ビッ...
中小企業がクラウドコンピューティングを採用する理由は何でしょうか?中小企業にとってクラウドサービスで...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています以前は、シ...
恋をしている人は、愛する人に全身全霊で感動します。私が言いたいのは、SEO 担当者は Baidu に...
Linux VPS の入り口に立っていて、まだ入っていない初心者に宛てたメッセージ: 初心者が Li...
[51CTO.com からのオリジナル記事] 先週、ガールフレンドが突然ペットを飼いたいと言いました...
ウェブページの信号対雑音比とは、ウェブページ内のテキストコンテンツと、これらのテキストを生成すること...
cloudcone、5 月のプロモーション: MC データセンター ロサンゼルス データセンターの ...
長年の開発と進歩を経て、今日ではコンピューティング戦略は大きく変化しました。より多くの企業が AI ...