diff options
author | Sergey Senozhatsky <[email protected]> | 2016-01-01 23:03:01 +0900 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2016-01-06 11:01:06 +0100 |
commit | 570f52412ae9432c56897472791ea8db420cbaf1 (patch) | |
tree | cc71138d056664627f7246a7a0f3dea3af283836 /drivers/gpu/drm/omapdrm/omap_debugfs.c | |
parent | 9e0e83a1eca66f8369e5a02973f85aad65c32416 (diff) |
sched/core: Check tgid in is_global_init()
Our global init task can have sub-threads, so ->pid check is not reliable
enough for is_global_init(), we need to check tgid instead. This has been
spotted by Oleg and a fix was proposed by Richard a long time ago (see the
link below).
Oleg wrote:
: Because is_global_init() is only true for the main thread of /sbin/init.
:
: Just look at oom_unkillable_task(). It tries to not kill init. But, say,
: select_bad_process() can happily find a sub-thread of is_global_init()
: and still kill it.
I recently hit the problem in question; re-sending the patch (to the
best of my knowledge it has never been submitted) with updated function
comment. Credit goes to Oleg and Richard.
Suggested-by: Richard Guy Briggs <[email protected]>
Reported-by: Oleg Nesterov <[email protected]>
Signed-off-by: Sergey Senozhatsky <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Acked-by: Serge Hallyn <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Eric W . Biederman <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Serge E . Hallyn <[email protected]>
Cc: Sergey Senozhatsky <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Link: https://www.redhat.com/archives/linux-audit/2013-December/msg00086.html
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_debugfs.c')
0 files changed, 0 insertions, 0 deletions