virt_to_page関数は正確に何を返しますか?それはカーネル空間のアドレスが与えられたページを返しますか、それともユーザー空間のアドレスが与えられたページを返しますか?私が知る限り、それはカーネルアドレスをとり、そのページを返します。そうであれば、タスクまたはmm_structを指定して仮想アドレスを指定したユーザー空間プロセスからページを取得するにはどうすればよいですか?Linuxで特定のタスクのユーザー空間プロセスからページを取得する方法は?
答えて
virt_to_page()
実際に直接マップされたカーネルアドレスに対してのみ機能します。ユーザー空間マッピングのページを見つけるには、get_user_pages()
を使用する必要があります(ページの参照を解除するには、put_page
を実行してください)。
私はそれをしたら、私はそれを正しいにリリースするput_page(ページ)をしなければならないと私は一度get_user_pages()(1ページを取得する)を行うか? –
はい、get_user_pages()は返す各ページで参照を取ります。その参照を再び削除するには、各ページで一致するput_page()を実行する必要があります。 – Roland
mm_structのmmapセマフォのdown_readとup_reaについて忘れないでください:P –
- 1. Linux上のIntel Pinからアドレス空間レイアウトを取得する方法は?
- 2. 特定のメールからユーザーIDを取得する方法
- 3. C#で特定の子プロセスからのみキーボードストロークを取得する方法
- 4. linuxのpidからプロセスのパスまたは名前を取得する方法
- 5. CodeIgniterのコントローラから特定のページの内容を取得する方法は?
- 6. Linuxの特定のプロセスでTCPソケットのファイル記述子を取得する方法は?
- 7. 特定のページの承認を取得するユーザーは
- 8. Scalaで特定の時間にタスクをスケジュールする方法は?
- 9. 特定のユーザーのすべてのDCからlastLogonTimestampを取得する方法
- 10. EpiServer特定のページのリンクURLを取得する方法は?
- 11. MANページ内の特定のセクションを取得する方法は?
- 12. freebsd/linuxの特定のコアにプロセスをバインドする方法
- 13. linuxカーネル空間のユーザー空間スタックトレースを表示するには
- 14. Linuxカーネルバッファをユーザー空間にmmapする方法は?
- 15. Linuxカーネルからユーザー空間のメモリにアクセスするには?
- 16. Rails 3からユーザーのFacebookページを取得する方法
- 17. 特定のユーザーの平均セッション時間を慌てて取得する方法
- 18. LinuxのC/C++でユーザー名を取得する方法は?
- 19. 特定の行の間でテキストを取得する方法
- 20. process.Totalprocessortimeを使用して特定のプロセスのプロセス時間を取得する方法
- 21. Linuxユーザー空間アプリケーションコンパイルエラー
- 22. javaを使用してLinuxの特定のポートでプロセス情報を取得する方法
- 23. 子プロセスから親プロセスのアドレス空間にアクセスする方法は?
- 24. ボディから特定のデータ値を取得する方法は?
- 25. 特定のテキスト行からテキストを取得する方法は?
- 26. JSONから特定のデータを取得する方法は?
- 27. SQLデータベースから特定の列を取得する方法は?
- 28. データフレームから特定の列を取得する方法は?
- 29. ArrayListから特定のオブジェクトを取得する方法は?
- 30. Arrayから特定のデータを取得する方法は?
私はこの質問の見出しが少し誤解を招くと思います。 virt_to_pageは、カーネルアドレスに関連付けられたページ記述子のアドレスを生成する、Linuxカーネルコードのマクロです。 – vivekian2