proc_oom_score: remove tasklist_lock and pid_alive()
PATCH 1/1 proc_oom_score: remove tasklist_lock and pid_alive()
This was needed before to ensure that ->signal != 0 and do_each_thread() is safe, see the commit b95c35e76b29b for details.
Today tsk->signal can't go away and for_each_thread(tsk) is always safe.
Signed-off-by Oleg Nesterov <[email protected]>
--- fs/proc/base.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
fs/proc/base.c +2 -5
@@ -579,11 +579,8 @@ static int proc_oom_score(struct seq_file *m, struct pid_namespace *ns,unsigned long totalpages = totalram_pages + total_swap_pages;unsigned long points =0 ; -read_lock (&tasklist_lock); -if (pid_alive (task)) - points =oom_badness (task,NULL ,NULL , totalpages) * -1000 / totalpages; -read_unlock (&tasklist_lock); + points =oom_badness (task,NULL ,NULL , totalpages) * +1000 / totalpages;seq_printf (m,"%lu\n" , points);return 0 ;
Signature · 1 line
2.5.0
Quoted 6 lines · Oleg Nesterov
This was needed before to ensure that ->signal != 0 and
do_each_thread()is safe, see the commitb95c35e76b29bfor details.Today
tsk->signalcan't go away andfor_each_thread(tsk)is always safe.Signed-off-by Oleg Nesterov <[email protected]>
Acked-by David Rientjes <[email protected]>
Quoted 6 lines · Oleg Nesterov
This was needed before to ensure that ->signal != 0 and
do_each_thread()is safe, see the commitb95c35e76b29bfor details.Today
tsk->signalcan't go away andfor_each_thread(tsk)is always safe.Signed-off-by Oleg Nesterov <[email protected]>
Acked-by Michal Hocko <[email protected]>
Quoted 25 lines
--- fs/proc/base.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)fs/proc/base.c +2
-5@@ -579,11 +579,8 @@ static int proc_oom_score(struct seq_file *m, struct pid_namespace *ns,unsigned long totalpages = totalram_pages + total_swap_pages;unsigned long points =0 ; -read_lock (&tasklist_lock); -if (pid_alive (task)) - points =oom_badness (task,NULL ,NULL , totalpages) * -1000 / totalpages; -read_unlock (&tasklist_lock); + points =oom_badness (task,NULL ,NULL , totalpages) * +1000 / totalpages;seq_printf (m,"%lu\n" , points);return 0 ;Signature · 1 line
2.5.0
Signature · 2 lines
Michal Hocko SUSE Labs