linux:kernel:cgroup:sane_behaviorオプション

文書の過去の版を表示しています。


cgroup の sane_behavior マウントオプション

  • http://lwn.net/Articles/547332/ で提案されている
  • メモレベルの訳なので全くアテになりません.たまたまここを訪れた人は原文を参照ください.
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 コントローラが,多数の特異性と純粋な狂気を持っているため,
ユーザランドに既に提供しているものとの互換性を保っている一方で,簡単に
ある種の健全な一貫性のある振るまいに到達することができないという事は,
悲しい事である.


To make progress, those behaviors need to go but we can't simply drop
or change the crazies as those are directly visible to userland.  This
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 というマウントオプションを実
装した.これは,より健全な状態に移行している間も後も,既に提供している
古い振るまいを保持できるようにしながら,新しいより健全な振るまいにする
ものである.


As the behaviors which should be changed are still being determined
and then implemented, __DEVEL__ prefix is added to the mount option
and it triggers a warning message when used.

変更すべき振るまいが定義され,実装されている間,__DEVEL__ プレフィック
スをマウントオプションに追加し,使用時に警告メッセージを表示する.


The mount option changes the following behaviors after this patchset.

このパッチセットのあと,マウントオプションにより,以下のように動作が変化する.

* Mount options "noprefix" and "clone_children" are disallowed.  Also,
  cgroupfs file cgroup.clone_children is not created.

* "noprefix" と "clone_children" オプションは許可されない.そして,
  cgroupfs のファイルである cgroup.clone_children ファイルも作製されな
  い.

* When mounting an existing superblock, mount options should match.
  This is currently pretty crazy.  If one mounts a cgroup, creates a
  subdirectory, unmounts it and then mount it again with different
  option, it looks like the new options are applied but they aren't.

* 既に存在するスーパーブロックをマウントする際,マウントオプションが一
  致している必要がある.これは現時点では少し変である.もし 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-cgroup-convert-cgroupfs_root-flag-bits-to-masks-and-.patch
 0002-move-cgroupfs_root-to-include-linux-cgroup.h.patch
 0003-cgroup-introduce-sane_behavior-mount-option.patch
 0004-memcg-force-use_hierarchy-if-sane_behavior.patch

0001-0002 are prep patches.  It exposes cgroupfs_root in cgroup.h so
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't conflict with memcg changes in -next, so it
can be routed through the cgroup tree.  Michal, how do you wanna route
it?

This patchset is based on top of cgroup/for-3.10 and also available in
the following git branch.

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup-sane_behavior

Thanks.
  • linux/kernel/cgroup/sane_behaviorオプション.1366114878.txt.gz
  • 最終更新: 2013/04/16 12:21
  • by tenforward