remap アプローチ (3) -- ページの read 処理

フォルトハンドラ起動 (page-in, swap-in):
  • PTEが無効なので fault発生
  • ディスクからの読みこみ先のページを確保
  • readコマンド発行
  • 完了ハンドラ(end_buffer_async_read, mpage_end_io_read) で uptodate ビットを立てページのロックを外す
  • 読み込み完了を待つ (ページのロックが得られるまでsleep)
  • プロセスが動作再開
handle_pte_fault
    do_file_page
        (filemap_)populate
            filemap_getpage
                find_get_page
                if (page == NULL)
                    page_cache_read
                if (! PageUptodate()) {
                    lock_page
                    readpage
                    wait_on_page_locked
                }
 
© copyright 2003 VA Linux Systems Japan