メモリダイエット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で、ハッシュの状態を測る
  • パフォーマンスへの影響を測る
    • どうやって測る?????

kmalloc/vmallocの境界はやっぱり分からん??

3)については、他のハッシュに置き換えた場合のハッシュテーブルの一番長いチェーンの長さとかを比較すればいいのか。

うむむ、結構大変そうだ。