メモリダイエット3
コメントがついている。
考えを整理するためのメモ。
以下の3つが要求されている。
- 1) kmallocを使うため、ハッシュスロットの最大値を決める
- 今は2^15だが、vmallocには多すぎっぽい
- 2) 動的に確保するハッシュスロット数の基準を決める
- 今はN=3000ルールあったら、4096個確保してるけど、半分(2048)でもいいんじゃないか?
- 3) 最適なハッシュ関数を見つける
3)は何となく後回しでいいっぽい。
もう一つ後回しのこととして、
- 4) ポリシのフォーマットを変える
- conditional なTE rule数を格納するようにする。
- 今のままだと、te_cond_avtabのサイズを決められず、te_avtabと同じサイズにせざるをえない
うーむ。このためには何を測ればいいのか。
1)2)のためには、スロットの大きさを変えつつ、
- ハッシュの状態を測る
- デフォルトのrefpolicyかつ普通のFedoraマシンでのハッシュの状態を測る
- 一番長いチェーンの長さとか
- 最小限のrefpolicyで、ハッシュの状態を測る
- デフォルトのrefpolicyかつ普通のFedoraマシンでのハッシュの状態を測る
- パフォーマンスへの影響を測る
- どうやって測る?????
kmalloc/vmallocの境界はやっぱり分からん??
3)については、他のハッシュに置き換えた場合のハッシュテーブルの一番長いチェーンの長さとかを比較すればいいのか。
うむむ、結構大変そうだ。