34. /*load->weight 值,会是目前所执行的 schedule entity 的
35. load->weight 的总和,也就是说 rq 的 load->weight 越高,
36. 也表示所负责的排程单元 load->weight 总和越高
37. 表示处理器所负荷的执行单元也越重*/
38. struct load_weight load;
39. /*在每次 scheduler tick 中呼叫 update_cpu_load 时,
40. 这个值就增加一,可以用来反馈目前 cpu
41. load 更新的次数*/
42. unsigned long nr_load_updates;
43. /*用来累加处理器进行 context switch 的次数,会在
44. 函数 schedule 呼叫时进行累加,并可以通过函数
45. nr_context_switches 统计目前所有处理器总共的
context switch
46. 次数,或是可以透过查看档案/proc/stat 中的 ctxt 位得知目前
47. 整个系统触发 context switch 的次数*/
48. u64 nr_switches;
49.
50. u64 nr_migrations_in;
51. /*为 cfs fair scheduling class 的 rq*/
52. struct cfs_rq cfs;
53. /*为 real-time scheduling class 的 rq*/
54. struct rt_rq rt;
55.
56./*用以支援可以 group cfs tasks 的机制*/
57.#ifdef CONFIG_FAIR_GROUP_SCHED
58. /* list of leaf cfs_rq on this cpu: */
59. /*在有设置 fair group scheduling 的环境下,
60. 会基于原本 cfs rq 中包含有若干 task 的 group
61. 所成的排程集合,也就是说当有一个 group a
62. 就会有自己的 cfs rq 用来排程自己所属的 tasks,
63. 而属于这 group a 的 tasks 所使用到的处理器时间
64. 就会以这 group a 总共所分的的时间为上限。
65. 基于 cgroup 的 fair group scheduling 架构,可以创造出
66. 有阶层性的 task 组织,根据不同 task 的功能群组化
67. 在配置给该群主对应的处理器资源,让属于
68. 该群主下的 task 可以透过 rq 机制排程。使用属于
69. 该群主下的资源。
70. 这个变数主要是管理 CFS RQ list,操作上可以透过函数
71. list_add_leaf_cfs_rq 把一个 group cfs rq 加入到 list 中,
或透过
72. 函数 list_del_leaf_cfs_rq 把一个 group cfs rq 移除,并可
以
评论0
最新资源