From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail138.messagelabs.com (mail138.messagelabs.com [216.82.249.35]) by kanga.kvack.org (Postfix) with ESMTP id B39278D003B for ; Tue, 17 May 2011 21:41:32 -0400 (EDT) Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e3.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p4I1JdI4002972 for ; Tue, 17 May 2011 21:19:39 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p4I1fFnw337292 for ; Tue, 17 May 2011 21:41:16 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p4HLf3GW029310 for ; Tue, 17 May 2011 18:41:03 -0300 From: John Stultz Subject: [PATCH 2/4] comm: Add lock-free task->comm accessor Date: Tue, 17 May 2011 18:41:03 -0700 Message-Id: <1305682865-27111-3-git-send-email-john.stultz@linaro.org> In-Reply-To: <1305682865-27111-1-git-send-email-john.stultz@linaro.org> References: <1305682865-27111-1-git-send-email-john.stultz@linaro.org> Sender: owner-linux-mm@kvack.org List-ID: To: LKML Cc: John Stultz , Joe Perches , Ingo Molnar , Michal Nazarewicz , Andy Whitcroft , Jiri Slaby , KOSAKI Motohiro , David Rientjes , Dave Hansen , Andrew Morton , linux-mm@kvack.org This patch adds __get_task_comm() which returns the task->comm value without taking the comm_lock. This function may return null or incomplete comm values, and is only present for performance critical paths that can handle these pitfalls. CC: Joe Perches CC: Ingo Molnar CC: Michal Nazarewicz CC: Andy Whitcroft CC: Jiri Slaby CC: KOSAKI Motohiro CC: David Rientjes CC: Dave Hansen CC: Andrew Morton CC: linux-mm@kvack.org Signed-off-by: John Stultz --- fs/exec.c | 13 +++++++++++++ include/linux/sched.h | 1 + 2 files changed, 14 insertions(+), 0 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 34fa611..7e79c97 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -996,6 +996,19 @@ static void flush_old_files(struct files_struct * files) spin_unlock(&files->file_lock); } +/** + * __get_task_comm - Unlocked accessor to task comm value + * + * This function returns the task->comm value without + * taking the comm_lock. This method is only for performance + * critical paths, and may return a null or incomplete comm + * value. + */ +char *__get_task_comm(struct task_struct *tsk) +{ + return tsk->comm; +} + char *get_task_comm(char *buf, struct task_struct *tsk) { unsigned long flags; diff --git a/include/linux/sched.h b/include/linux/sched.h index f8a7cdf..5e3c25a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2189,6 +2189,7 @@ struct task_struct *fork_idle(int); extern void set_task_comm(struct task_struct *tsk, char *from); extern char *get_task_comm(char *to, struct task_struct *tsk); +extern char *__get_task_comm(struct task_struct *tsk); #ifdef CONFIG_SMP extern unsigned long wait_task_inactive(struct task_struct *, long match_state); -- 1.7.3.2.146.gca209 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: email@kvack.org