aboutsummaryrefslogtreecommitdiffstats
path: root/init/main.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2008-06-26 05:21:34 -0400
committerJens Axboe <jens.axboe@oracle.com>2008-06-26 05:21:34 -0400
commit3d4422332711ef48ef0f132f1fcbfcbd56c7f3d1 (patch)
tree9fd3cfa9825e8cb0b7e08dfae85cc9a722442849 /init/main.c
parent543cf4cb3fe6f6cae3651ba918b9c56200b257d0 (diff)
Add generic helpers for arch IPI function calls
This adds kernel/smp.c which contains helpers for IPI function calls. In addition to supporting the existing smp_call_function() in a more efficient manner, it also adds a more scalable variant called smp_call_function_single() for calling a given function on a single CPU only. The core of this is based on the x86-64 patch from Nick Piggin, lots of changes since then. "Alan D. Brunelle" <Alan.Brunelle@hp.com> has contributed lots of fixes and suggestions as well. Also thanks to Paul E. McKenney <paulmck@linux.vnet.ibm.com> for reviewing RCU usage and getting rid of the data allocation fallback deadlock. Acked-by: Ingo Molnar <mingo@elte.hu> Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'init/main.c')
-rw-r--r--init/main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/init/main.c b/init/main.c
index f7fb20021d48..1efcccff1bdb 100644
--- a/init/main.c
+++ b/init/main.c
@@ -31,6 +31,7 @@
31#include <linux/kernel_stat.h> 31#include <linux/kernel_stat.h>
32#include <linux/start_kernel.h> 32#include <linux/start_kernel.h>
33#include <linux/security.h> 33#include <linux/security.h>
34#include <linux/smp.h>
34#include <linux/workqueue.h> 35#include <linux/workqueue.h>
35#include <linux/profile.h> 36#include <linux/profile.h>
36#include <linux/rcupdate.h> 37#include <linux/rcupdate.h>
@@ -779,6 +780,7 @@ static void __init do_pre_smp_initcalls(void)
779{ 780{
780 extern int spawn_ksoftirqd(void); 781 extern int spawn_ksoftirqd(void);
781 782
783 init_call_single_data();
782 migration_init(); 784 migration_init();
783 spawn_ksoftirqd(); 785 spawn_ksoftirqd();
784 if (!nosoftlockup) 786 if (!nosoftlockup)