aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sched.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r--include/linux/sched.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 10a83d8d5775..af2ed4bae678 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -894,6 +894,34 @@ struct sched_entity {
894#endif 894#endif
895}; 895};
896 896
897#ifdef CONFIG_CGROUPS
898
899#define SUBSYS(_x) _x ## _subsys_id,
900enum cgroup_subsys_id {
901#include <linux/cgroup_subsys.h>
902 CGROUP_SUBSYS_COUNT
903};
904#undef SUBSYS
905
906/* A css_set is a structure holding pointers to a set of
907 * cgroup_subsys_state objects.
908 */
909
910struct css_set {
911
912 /* Set of subsystem states, one for each subsystem. NULL for
913 * subsystems that aren't part of this hierarchy. These
914 * pointers reduce the number of dereferences required to get
915 * from a task to its state for a given cgroup, but result
916 * in increased space usage if tasks are in wildly different
917 * groupings across different hierarchies. This array is
918 * immutable after creation */
919 struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
920
921};
922
923#endif /* CONFIG_CGROUPS */
924
897struct task_struct { 925struct task_struct {
898 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 926 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
899 void *stack; 927 void *stack;
@@ -1130,6 +1158,9 @@ struct task_struct {
1130 int cpuset_mems_generation; 1158 int cpuset_mems_generation;
1131 int cpuset_mem_spread_rotor; 1159 int cpuset_mem_spread_rotor;
1132#endif 1160#endif
1161#ifdef CONFIG_CGROUPS
1162 struct css_set cgroups;
1163#endif
1133#ifdef CONFIG_FUTEX 1164#ifdef CONFIG_FUTEX
1134 struct robust_list_head __user *robust_list; 1165 struct robust_list_head __user *robust_list;
1135#ifdef CONFIG_COMPAT 1166#ifdef CONFIG_COMPAT
@@ -1625,7 +1656,8 @@ static inline int thread_group_empty(struct task_struct *p)
1625/* 1656/*
1626 * Protects ->fs, ->files, ->mm, ->group_info, ->comm, keyring 1657 * Protects ->fs, ->files, ->mm, ->group_info, ->comm, keyring
1627 * subscriptions and synchronises with wait4(). Also used in procfs. Also 1658 * subscriptions and synchronises with wait4(). Also used in procfs. Also
1628 * pins the final release of task.io_context. Also protects ->cpuset. 1659 * pins the final release of task.io_context. Also protects ->cpuset and
1660 * ->cgroup.subsys[].
1629 * 1661 *
1630 * Nests both inside and outside of read_lock(&tasklist_lock). 1662 * Nests both inside and outside of read_lock(&tasklist_lock).
1631 * It must not be nested with write_lock_irq(&tasklist_lock), 1663 * It must not be nested with write_lock_irq(&tasklist_lock),