aboutsummaryrefslogtreecommitdiff
path: root/include/linux/sched
AgeCommit message (Collapse)AuthorFilesLines
2017-05-08mm: introduce memalloc_noreclaim_{save,restore}Vlastimil Babka1-0/+12
The previous patch ("mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC") has shown that simply setting and clearing PF_MEMALLOC in current->flags can result in wrongly clearing a pre-existing PF_MEMALLOC flag and potentially lead to recursive reclaim. Let's introduce helpers that support proper nesting by saving the previous stat of the flag, similar to the existing memalloc_noio_* and memalloc_nofs_* helpers. Convert existing setting/clearing of PF_MEMALLOC within mm to the new helpers. There are no known issues with the converted code, but the change makes it more robust. Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Vlastimil Babka <[email protected]> Suggested-by: Michal Hocko <[email protected]> Acked-by: Michal Hocko <[email protected]> Acked-by: Hillf Danton <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Andrey Ryabinin <[email protected]> Cc: Boris Brezillon <[email protected]> Cc: Chris Leech <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Eric Dumazet <[email protected]> Cc: Josef Bacik <[email protected]> Cc: Lee Duncan <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Richard Weinberger <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2017-05-05Merge branch 'for-linus' of ↵Linus Torvalds1-1/+0
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace Pull namespace updates from Eric Biederman: "This is a set of small fixes that were mostly stumbled over during more significant development. This proc fix and the fix to posix-timers are the most significant of the lot. There is a lot of good development going on but unfortunately it didn't quite make the merge window" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: proc: Fix unbalanced hard link numbers signal: Make kill_proc_info static rlimit: Properly call security_task_setrlimit signal: Remove unused definition of sig_user_definied ia64: Remove unused IA64_TASK_SIGHAND_OFFSET and IA64_SIGHAND_SIGLOCK_OFFSET ipc: Remove unused declaration of recompute_msgmni posix-timers: Correct sanity check in posix_cpu_nsleep sysctl: Remove dead register_sysctl_root
2017-05-03mm: introduce memalloc_nofs_{save,restore} APIMichal Hocko1-3/+23
GFP_NOFS context is used for the following 5 reasons currently: - to prevent from deadlocks when the lock held by the allocation context would be needed during the memory reclaim - to prevent from stack overflows during the reclaim because the allocation is performed from a deep context already - to prevent lockups when the allocation context depends on other reclaimers to make a forward progress indirectly - just in case because this would be safe from the fs POV - silence lockdep false positives Unfortunately overuse of this allocation context brings some problems to the MM. Memory reclaim is much weaker (especially during heavy FS metadata workloads), OOM killer cannot be invoked because the MM layer doesn't have enough information about how much memory is freeable by the FS layer. In many cases it is far from clear why the weaker context is even used and so it might be used unnecessarily. We would like to get rid of those as much as possible. One way to do that is to use the flag in scopes rather than isolated cases. Such a scope is declared when really necessary, tracked per task and all the allocation requests from within the context will simply inherit the GFP_NOFS semantic. Not only this is easier to understand and maintain because there are much less problematic contexts than specific allocation requests, this also helps code paths where FS layer interacts with other layers (e.g. crypto, security modules, MM etc...) and there is no easy way to convey the allocation context between the layers. Introduce memalloc_nofs_{save,restore} API to control the scope of GFP_NOFS allocation context. This is basically copying memalloc_noio_{save,restore} API we have for other restricted allocation context GFP_NOIO. The PF_MEMALLOC_NOFS flag already exists and it is just an alias for PF_FSTRANS which has been xfs specific until recently. There are no more PF_FSTRANS users anymore so let's just drop it. PF_MEMALLOC_NOFS is now checked in the MM layer and drops __GFP_FS implicitly same as PF_MEMALLOC_NOIO drops __GFP_IO. memalloc_noio_flags is renamed to current_gfp_context because it now cares about both PF_MEMALLOC_NOFS and PF_MEMALLOC_NOIO contexts. Xfs code paths preserve their semantic. kmem_flags_convert() doesn't need to evaluate the flag anymore. This patch shouldn't introduce any functional changes. Let's hope that filesystems will drop direct GFP_NOFS (resp. ~__GFP_FS) usage as much as possible and only use a properly documented memalloc_nofs_{save,restore} checkpoints where they are appropriate. [[email protected]: fix comment typo, reflow comment] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Michal Hocko <[email protected]> Acked-by: Vlastimil Babka <[email protected]> Cc: Dave Chinner <[email protected]> Cc: Theodore Ts'o <[email protected]> Cc: Chris Mason <[email protected]> Cc: David Sterba <[email protected]> Cc: Jan Kara <[email protected]> Cc: Brian Foster <[email protected]> Cc: Darrick J. Wong <[email protected]> Cc: Nikolay Borisov <[email protected]> Cc: Peter Zijlstra <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2017-04-21signal: Make kill_proc_info staticEric W. Biederman1-1/+0
There are no users outside of signal.c so make the function static so the compiler and other developers have that information. Signed-off-by: "Eric W. Biederman" <[email protected]>
2017-04-14Merge branch 'linus' into locking/core, to pick up fixesIngo Molnar1-6/+7
Signed-off-by: Ingo Molnar <[email protected]>
2017-04-04sched/rtmutex: Refactor rt_mutex_setprio()Peter Zijlstra1-16/+8
With the introduction of SCHED_DEADLINE the whole notion that priority is a single number is gone, therefore the @prio argument to rt_mutex_setprio() doesn't make sense anymore. So rework the code to pass a pi_task instead. Note this also fixes a problem with pi_top_task caching; previously we would not set the pointer (call rt_mutex_update_top_task) if the priority didn't change, this could lead to a stale pointer. As for the XXX, I think its fine to use pi_task->prio, because if it differs from waiter->prio, a PI chain update is immenent. Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Thomas Gleixner <[email protected]>
2017-04-04sched/rtmutex/deadline: Fix a PI crash for deadline tasksXunlei Pang1-0/+1
A crash happened while I was playing with deadline PI rtmutex. BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 IP: [<ffffffff810eeb8f>] rt_mutex_get_top_task+0x1f/0x30 PGD 232a75067 PUD 230947067 PMD 0 Oops: 0000 [#1] SMP CPU: 1 PID: 10994 Comm: a.out Not tainted Call Trace: [<ffffffff810b658c>] enqueue_task+0x2c/0x80 [<ffffffff810ba763>] activate_task+0x23/0x30 [<ffffffff810d0ab5>] pull_dl_task+0x1d5/0x260 [<ffffffff810d0be6>] pre_schedule_dl+0x16/0x20 [<ffffffff8164e783>] __schedule+0xd3/0x900 [<ffffffff8164efd9>] schedule+0x29/0x70 [<ffffffff8165035b>] __rt_mutex_slowlock+0x4b/0xc0 [<ffffffff81650501>] rt_mutex_slowlock+0xd1/0x190 [<ffffffff810eeb33>] rt_mutex_timed_lock+0x53/0x60 [<ffffffff810ecbfc>] futex_lock_pi.isra.18+0x28c/0x390 [<ffffffff810ed8b0>] do_futex+0x190/0x5b0 [<ffffffff810edd50>] SyS_futex+0x80/0x180 This is because rt_mutex_enqueue_pi() and rt_mutex_dequeue_pi() are only protected by pi_lock when operating pi waiters, while rt_mutex_get_top_task(), will access them with rq lock held but not holding pi_lock. In order to tackle it, we introduce new "pi_top_task" pointer cached in task_struct, and add new rt_mutex_update_top_task() to update its value, it can be called by rt_mutex_setprio() which held both owner's pi_lock and rq lock. Thus "pi_top_task" can be safely accessed by enqueue_task_dl() under rq lock. Originally-From: Peter Zijlstra <[email protected]> Signed-off-by: Xunlei Pang <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Acked-by: Steven Rostedt <[email protected]> Reviewed-by: Thomas Gleixner <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Thomas Gleixner <[email protected]>
2017-03-23sched/clock, x86/perf: Fix "perf test tsc"Peter Zijlstra1-6/+7
People reported that commit: 5680d8094ffa ("sched/clock: Provide better clock continuity") broke "perf test tsc". That commit added another offset to the reported clock value; so take that into account when computing the provided offset values. Reported-by: Adrian Hunter <[email protected]> Reported-by: Arnaldo Carvalho de Melo <[email protected]> Tested-by: Alexander Shishkin <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Fixes: 5680d8094ffa ("sched/clock: Provide better clock continuity") Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove the <linux/topology.h> include from <linux/sched.h>Ingo Molnar1-0/+7
It's used only by a single (rarely used) inline function (task_node(p)), which we can move to <linux/sched/topology.h>. ( Add <linux/nodemask.h>, because we rely on that. ) Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/init.h>Ingo Molnar1-2/+0
The <linux/sched/init.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/hotplug.h>Ingo Molnar1-2/+0
The <linux/sched/hotplug.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/debug.h>Ingo Molnar1-2/+0
The <linux/sched/debug.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/nohz.h>Ingo Molnar1-2/+0
The <linux/sched/nohz.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/stat.h>Ingo Molnar1-1/+1
The <linux/sched/stat.h> file is a largely self-contained header and users of it either don't need <linux/sched.h> - or have already included it. ( Keep the <linux/percpu.h> dependency.) This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/cpufreq.h>Ingo Molnar1-1/+1
Make the <linux/sched/cpufreq.h> file a self-contained header and remove the <linux/sched.h> dependency: users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/user.h>Ingo Molnar1-1/+2
If we add <linux/uidgid.h> then <linux/sched/user.h> becomes a self-contained header and users of it either don't need <linux/sched.h> or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/coredump.h>Ingo Molnar1-1/+0
The <linux/sched/coredump.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. Include <linux/mm_types.h>. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/mm.h>Ingo Molnar1-0/+2
The <linux/sched/mm.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. Include kernel.h and atomic.h. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/autogroup.h>Ingo Molnar1-2/+1
The <linux/sched/autogroup.h> file is a largely self-contained header and users of it either don't need <linux/sched.h> - or have already included it. Add a 'task_struct' predeclaration to make it build standalone. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/loadavg.h>Ingo Molnar1-2/+0
The <linux/sched/loadavg.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/clock.h>Ingo Molnar1-1/+1
The <linux/sched/clock.h> file is a largely self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove tsk_is_polling()Ingo Molnar1-5/+0
It's not used by anything. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Remove <linux/sched.h> from <linux/sched/topology.h>Ingo Molnar1-2/+0
The <linux/sched/topology.h> file is a self-contained header and users of it either don't need <linux/sched.h> - or have already included it. This reduces the size of the header dependency graph. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the sched_exec() prototype to <linux/sched/task.h>Ingo Molnar1-0/+7
sched_exec() better fits into the task lifetime APIs than into the core scheduler APIs. This reduces the size of <linux/sched.h> a bit. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the get_task_struct()/put_task_struct() and related APIs ↵Ingo Molnar1-0/+15
from <linux/sched.h> to <linux/sched/task.h> These belong into the task lifetime API header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move _init() prototypes from <linux/sched.h> to ↵Ingo Molnar1-0/+7
<linux/sched/init.h> trap_init() and cpu_init() belong into <linux/cpu.h>, sched_init*() into <linux/sched/init.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move exit_files() and exit_itimers() from <linux/sched.h> to ↵Ingo Molnar1-0/+3
<linux/sched/task.h> These two functions are task management related, not core scheduler APIs. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move kstack_end() from <linux/sched.h> to ↵Ingo Molnar1-0/+10
<linux/sched/task_stack.h> This is a task-stack related API, not core scheduler functionality. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move sched_info_on() and force_schedstat_enabled() from ↵Ingo Molnar1-0/+16
<linux/sched.h> to <linux/sched/stat.h> These APIs are not core scheduler but scheduler statistics related. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move cputime functionality from <linux/sched.h> and ↵Ingo Molnar2-1/+214
<linux/cputime.h> into <linux/sched/cputime.h> Move cputime related functionality out of <linux/sched.h>, as most code that includes <linux/sched.h> does not use that functionality. Move data types that are not included in task_struct directly to the signal definitions, into <linux/sched/signal.h>. Also merge the (small) existing <linux/cputime.h> header into <linux/sched/cputime.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the task_lock()/unlock() APIs to <linux/sched/task.h>Ingo Molnar1-0/+20
The task_lock()/task_unlock() APIs are not realated to core scheduling, they are task lifetime APIs, i.e. they belong into <linux/sched/task.h>. Move them. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move 'init_task' and 'init_thread_union' from <linux/sched.h> ↵Ingo Molnar1-0/+6
to <linux/sched/task.h> 'init_task' is really not part of core scheduler APIs but part of the fork() interface between the scheduler and process management. So move the declarations. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the 'root_task_group' declaration to ↵Ingo Molnar1-0/+5
<linux/sched/autogroup.h> Also remove the duplicate declaration from <linux/init_task.h>. ( That declaration was originally duplicated for dependency hell reasons, but there's no problem including the much smaller <linux/sched/autogroup.h> header now, to pick up the right prototype. ) Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move task-stack related APIs from <linux/sched.h> to ↵Ingo Molnar1-0/+104
<linux/sched/task_stack.h> Split out the task->stack related functionality, which is not really part of the core scheduler APIs. Only keep task_thread_info() because it's used by sched.h. Update the code that uses those facilities. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers, RCU: Move rcu_copy_process() from <linux/sched/task.h> to ↵Ingo Molnar1-15/+0
kernel/fork.c Move rcu_copy_process() into kernel/fork.c, which is the only user of this inline function. This simplifies <linux/sched/task.h> to the level that <linux/sched.h> does not have to be included in it anymore - which change is done in a subsequent patch. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move task lifetime APIs from <linux/sched.h> to ↵Ingo Molnar1-0/+97
<linux/sched/task.h> There's a fair amount of task lifetime management (a.k.a fork()/exit()) related APIs in <linux/sched.h>, but only a small fraction of the users of the generic sched.h header make use of them. Move these functions to the <linux/sched/task.h> header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Split hotplug CPU interfaces out of <linux/sched.h> into ↵Ingo Molnar1-0/+20
<linux/sched/hotplug.h> Split the CPU hotplug scheduler APIs out of the common header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move debugging functions from <linux/sched.h> to ↵Ingo Molnar1-0/+46
<linux/sched/debug.h> Collect the various scheduler and task state debugging APIs scattered around <linux/sched.h> into the new <linux/sched/debug.h> header. In particular the show_regs() and show_stack() prototype affects many files, update them. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the NOHZ APIs from <linux/sched.h> to <linux/sched/nohz.h>Ingo Molnar1-0/+39
There's a number of NOHZ/dyntics related functionality in <linux/sched.h>, but only a handful of timer files are making use of them. Move them into their own header. This better documents these APIs and unclutters <linux/sched.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move task statistics APIs from <linux/sched.h> to ↵Ingo Molnar1-0/+18
<linux/sched/stat.h> There are a number of task statistics related variables and methods exported via sched.h - collect them into <linux/sched/stat.h> and include it from their usage sites. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the memalloc_noio_*() APIs to <linux/sched/mm.h>Ingo Molnar1-0/+22
In preparation to remove the <linux/gfp.h> include from <linux/sched.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move signal wakeup & sigpending methods from <linux/sched.h> ↵Ingo Molnar1-1/+52
into <linux/sched/signal.h> This reduces the size of <linux/sched.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move CONFIG_TASK_XACCT bits from <linux/sched.h> to ↵Ingo Molnar1-0/+42
<linux/sched/xacct.h> The CONFIG_TASK_XACCT=y accounting inline functions are only used by fs/read_write.c, so move them into their separate header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the JOBCTL_ defines and methods from <linux/sched.h> to ↵Ingo Molnar1-0/+32
<linux/sched/jobctl.h> Only a small fraction of sched.h users actually utilizes these defines, and they are not scheduler functionality in any case, so move them into their separate header. (Also make <linux/sched/jobctl.h> a self-contained header.) Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the NUMA balancing interfaces from <linux/sched.h> to ↵Ingo Molnar1-0/+40
<linux/sched/numa_balancing.h> Split out the interface between the scheduler and the MM which deals with page fault driven NUMA balancing, into the new <linux/sched/numa_balancing.h> header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move in_vfork() from <linux/sched.h> to <linux/sched/mm.h>Ingo Molnar1-0/+26
The in_vfork() function deals with task->mm, so it better belongs into <linux/sched/mm.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move more mm_struct related functionality from ↵Ingo Molnar1-0/+21
<linux/sched.h> to <linux/sched/mm.h> Neither the mmap_layout nor the mm_update_next_owner() methods need to be in <linux/sched.h> - move them to the more appropriate <linux/sched/mm.h> header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move the cpufreq interfaces to <linux/sched/cpufreq.h>Ingo Molnar1-0/+21
No need to have this in the generic <linux/sched.h> header. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move 'struct pacct_struct' and 'struct cpu_itimer' form ↵Ingo Molnar1-0/+16
<linux/sched.h> to <linux/sched/signal.h> These structures are actually part of 'struct signal', so move them to <linux/sched/signal.h> where they belong. This further decreases the size and complexity of <linux/sched.h>. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2017-03-03sched/headers: Move 'struct user_struct' definition and APIs to the new ↵Ingo Molnar1-0/+54
<linux/sched/user.h> header 'struct user_struct' was added to sched.h historically, but it's actually entirely independent of task_struct and of scheduler details, so move it to its own header. Fix up .c files using those facilities. Acked-by: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>