All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>,
	Roland McGrath <roland@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH -mm 2/2] do_wait-wakeup-optimization: simplify task_pid_type()
Date: Tue, 1 Sep 2009 14:24:04 +0200	[thread overview]
Message-ID: <20090901122404.GC20989@redhat.com> (raw)
In-Reply-To: <20090901122240.GA20989@redhat.com>

task_pid_type() is only used by eligible_pid() which has to check
wo_type != PIDTYPE_MAX anyway. Remove this check from task_pid_type()
and factor out ->pids[type] access, this shrinks .text a bit and
simplifies the code.

The matches the behaviour of other similar helpers, say get_task_pid().
The caller must ensure that pid_type is valid, not the callee.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
---

 kernel/exit.c |   14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

--- WAIT/kernel/exit.c~2_WAKE_PARENT_ELIGIBLE_FIX_CLEANUP	2009-09-01 12:59:23.000000000 +0200
+++ WAIT/kernel/exit.c	2009-09-01 13:51:15.000000000 +0200
@@ -1096,17 +1096,15 @@ struct wait_opts {
 	int			notask_error;
 };
 
-static struct pid *task_pid_type(struct task_struct *task, enum pid_type type)
+static inline
+struct pid *task_pid_type(struct task_struct *task, enum pid_type type)
 {
-	struct pid *pid = NULL;
-	if (type == PIDTYPE_PID)
-		pid = task->pids[type].pid;
-	else if (type < PIDTYPE_MAX)
-		pid = task->group_leader->pids[type].pid;
-	return pid;
+	if (type != PIDTYPE_PID)
+		task = task->group_leader;
+	return task->pids[type].pid;
 }
 
-static inline int eligible_pid(struct wait_opts *wo, struct task_struct *p)
+static int eligible_pid(struct wait_opts *wo, struct task_struct *p)
 {
 	return	wo->wo_type == PIDTYPE_MAX ||
 		task_pid_type(p, wo->wo_type) == wo->wo_pid;


  parent reply	other threads:[~2009-09-01 12:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-24 23:28 mmotm 2009-08-24-16-24 uploaded akpm
2009-08-25 10:02 ` KAMEZAWA Hiroyuki
2009-08-26  4:52   ` Amerigo Wang
2009-08-26  6:54     ` KAMEZAWA Hiroyuki
2009-08-26  3:15 ` KAMEZAWA Hiroyuki
2009-08-26  3:36   ` Andrew Morton
2009-08-26  3:44     ` KAMEZAWA Hiroyuki
2009-08-27  5:44 ` KAMEZAWA Hiroyuki
2009-08-27  6:17   ` Hiroshi Shimamoto
2009-08-27  6:31     ` KAMEZAWA Hiroyuki
2009-08-27  7:05   ` KAMEZAWA Hiroyuki
2009-08-27  9:34     ` Oleg Nesterov
2009-08-27  9:43       ` KAMEZAWA Hiroyuki
2009-08-27 10:08         ` Oleg Nesterov
2009-08-27 10:31           ` KAMEZAWA Hiroyuki
2009-08-27 10:52             ` Oleg Nesterov
2009-08-28 17:17               ` eligible_child() && __WCLONE && task_detached() (Was: mmotm 2009-08-24-16-24 uploaded) Oleg Nesterov
2009-08-28 19:16                 ` Roland McGrath
2009-09-01 12:22                   ` [PATCH -mm 0/2] fix do_wait(!__WALL) hang " Oleg Nesterov
2009-09-01 12:23                     ` [PATCH -mm 1/2] do_wait-wakeup-optimization: fix child_wait_callback()->eligible_child() usage Oleg Nesterov
2009-09-10  0:36                       ` KAMEZAWA Hiroyuki
2009-09-01 12:24                     ` Oleg Nesterov [this message]
2009-08-27 10:17         ` mmotm 2009-08-24-16-24 uploaded KAMEZAWA Hiroyuki
2009-08-27  9:37     ` KAMEZAWA Hiroyuki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090901122404.GC20989@redhat.com \
    --to=oleg@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roland@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.