Skip to content

Commit

Permalink
[IA64] XPC heartbeat timer function must run on CPU 0
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Dean Nelson authored and Tony Luck committed Nov 9, 2007
1 parent ddd6fc7 commit 4c013f5
Showing 1 changed file with 3 additions and 9 deletions.
12 changes: 3 additions & 9 deletions arch/ia64/sn/kernel/xpc_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (c) 2004-2006 Silicon Graphics, Inc. All Rights Reserved.
* Copyright (c) 2004-2007 Silicon Graphics, Inc. All Rights Reserved.
*/


Expand Down Expand Up @@ -257,7 +257,9 @@ xpc_hb_checker(void *ignore)

set_cpus_allowed(current, cpumask_of_cpu(XPC_HB_CHECK_CPU));

/* set our heartbeating to other partitions into motion */
xpc_hb_check_timeout = jiffies + (xpc_hb_check_interval * HZ);
xpc_hb_beater(0);

while (!(volatile int) xpc_exiting) {

Expand Down Expand Up @@ -1338,16 +1340,8 @@ xpc_init(void)
dev_warn(xpc_part, "can't register die notifier\n");
}


/*
* Set the beating to other partitions into motion. This is
* the last requirement for other partitions' discovery to
* initiate communications with us.
*/
init_timer(&xpc_hb_timer);
xpc_hb_timer.function = xpc_hb_beater;
xpc_hb_beater(0);


/*
* The real work-horse behind xpc. This processes incoming
Expand Down

0 comments on commit 4c013f5

Please sign in to comment.