structtask_struct { #ifdef CONFIG_THREAD_INFO_IN_TASK /* * For reasons of header soup (see current_thread_info()), this * must be the first element of task_struct. */ structthread_infothread_info; #endif /* -1 unrunnable, 0 runnable, >0 stopped: */ volatilelong state;
/* * This begins the randomizable portion of task_struct. Only * scheduling-critical items should be added above here. */ randomized_struct_fields_start
void *stack; refcount_t usage; /* Per task flags (PF_*), defined further below: */ unsignedint flags; unsignedint ptrace; ... int on_rq;
int prio; int static_prio; int normal_prio; unsignedint rt_priority;
unsignedint policy; int nr_cpus_allowed; constcpumask_t *cpus_ptr; cpumask_t cpus_mask; ... structsched_infosched_info;
structlist_headtasks; ... structmm_struct *mm; structmm_struct *active_mm; ... int exit_state; int exit_code; int exit_signal; /* The signal sent when the parent dies: */ int pdeath_signal; /* JOBCTL_*, siglock protected: */ unsignedlong jobctl;
/* Used for emulating ABI behavior of previous Linux versions: */ unsignedint personality;
structcss_set { /* * Set of subsystem states, one for each subsystem. This array is * immutable after creation apart from the init_css_set during * subsystem registration (at boot time). */ structcgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
/* reference count */ refcount_t refcount;
/* * For a domain cgroup, the following points to self. If threaded, * to the matching cset of the nearest domain ancestor. The * dom_cset provides access to the domain cgroup and its csses to * which domain level resource consumptions should be charged. */ structcss_set *dom_cset;
/* the default cgroup associated with this css_set */ structcgroup *dfl_cgrp;
/* internal task count, protected by css_set_lock */ int nr_tasks;
/* * Lists running through all tasks using this cgroup group. * mg_tasks lists tasks which belong to this cset but are in the * process of being migrated out or in. Protected by * css_set_rwsem, but, during migration, once tasks are moved to * mg_tasks, it can be read safely while holding cgroup_mutex. */ structlist_headtasks; structlist_headmg_tasks; structlist_headdying_tasks;
/* all css_task_iters currently walking this cset */ structlist_headtask_iters;
/* * On the default hierarhcy, ->subsys[ssid] may point to a css * attached to an ancestor instead of the cgroup this css_set is * associated with. The following node is anchored at * ->subsys[ssid]->cgroup->e_csets[ssid] and provides a way to * iterate through all css's attached to a given cgroup. */ structlist_heade_cset_node[CGROUP_SUBSYS_COUNT]; ... };
/** * cgroup_init - cgroup initialization * * Register cgroup filesystem and /proc file, and initialize * any subsystems that didn't request early init. */ int __init cgroup_init(void) { ...
/* init_css_set.subsys[] has been updated, re-hash */ hash_del(&init_css_set.hlist); hash_add(css_set_table, &init_css_set.hlist, css_set_hash(init_css_set.subsys));
--- Misc --- Veth pair device: enabled, not loaded Macvlan: enabled, not loaded Vlan: enabled, not loaded Bridges: enabled, loaded Advanced netfilter: enabled, loaded CONFIG_IP_NF_TARGET_MASQUERADE: enabled, not loaded CONFIG_IP6_NF_TARGET_MASQUERADE: enabled, not loaded CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled, not loaded CONFIG_NETFILTER_XT_MATCH_COMMENT: enabled, not loaded FUSE (for use with lxcfs): enabled, not loaded