我們知道Android起來之後cgroup的各個子系統的文件夾都放在dev目錄下,例如:
/dev/memcg/
/dev/cpuctrl/
/dev/cpuset/
/dev/acct/
/dev/blkio/
以上這些文件夾都是在初始化時候在init.rc中進行mount的,代碼目錄位於/system/core/rootdir/init.rc
其mount最後通過syscall進入kernel完成mount操作具體調用流程如下:
sys_mount(fs/namespace.c)
-->do_mount(kernel_dev, dir_name, kernel_type, flags, (void *)data_pate)
-->do_new_mount (&path, type_page, flags, mnt_flags,dev_name, data_page)
--> vfs_kern_mount(type, flags, name, data)
--> mount_fs(type, flags, name, data)
--> type->mount(type, flags, name, data)
--> cgroup_mount(fs_type, flags, unused_dev_name, data)