diff options
author | Oleg Nesterov <oleg@redhat.com> | 2011-04-27 19:18:39 +0200 |
---|---|---|
committer | Oleg Nesterov <oleg@redhat.com> | 2011-04-28 13:01:35 +0200 |
commit | f646e227b88a164a841d6b6dd969d8a45272dd83 (patch) | |
tree | bd11235d720e384efc20e01f116bbf904ca58b4f /kernel/sched_stats.h | |
parent | 0edceb7bcd82802f721f3c94eed9b3e2869d3740 (diff) |
signal: retarget_shared_pending: consider shared/unblocked signals only
exit_signals() checks signal_pending() before retarget_shared_pending() but
this is suboptimal. We can avoid the while_each_thread() loop in case when
there are no shared signals visible to us.
Add the "shared_pending.signal & ~blocked" check. We don't use tsk->blocked
directly but pass ~blocked as an argument, this is needed for the next patch.
Note: we can optimize this more. while_each_thread(t) can check t->blocked
into account and stop after every pending signal has the new target, see the
next patch.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Matt Fleming <matt.fleming@linux.intel.com>
Acked-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/sched_stats.h')
0 files changed, 0 insertions, 0 deletions