1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
| struct task_struct { volatile long state; void *stack; atomic_t usage; unsigned int flags; unsigned int ptrace;
int lock_depth;
#ifdef CONFIG_SMP #ifdef __ARCH_WANT_UNLOCKED_CTXSW int oncpu; #endif #endif
int prio, static_prio, normal_prio; unsigned int rt_priority; const struct sched_class *sched_class; struct sched_entity se; struct sched_rt_entity rt;
#ifdef CONFIG_PREEMPT_NOTIFIERS struct hlist_head preempt_notifiers; #endif
unsigned char fpu_counter; #ifdef CONFIG_BLK_DEV_IO_TRACE unsigned int btrace_seq; #endif
unsigned int policy; cpumask_t cpus_allowed;
#ifdef CONFIG_TREE_PREEMPT_RCU int rcu_read_lock_nesting; char rcu_read_unlock_special; struct rcu_node *rcu_blocked_node; struct list_head rcu_node_entry; #endif
#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) struct sched_info sched_info; #endif
struct list_head tasks; struct plist_node pushable_tasks;
struct mm_struct *mm, *active_mm;
int exit_state; int exit_code, exit_signal; int pdeath_signal; unsigned int personality; unsigned did_exec:1; unsigned in_execve:1;
unsigned in_iowait:1;
unsigned sched_reset_on_fork:1;
pid_t pid; pid_t tgid;
#ifdef CONFIG_CC_STACKPROTECTOR unsigned long stack_canary; #endif
struct task_struct *real_parent; struct task_struct *parent;
struct list_head children; struct list_head sibling; struct task_struct *group_leader;
struct list_head ptraced; struct list_head ptrace_entry;
struct bts_context *bts;
struct pid_link pids[PIDTYPE_MAX]; struct list_head thread_group;
struct completion *vfork_done; int __user *set_child_tid; int __user *clear_child_tid;
cputime_t utime, stime, utimescaled, stimescaled; cputime_t gtime; cputime_t prev_utime, prev_stime; unsigned long nvcsw, nivcsw; struct timespec start_time; struct timespec real_start_time;
unsigned long min_flt, maj_flt;
struct task_cputime cputime_expires; struct list_head cpu_timers[3];
const struct cred *real_cred;
const struct cred *cred;
struct mutex cred_guard_mutex;
struct cred *replacement_session_keyring;
char comm[TASK_COMM_LEN];
int link_count, total_link_count; #ifdef CONFIG_SYSVIPC
struct sysv_sem sysvsem; #endif #ifdef CONFIG_DETECT_HUNG_TASK
unsigned long last_switch_count; #endif
struct thread_struct thread;
struct fs_struct *fs;
struct files_struct *files;
struct nsproxy *nsproxy;
struct signal_struct *signal; struct sighand_struct *sighand;
sigset_t blocked, real_blocked; sigset_t saved_sigmask; struct sigpending pending;
unsigned long sas_ss_sp; size_t sas_ss_size; int (*notifier)(void *priv); void *notifier_data; sigset_t *notifier_mask; struct audit_context *audit_context; #ifdef CONFIG_AUDITSYSCALL uid_t loginuid; unsigned int sessionid; #endif seccomp_t seccomp;
u32 parent_exec_id; u32 self_exec_id;
spinlock_t alloc_lock;
#ifdef CONFIG_GENERIC_HARDIRQS struct irqaction *irqaction; #endif
spinlock_t pi_lock;
#ifdef CONFIG_RT_MUTEXES struct plist_head pi_waiters; struct rt_mutex_waiter *pi_blocked_on; #endif
#ifdef CONFIG_DEBUG_MUTEXES struct mutex_waiter *blocked_on; #endif #ifdef CONFIG_TRACE_IRQFLAGS unsigned int irq_events; int hardirqs_enabled; unsigned long hardirq_enable_ip; unsigned int hardirq_enable_event; unsigned long hardirq_disable_ip; unsigned int hardirq_disable_event; int softirqs_enabled; unsigned long softirq_disable_ip; unsigned int softirq_disable_event; unsigned long softirq_enable_ip; unsigned int softirq_enable_event; int hardirq_context; int softirq_context; #endif #ifdef CONFIG_LOCKDEP # define MAX_LOCK_DEPTH 48UL u64 curr_chain_key; int lockdep_depth; unsigned int lockdep_recursion; struct held_lock held_locks[MAX_LOCK_DEPTH]; gfp_t lockdep_reclaim_gfp; #endif
void *journal_info;
struct bio *bio_list, **bio_tail;
struct reclaim_state *reclaim_state;
struct backing_dev_info *backing_dev_info;
struct io_context *io_context;
unsigned long ptrace_message; siginfo_t *last_siginfo; struct task_io_accounting ioac; #if defined(CONFIG_TASK_XACCT) u64 acct_rss_mem1; u64 acct_vm_mem1; cputime_t acct_timexpd; #endif #ifdef CONFIG_CPUSETS nodemask_t mems_allowed; int cpuset_mem_spread_rotor; #endif #ifdef CONFIG_CGROUPS struct css_set *cgroups; struct list_head cg_list; #endif #ifdef CONFIG_FUTEX struct robust_list_head __user *robust_list; #ifdef CONFIG_COMPAT struct compat_robust_list_head __user *compat_robust_list; #endif struct list_head pi_state_list; struct futex_pi_state *pi_state_cache; #endif #ifdef CONFIG_PERF_EVENTS struct perf_event_context *perf_event_ctxp; struct mutex perf_event_mutex; struct list_head perf_event_list; #endif #ifdef CONFIG_NUMA struct mempolicy *mempolicy; short il_next; #endif atomic_t fs_excl; struct rcu_head rcu;
struct pipe_inode_info *splice_pipe; #ifdef CONFIG_TASK_DELAY_ACCT struct task_delay_info *delays; #endif #ifdef CONFIG_FAULT_INJECTION int make_it_fail; #endif struct prop_local_single dirties; #ifdef CONFIG_LATENCYTOP int latency_record_count; struct latency_record latency_record[LT_SAVECOUNT]; #endif
unsigned long timer_slack_ns; unsigned long default_timer_slack_ns;
struct list_head *scm_work_list; #ifdef CONFIG_FUNCTION_GRAPH_TRACER int curr_ret_stack; struct ftrace_ret_stack *ret_stack; unsigned long long ftrace_timestamp;
atomic_t trace_overrun; atomic_t tracing_graph_pause; #endif #ifdef CONFIG_TRACING unsigned long trace; unsigned long trace_recursion; #endif unsigned long stack_start; };
|