22 cgroup と sysfs ファイル /sys/kernel/slab 以下のファイルの用途は? What: /sys/kernel/slab Date: May 2007 KernelVersion: 2.6.22 Contact: Pekka Enberg <[email protected]>, Christoph Lameter <[email protected]> Description: The /sys/kernel/slab directory contains a snapshot of the internal state of the SLUB allocator for each cache. Certain files may be modified to change the behavior of the cache (and any cache it aliases, if any). Users: kernel memory tuning tools “/sys/kernel/slab ディレクトリは各スラブキャッシュの SLUB アロケータの内部状態のスナップショットを含んでいます。 特定のファイ ルを変更することで、キャッシュの動作を変更することができます。 ” /sys/kernel/slab/$キャッシュ名/cgroup/$キャッシュ名($シリアル番号:$cgroup名)以下も同様です
23 cgroup と sysfs ファイル /sys/kernel/slab/$キャッシュ名/cgroup/$キャッシュ名($シリアル番号:$cgroup名) とカーネルコンフィグ config SLUB_MEMCG_SYSFS_ON default n bool "Enable memcg SLUB sysfs support by default" if EXPERT depends on SLUB && SYSFS && MEMCG help SLUB creates a directory under /sys/kernel/slab for each allocation cache to host info and debug files. If memory cgroup is enabled, each cache can have per memory cgroup caches. SLUB can create the same sysfs directories for these caches under /sys/kernel/slab/CACHE/cgroup but it can lead to a very high number of debug files being created. This is controlled by slub_memcg_sysfs boot parameter and this config option determines the parameter's default value. ブートパラメータの slub_memcg_sysfs を指定することで、 sysfs ファイルを作成しないように挙動を変えられます このブートパラーメータは後半で再び取り上げます
SLUB_MEMCG_SYSFS_ON default n bool "Enable memcg SLUB sysfs support by default" if EXPERT depends on SLUB && SYSFS && MEMCG help SLUB creates a directory under /sys/kernel/slab for each allocation cache to host info and debug files. If memory cgroup is enabled, each cache can have per memory cgroup caches. SLUB can create the same sysfs directories for these caches under /sys/kernel/slab/CACHE/cgroup but it can lead to a very high number of debug files being created. This is controlled by slub_memcg_sysfs boot parameter and this config option determines the parameter's default value. これまで記述した 「memory cgoup を作ると /sys/kernel/slab/*/cgroup/* のファイルができる」 は正確な記述ではありません 「memory cgroup に所属するプロセスが動作しカーネル内部でスラブキャッシュが作成されるタイミングで /sys/kernel/slab/*/cgroup/* を作る」と いうのが正確な説明となるでしょう。そのためのコンフィグです。 しかしながら、ユーザ空間からスラブキャッシュの動作は観測が難しく、説明を簡素にするために便宜的に前者の表現を用いています。
“I came across some unnecessary uevents once again which reminded me this. ... (snip)” 必要ない uevent をいくつか見つけたんだけど、再びこれ (スラブキャッシュの uevent ) を思い出したよ “Kmem caches are internal kernel structures so it is strange that userspace notifiers would be needed. And I am not aware of any use of these notifiers.” kmem caches (スラブキャッシュ) はカーネルの内部構造だから、ユーザ空間通知が必要ってのは不思議だよね。 そして、この通知を使ってるモノは知らないなぁ ユースケースはなんだろう ? と疑問に思っていたら、必要ない機能で削除されたというオチがつきました ⚠ DeepL 翻訳だとイマイチだったので筆者のニュアンスで訳しています 2020年10月時点でのアップデート 5.8-rc1 での変更: sysfs ファイル ( スラブキャッシュ生成 ) の uevent 通知が削除されました