From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Helsley Subject: Prefetch hint Date: Thu, 14 Dec 2006 16:08:04 -0800 Message-ID: <20061215000820.372869000@us.ibm.com> References: <20061215000754.764718000@us.ibm.com> Return-path: Content-Disposition: inline; filename=task-watchers-prefetch List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com To: Andrew Morton Cc: Jes Sorensen , Linux-Kernel , Paul Jackson , linux-audit@redhat.com, Al Viro , Christoph Hellwig List-Id: linux-audit@redhat.com Prefetch the entire array of function pointers. Signed-off-by: Matt Helsley --- kernel/task_watchers.c | 2 ++ 1 file changed, 2 insertions(+) Index: linux-2.6.19/kernel/task_watchers.c =================================================================== --- linux-2.6.19.orig/kernel/task_watchers.c +++ linux-2.6.19/kernel/task_watchers.c @@ -1,6 +1,7 @@ #include +#include /* Defined in include/asm-generic/vmlinux.lds.h */ extern const task_watcher_fn __start_task_init[], __start_task_clone[], __start_task_exec[], __start_task_uid[], __start_task_gid[], @@ -30,10 +31,11 @@ int notify_task_watchers(unsigned int ev tw_call = twtable[ev]; tw_end = twtable[ev + 1]; /* Call all of the watchers, report the first error */ + prefetch_range(tw_call, tw_end - tw_call); for (; tw_call < tw_end; tw_call++) { err = (*tw_call)(val, tsk); if (unlikely((err < 0) && (ret_err == 0))) ret_err = err; } --