FreeBSD のスワップの実装が大きく変わっている2017年10月01日 12時44分21秒

FreeBSD のスワップの実装に大きな変更が加えられている。12-CURRENT は既に変更済みで、11-STABLE にも一ヵ月ぐらい前に変更が降りてきていた。11.2-RELEASE と共に出ることになる。

Replace global swhash in swap pager with per-object trie to track swap blocks assigned to the object pages. がその変更点で、blist にて管理していた各ブロック情報を、pctrie を用いての管理に書き換えられている。

良くは把握していないのだが、pctrie にはまだあれこれ関数が追加されているのを見ると、比較的新しい様だ。

昔の実装には struct swblock が使われていて、大きさは 276 だった。新しい実装で使われる構造体は二つになり、struct swblk で大きさは 72 で、swpctrie の大きさは 44。