1

Linuxのページフォールトハンドラーにコードを追加したいのですが、特にコピーオンライトに使用されるコードを変更することに興味がありdo_wp_pageます。ただし、ジレンマは、アプリケーションをテストしたいマシンが制御できないことです。OSまたはカーネルは、複数のユーザーが使用する共有マシンであるため、そのマシンで変更することはできません。

今、私は自分のページフォールトハンドラーを定義できる方法を探しています。これは、実行しているアプリケーションにのみ使用されます。カーネルモジュールを使用することもできますし(そのための管理者権限も要求する必要があると思います)、ユーザースペースで定義することもできます。また、SIGSEGV信号の処理には使用したくないので、を使用するとは言わないでくださいmprotect。書き込みページフォールトの実際のコピーを処理したい。ここでの私のオプションは何ですか?

4

2 に答える 2

2

最も簡単なのは仮想マシンを使用することです.VMでカーネルレベルの開発を行うと、エラーが他のユーザーに問題を引き起こすことはありません.

于 2012-04-23T13:12:56.597 に答える
0

残念ながら、do_page_fault と do_wp_page のアドレスは公開されていないため、あなたの言うことを実際に行う方法はおそらく眉をひそめます。VM 上の共有マシンで開発を行ってから、ベンチマークを処理するための専用マシンを取得します。とにかく、他のユーザーのワークロードがあなたのワークロードに干渉するため、共有マシンでは適切な読み取り値が得られません。

補足: Linux で COW を変更する必要があるのはなぜですか?

于 2012-04-23T13:17:40.953 に答える