- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 cgroup学习(八)——CPUSET子系统
对于CPUSET子系统我们主要解释对cpuset.cpus的操作。Read操作根据《cgroup学习(三)——伪文件》可以很容易的跟踪到代码,并解读,所以我们这里就不赘述,直接解释write及attach操作。首先我们看一下write操作的bt(使用systemtap见《使用systemtap获得内核函数的局部变量》):sudo sh -c "echo 0-3 > cpuset.cpus"1
2013-01-09 18:23:57 10149
原创 cgroup学习(七)——cpu子系统
CPU子系统 对于CPU子系统最常见的参数就是cpu.shares,我们来通过《cgroup学习(三)——伪文件》的表格来跟踪一下对该参数的读写操作。 通过systemtap我们可以看到读的bt:(cat cpu.shares)2327 (cat) cpu_shares_read_u64 call trace: 0xffffffff8104d0a0 : c
2013-01-06 21:01:48 8049
原创 cgroup学习(六)——attach task
attach task 该过程对应于我们上面的实例操作的:echo 512 > tasks的过程,其实质就是先对cgroup下tasks文件进行写操作,建立该进程新的css_set与所有管理它的cgroup的关系;然后再根据各个子系统自己的attach函数进行attach操作。在这里我们先介绍第一个过程,第二个过程在各个子系统中介绍。先看一下bt:12530 (sh) cpu
2013-01-06 20:46:45 7303
原创 cgroup学习(五)—— create new cgroup
create new cgroup 该过程就是mkdir/cgroup/cpu/test_cpu:在一个/cgroup/cpu hierarchy上创建一个cgroup,下面的bt是创建一个cpu hierarchy下的cgroup:mkdir /cgroup/cpu/test_cpu74447177 8388 (mkdir) call trace: 0xffffff
2013-01-06 20:38:17 5929
原创 cgroup学习(四)——mount hierarchy
mount hierarchy 该过程对应于mount -t cgroup -o cpu,cpuset cpuandset /cgroup 首先它解析mount参数-o ***:parse_cgroupfs_option,创建一个新的cgroupfs_root:cgroup_root_from_opts,通过cgroup_test_super判断新的mount
2013-01-06 20:24:36 8195 1
原创 cgroup学习(三)——伪文件
伪文件 cgroup是通过VFS与上层进行交互的,它定义了自己的cgroup文件系统,同时也定义了哪些文件,这些文件也是最终影响着cgroup行为,这一节我们介绍一下,每个子系统的伪文件定义在哪里?以及内核如何去操作这些伪文件。下面我们通过一张表来展示这些关系:SubsysFilesTo_csslocate
2013-01-06 20:13:59 6828
原创 cgroup学习(二)——cgroup框架结构
cgroup框架结构这一章里,我们先整体介绍一个cgroup的框架结构,以及cgroup文件系统的相应文件定义。这里我们先看一下cgroup的主要结构关系: 图2 主要数据结构关系该图包含了cgroup的所有主要数据结构及它们的关系。其中cgroupfs_root相当于我们mount操作指定的dir;cgroup表示在mount目录下的mkdir cg_test;而cgroup
2013-01-06 19:48:33 11642 1
原创 cgroup的学习(一)——what cgroup?
本序列文章将介绍cgroup概念,cgroup框架,cgroup的子系统 What Cgroup? Control Groups provide a mechanism foraggregating/partitioning sets of tasks, and all their future children, intohierarchical groups with s
2013-01-06 18:23:36 14535
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人