cgroup の sane_behavior マウントオプション
3.10 で導入.
-cgroup: introduce sane_behavior mount option
適当に訳してみた.
現時点で,様々な cgroup コントローラが,多数の特異性と全くの狂気を持っており,既にユーザランドに提供しているものと完全な互換性を保ちながらメンテナンスを行う一方で,健全な一貫性のある動きに到達するのは絶対に不可能であるというのは悲しい事実である.
ユーザランドに対するインターフェースを壊さずに,健全な動きへ移行することは後方互換性を維持しつつ段階的に行うことしかできない.このパッチは新しいマウントオプション DEVELsane_behavior を導入するものである.これは変な機能を無効にし,cgroup コアと様々なコントローラに一貫性のある動きを強制する.正確な動きは,変更がまだ確定している所なので,現在のところ,このマウントオプションは新しい動きの開発にのみ訳にたつものである.このように,マウントオプションが DEVEL でプレフィックスされ,使う時もワーニングメッセージが生成される.
最終的には,全てのコントローラの動きが,統一的な階層構造を実装するのに十分な一貫性をもった時点で,DEVEL プレフィックスは削除され,より重要な事だが,統一した階層構造はデフォルトで sane_behavior を強制されることになる.おそらく,しばらくしたら,馬鹿げたモノを完全に排除できるかもしれないし,できないかもしれないが,少なくとも健全な動きへ向かうための戦略を持つことはできるだろう.
このパッチはマウントオプションを導入し,cgroup コアの以下の動きを変更する.
- マウントオプション “noprefix” と “clone_children” が許可されなくなる.また,cgroupfs では cgroup.clone_children ファイルが生成されなくなる.
- 存在するスーパーブロックをマウントした時,マウントオプションが一致しなければならない.これは現時点では少し馬鹿げている.もし cgroup がマウントされ,サブディレクトリが作成され,アンマウントされ,それから再度違うオプションでマウントされた場合,新しいオプションが適用されたように見えるが,実際は適用されていない.
- remount は許可されない.
動きの変更点は CGRP_ROOT_SANE_BEHAVIOR enum の上の部分に記載してある.そして,異なるコントローラが変換され,改良の進展が計画された時に,記載が追加されるだろう.