aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/sn
diff options
context:
space:
mode:
authorDean Nelson <dcn@sgi.com>2007-11-07 08:53:06 -0500
committerTony Luck <tony.luck@intel.com>2007-11-09 15:59:14 -0500
commit4c013f5c7ea39cd62e02c80408560751b4e8c0de (patch)
tree4dd58579377f878c555ec6ad6a6357366bba4af3 /arch/ia64/sn
parentddd6fc7923fbcfbb53f9431cbc981b1c12636e14 (diff)
[IA64] XPC heartbeat timer function must run on CPU 0
Currently, XPC's heartbeat timer function runs on whatever CPU modprobe/insmod ran on when XPC was started. To avoid the heartbeat from being delayed for long periods the timer function must run on CPU 0. N.B. Altix doesn't currently allow cpu0 to be taken offline, so this is safe for now. This code must be revised when offline of cpu0 is enabled. Signed-off-by: Dean Nelson <dcn@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/sn')
-rw-r--r--arch/ia64/sn/kernel/xpc_main.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c
index e336e1692a73..81785b78bc1e 100644
--- a/arch/ia64/sn/kernel/xpc_main.c
+++ b/arch/ia64/sn/kernel/xpc_main.c
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (c) 2004-2006 Silicon Graphics, Inc. All Rights Reserved. 6 * Copyright (c) 2004-2007 Silicon Graphics, Inc. All Rights Reserved.
7 */ 7 */
8 8
9 9
@@ -257,7 +257,9 @@ xpc_hb_checker(void *ignore)
257 257
258 set_cpus_allowed(current, cpumask_of_cpu(XPC_HB_CHECK_CPU)); 258 set_cpus_allowed(current, cpumask_of_cpu(XPC_HB_CHECK_CPU));
259 259
260 /* set our heartbeating to other partitions into motion */
260 xpc_hb_check_timeout = jiffies + (xpc_hb_check_interval * HZ); 261 xpc_hb_check_timeout = jiffies + (xpc_hb_check_interval * HZ);
262 xpc_hb_beater(0);
261 263
262 while (!(volatile int) xpc_exiting) { 264 while (!(volatile int) xpc_exiting) {
263 265
@@ -1338,16 +1340,8 @@ xpc_init(void)
1338 dev_warn(xpc_part, "can't register die notifier\n"); 1340 dev_warn(xpc_part, "can't register die notifier\n");
1339 } 1341 }
1340 1342
1341
1342 /*
1343 * Set the beating to other partitions into motion. This is
1344 * the last requirement for other partitions' discovery to
1345 * initiate communications with us.
1346 */
1347 init_timer(&xpc_hb_timer); 1343 init_timer(&xpc_hb_timer);
1348 xpc_hb_timer.function = xpc_hb_beater; 1344 xpc_hb_timer.function = xpc_hb_beater;
1349 xpc_hb_beater(0);
1350
1351 1345
1352 /* 1346 /*
1353 * The real work-horse behind xpc. This processes incoming 1347 * The real work-horse behind xpc. This processes incoming