6

メジャーページフォールトハンドラーはどこにあるのでしょうか。

カーネルのページフォールトを最小限に抑えるアルゴリズムを作成しました。したがって、ページフォールトが発生するたびに何かを記録する必要があります。現在、arch / x86 / mm / fault_32.cのdo_page_fault(...)で発生したページフォールトを記録しています

ただし、マイナーページフォールトとメジャーページフォールトの両方がdo_page_fault(...)に移動するようです...そしてマイナーページフォールトは常に発生し、アルゴリズムを台無しにします。

メジャーなpage_faultが発生したときにのみ記録したいと思います。それで、カーネルハッカー、コードをどこに置くべきか教えていただけませんか?どのファイルとどの機能。

ちなみに、私はカーネル2.6.24をハッキングしています

どうもありがとうございます!アルフレッド

4

1 に答える 1

7

このhandle_mm_fault関数はページフォールトを処理します。その戻り値はフラグのセットです。が設定されている場合VM_FAULT_MAJOR、それはメジャーページフォールトです。カーネルはperf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ...すべてのメジャーページフォールトを呼び出します。

于 2012-05-04T01:11:56.623 に答える