差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
linux:kernel:cgroup:sane_behaviorオプション [2013/04/16 12:19] – 作成 tenforward | linux:kernel:cgroup:sane_behaviorオプション [2013/08/19 11:38] (現在) – tenforward | ||
---|---|---|---|
行 1: | 行 1: | ||
====== cgroup の sane_behavior マウントオプション ====== | ====== cgroup の sane_behavior マウントオプション ====== | ||
- | * http://lwn.net/ | + | 3.10 で導入. |
+ | -[[http:// | ||
- | < | + | 適当に訳してみた. |
- | It's a sad fact that at this point various cgroup controllers are | + | |
- | carrying so many idiosyncrasies and pure insanities that it simply | + | |
- | isn't possible to reach any sort of sane consistent behavior while | + | |
- | staying compatible with what already has been exposed to userland. | + | |
- | 様々な cgroup コントローラが,多数の特異性と純粋な狂気を持っているため,ユーザランドに既に提供しているものとの互換性を保っている一方で,簡単にある種の健全な一貫性のある振るまいに到達することができないという事は,悲しい事である. | + | 現時点で,様々な cgroup コントローラが,多数の特異性と全くの狂気を持っており,既にユーザランドに提供しているものと完全な互換性を保ちながらメンテナンスを行う一方で,健全な一貫性のある動きに到達するのは絶対に不可能であるというのは悲しい事実である. |
- | To make progress, those behaviors need to go but we can't simply drop | + | ユーザランドに対するインターフェースを壊さずに,健全な動きへ移行することは後方互換性を維持しつつ段階的に行うことしかできない.このパッチは新しいマウントオプション __DEVEL__sane_behavior を導入するものである.これは変な機能を無効にし,cgroup コアと様々なコントローラに一貫性のある動きを強制する.正確な動きは,変更がまだ確定している所なので,現在のところ,このマウントオプションは新しい動きの開発にのみ訳にたつものである.このように,マウントオプションが __DEVEL__ でプレフィックスされ,使う時もワーニングメッセージが生成される. |
- | or change the crazies as those are directly visible to userland. | + | |
- | patchset implements a mount option - sane_behavior - which turns on | + | |
- | new saner behaviors, so that we can keep providing the old behaviors | + | |
- | while and after transitioning to saner ones. | + | |
- | 進歩をとげるため,これらの振るまいは継続する必要があるが,単純になくしたり,ユーザランドから直接見えるように奇妙な点を変更したりすることはできない.このパッチセットは sane_behavior というマウントオプションを実装した.これは,より健全な状態に移行している間も後も,既に提供している古い振るまいを保持できるようにしながら,新しいより健全な振るまいにするものである. | + | 最終的には,全てのコントローラの動きが,統一的な階層構造を実装するのに十分な一貫性をもった時点で,__DEVEL__ プレフィックスは削除され,より重要な事だが,統一した階層構造はデフォルトで sane_behavior を強制されることになる.おそらく,しばらくしたら,馬鹿げたモノを完全に排除できるかもしれないし,できないかもしれないが,少なくとも健全な動きへ向かうための戦略を持つことはできるだろう. |
- | As the behaviors which should be changed are still being determined | + | このパッチはマウントオプションを導入し,cgroup コアの以下の動きを変更する. |
- | and then implemented, | + | |
- | and it triggers a warning message when used. | + | |
- | 変更すべき振るまいが定義され,実装されている間,__DEVEL__ プレフィックスをマウントオプションに追加し,使用時に警告メッセージを表示する. | + | * マウントオプション " |
+ | * 存在するスーパーブロックをマウントした時,マウントオプションが一致しなければならない.これは現時点では少し馬鹿げている.もし cgroup がマウントされ,サブディレクトリが作成され,アンマウントされ,それから再度違うオプションでマウントされた場合,新しいオプションが適用されたように見えるが,実際は適用されていない. | ||
+ | * remount は許可されない. | ||
- | The mount option changes the following behaviors after this patchset. | + | 動きの変更点は CGRP_ROOT_SANE_BEHAVIOR enum の上の部分に記載してある.そして,異なるコントローラが変換され,改良の進展が計画された時に,記載が追加されるだろう. |
- | このパッチセットのあと,マウントオプションにより,以下のように動作が変化する. | ||
- | |||
- | * Mount options " | ||
- | cgroupfs file cgroup.clone_children is not created. | ||
- | |||
- | * " | ||
- | |||
- | * When mounting an existing superblock, mount options should match. | ||
- | This is currently pretty crazy. | ||
- | subdirectory, | ||
- | option, it looks like the new options are applied but they aren' | ||
- | |||
- | * 既に存在するスーパーブロックをマウントする際,マウントオプションが一致している必要がある.これは現時点では少し変である.もし cgroup をマウントし,サブディレクトリを作製し,それをアンマウントし,それから異なるオプションで再度マウントを行う場合は,新しいオプションが適用されるように思えるが,そうはなっていない. | ||
- | |||
- | * Remount is disallowed. | ||
- | |||
- | * リマウントは許可されない. | ||
- | |||
- | * memcg: .use_hierarchy is forced on and the cgroupfs file is not | ||
- | created. | ||
- | |||
- | * memcg: .use_hierarchy が強制され,cgroupfs ファイルは作製されない. | ||
- | |||
- | and there are a lot more to come. Basically, when turned on, all | ||
- | controllers should be ready to be mounted in the same hierarchy and | ||
- | not get in the way unless specifically configured - making blk-throtl | ||
- | hierarchical would need this to flip the meaning of limits, cpuset to | ||
- | allow tasks to run by default in new cgroups and handle empty cpusets | ||
- | in a way friendly to being co-mounted, and so on. | ||
- | |||
- | さらに他の変更点が今後生じる.基本的に,このオプションを指定した場合,特別に設定されている場合を除いて,全てのコントローラは同じ階層にマウントし,それを邪魔しないようにする準備をしなければならない.blk スロットルを階層構造にするには,制限の意味を変える必要があるし,cpuset はデフォルトで新規 cgroup でタスクが実行できなければならず,共同でマウントするのことの助けになる方法で空の cpuset を扱えるようにしなければならない,など. | ||
- | |||
- | This patchset contains the following four patches. | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | 0001-0002 are prep patches. | ||
- | that flags can be tested with inline helpers. | ||
- | |||
- | 0003 introduces sane_behavior mount option and implements behavior | ||
- | changes in cgroup core proper. | ||
- | |||
- | 0004 makes memcg .use_hierarchy changes. | ||
- | |||
- | The memcg patch doesn' | ||
- | can be routed through the cgroup tree. Michal, how do you wanna route | ||
- | it? | ||
- | |||
- | This patchset is based on top of cgroup/ | ||
- | the following git branch. | ||
- | |||
- | | ||
- | |||
- | Thanks. | ||
- | </ |