Blame view
init/init_task.c
5.36 KB
b24413180 License cleanup: ... |
1 |
// SPDX-License-Identifier: GPL-2.0 |
a4a2eb490 init_task: Create... |
2 3 4 5 |
#include <linux/init_task.h> #include <linux/export.h> #include <linux/mqueue.h> #include <linux/sched.h> |
cf4aebc29 sched: Move sched... |
6 |
#include <linux/sched/sysctl.h> |
8bd75c77b sched/rt: Move rt... |
7 |
#include <linux/sched/rt.h> |
9164bb4a1 sched/headers: Pr... |
8 |
#include <linux/sched/task.h> |
a4a2eb490 init_task: Create... |
9 10 11 |
#include <linux/init.h> #include <linux/fs.h> #include <linux/mm.h> |
f0b752168 audit: convert se... |
12 |
#include <linux/audit.h> |
98fa15f34 mm: replace all o... |
13 |
#include <linux/numa.h> |
a4a2eb490 init_task: Create... |
14 15 |
#include <asm/pgtable.h> |
7c0f6ba68 Replace <asm/uacc... |
16 |
#include <linux/uaccess.h> |
a4a2eb490 init_task: Create... |
17 |
|
3678e2fcc Expand the INIT_S... |
18 19 20 21 22 23 24 25 |
static struct signal_struct init_signals = { .nr_threads = 1, .thread_head = LIST_HEAD_INIT(init_task.thread_node), .wait_chldexit = __WAIT_QUEUE_HEAD_INITIALIZER(init_signals.wait_chldexit), .shared_pending = { .list = LIST_HEAD_INIT(init_signals.shared_pending.list), .signal = {{0}} }, |
c3ad2c3b0 signal: Don't res... |
26 |
.multiprocess = HLIST_HEAD_INIT, |
3678e2fcc Expand the INIT_S... |
27 28 |
.rlim = INIT_RLIMITS, .cred_guard_mutex = __MUTEX_INITIALIZER(init_signals.cred_guard_mutex), |
b796d9492 exec: Add exec_up... |
29 |
.exec_update_mutex = __MUTEX_INITIALIZER(init_signals.exec_update_mutex), |
3678e2fcc Expand the INIT_S... |
30 31 32 33 |
#ifdef CONFIG_POSIX_TIMERS .posix_timers = LIST_HEAD_INIT(init_signals.posix_timers), .cputimer = { .cputime_atomic = INIT_CPUTIME_ATOMIC, |
3678e2fcc Expand the INIT_S... |
34 35 36 |
}, #endif INIT_CPU_TIMERS(init_signals) |
2c4704756 pids: Move the pg... |
37 38 |
.pids = { [PIDTYPE_PID] = &init_struct_pid, |
6883f81aa pid: Implement PI... |
39 |
[PIDTYPE_TGID] = &init_struct_pid, |
2c4704756 pids: Move the pg... |
40 41 42 |
[PIDTYPE_PGID] = &init_struct_pid, [PIDTYPE_SID] = &init_struct_pid, }, |
3678e2fcc Expand the INIT_S... |
43 44 45 46 |
INIT_PREV_CPUTIME(init_signals) }; static struct sighand_struct init_sighand = { |
60d4de3ff sched/core: Conve... |
47 |
.count = REFCOUNT_INIT(1), |
3678e2fcc Expand the INIT_S... |
48 49 50 51 |
.action = { { { .sa_handler = SIG_DFL, } }, }, .siglock = __SPIN_LOCK_UNLOCKED(init_sighand.siglock), .signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(init_sighand.signalfd_wqh), }; |
a4a2eb490 init_task: Create... |
52 |
|
d11ed3ab3 Expand INIT_TASK(... |
53 54 55 56 |
/* * Set up the first task table, touch at your own risk!. Base=0, * limit=0x1fffff (=2MB) */ |
0500871f2 Construct init th... |
57 58 59 60 |
struct task_struct init_task #ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK __init_task_data #endif |
d11ed3ab3 Expand INIT_TASK(... |
61 |
= { |
4e7e3adbb Expand various IN... |
62 63 |
#ifdef CONFIG_THREAD_INFO_IN_TASK .thread_info = INIT_THREAD_INFO(init_task), |
f0b89d395 sched/core: Conve... |
64 |
.stack_refcount = REFCOUNT_INIT(1), |
4e7e3adbb Expand various IN... |
65 |
#endif |
d11ed3ab3 Expand INIT_TASK(... |
66 67 |
.state = 0, .stack = init_stack, |
ec1d28192 sched/core: Conve... |
68 |
.usage = REFCOUNT_INIT(2), |
d11ed3ab3 Expand INIT_TASK(... |
69 |
.flags = PF_KTHREAD, |
4e7e3adbb Expand various IN... |
70 71 72 |
.prio = MAX_PRIO - 20, .static_prio = MAX_PRIO - 20, .normal_prio = MAX_PRIO - 20, |
d11ed3ab3 Expand INIT_TASK(... |
73 |
.policy = SCHED_NORMAL, |
3bd370625 sched/core: Provi... |
74 75 |
.cpus_ptr = &init_task.cpus_mask, .cpus_mask = CPU_MASK_ALL, |
d11ed3ab3 Expand INIT_TASK(... |
76 77 78 |
.nr_cpus_allowed= NR_CPUS, .mm = NULL, .active_mm = &init_mm, |
4e7e3adbb Expand various IN... |
79 |
.restart_block = { |
d11ed3ab3 Expand INIT_TASK(... |
80 81 82 83 84 85 86 87 88 89 |
.fn = do_no_restart_syscall, }, .se = { .group_node = LIST_HEAD_INIT(init_task.se.group_node), }, .rt = { .run_list = LIST_HEAD_INIT(init_task.rt.run_list), .time_slice = RR_TIMESLICE, }, .tasks = LIST_HEAD_INIT(init_task.tasks), |
4e7e3adbb Expand various IN... |
90 91 92 93 94 95 |
#ifdef CONFIG_SMP .pushable_tasks = PLIST_NODE_INIT(init_task.pushable_tasks, MAX_PRIO), #endif #ifdef CONFIG_CGROUP_SCHED .sched_task_group = &root_task_group, #endif |
d11ed3ab3 Expand INIT_TASK(... |
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 |
.ptraced = LIST_HEAD_INIT(init_task.ptraced), .ptrace_entry = LIST_HEAD_INIT(init_task.ptrace_entry), .real_parent = &init_task, .parent = &init_task, .children = LIST_HEAD_INIT(init_task.children), .sibling = LIST_HEAD_INIT(init_task.sibling), .group_leader = &init_task, RCU_POINTER_INITIALIZER(real_cred, &init_cred), RCU_POINTER_INITIALIZER(cred, &init_cred), .comm = INIT_TASK_COMM, .thread = INIT_THREAD, .fs = &init_fs, .files = &init_files, .signal = &init_signals, .sighand = &init_sighand, .nsproxy = &init_nsproxy, .pending = { .list = LIST_HEAD_INIT(init_task.pending.list), .signal = {{0}} }, .blocked = {{0}}, .alloc_lock = __SPIN_LOCK_UNLOCKED(init_task.alloc_lock), .journal_info = NULL, INIT_CPU_TIMERS(init_task) .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(init_task.pi_lock), .timer_slack_ns = 50000, /* 50 usec default slack */ |
2c4704756 pids: Move the pg... |
122 |
.thread_pid = &init_struct_pid, |
d11ed3ab3 Expand INIT_TASK(... |
123 124 |
.thread_group = LIST_HEAD_INIT(init_task.thread_group), .thread_node = LIST_HEAD_INIT(init_signals.thread_head), |
4b7d248b3 audit: move login... |
125 |
#ifdef CONFIG_AUDIT |
4e7e3adbb Expand various IN... |
126 |
.loginuid = INVALID_UID, |
f0b752168 audit: convert se... |
127 |
.sessionid = AUDIT_SID_UNSET, |
4e7e3adbb Expand various IN... |
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
#endif #ifdef CONFIG_PERF_EVENTS .perf_event_mutex = __MUTEX_INITIALIZER(init_task.perf_event_mutex), .perf_event_list = LIST_HEAD_INIT(init_task.perf_event_list), #endif #ifdef CONFIG_PREEMPT_RCU .rcu_read_lock_nesting = 0, .rcu_read_unlock_special.s = 0, .rcu_node_entry = LIST_HEAD_INIT(init_task.rcu_node_entry), .rcu_blocked_node = NULL, #endif #ifdef CONFIG_TASKS_RCU .rcu_tasks_holdout = false, .rcu_tasks_holdout_list = LIST_HEAD_INIT(init_task.rcu_tasks_holdout_list), .rcu_tasks_idle_cpu = -1, #endif #ifdef CONFIG_CPUSETS .mems_allowed_seq = SEQCNT_ZERO(init_task.mems_allowed_seq), #endif #ifdef CONFIG_RT_MUTEXES .pi_waiters = RB_ROOT_CACHED, .pi_top_task = NULL, #endif |
d11ed3ab3 Expand INIT_TASK(... |
151 |
INIT_PREV_CPUTIME(init_task) |
4e7e3adbb Expand various IN... |
152 153 154 155 156 157 |
#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN .vtime.seqcount = SEQCNT_ZERO(init_task.vtime_seqcount), .vtime.starttime = 0, .vtime.state = VTIME_SYS, #endif #ifdef CONFIG_NUMA_BALANCING |
98fa15f34 mm: replace all o... |
158 |
.numa_preferred_nid = NUMA_NO_NODE, |
4e7e3adbb Expand various IN... |
159 160 161 162 163 164 165 166 167 168 |
.numa_group = NULL, .numa_faults = NULL, #endif #ifdef CONFIG_KASAN .kasan_depth = 1, #endif #ifdef CONFIG_TRACE_IRQFLAGS .softirqs_enabled = 1, #endif #ifdef CONFIG_LOCKDEP |
e196e479a locking/lockdep: ... |
169 |
.lockdep_depth = 0, /* no locks held yet */ |
f6ec8829a locking/lockdep: ... |
170 |
.curr_chain_key = INITIAL_CHAIN_KEY, |
4e7e3adbb Expand various IN... |
171 172 173 174 175 |
.lockdep_recursion = 0, #endif #ifdef CONFIG_FUNCTION_GRAPH_TRACER .ret_stack = NULL, #endif |
c1a280b68 sched/preempt: Us... |
176 |
#if defined(CONFIG_TRACING) && defined(CONFIG_PREEMPTION) |
4e7e3adbb Expand various IN... |
177 178 179 180 181 182 183 184 |
.trace_recursion = 0, #endif #ifdef CONFIG_LIVEPATCH .patch_state = KLP_UNDEFINED, #endif #ifdef CONFIG_SECURITY .security = NULL, #endif |
d11ed3ab3 Expand INIT_TASK(... |
185 |
}; |
a4a2eb490 init_task: Create... |
186 187 188 189 190 191 |
EXPORT_SYMBOL(init_task); /* * Initial thread structure. Alignment of this is handled by a special * linker map entry. */ |
c65eacbe2 sched/core: Allow... |
192 |
#ifndef CONFIG_THREAD_INFO_IN_TASK |
0500871f2 Construct init th... |
193 |
struct thread_info init_thread_info __init_thread_info = INIT_THREAD_INFO(init_task); |
c65eacbe2 sched/core: Allow... |
194 |
#endif |