diff options
| author | Keith Owens <kaos@sgi.com> | 2006-02-08 13:40:59 +1100 | 
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2006-02-08 11:59:23 -0800 | 
| commit | 9336b0836bf789136b51caf9ddd49dcbf1726cf4 (patch) | |
| tree | faed4f7f8882b38cf64f08b146bb3215ac864090 /arch/ia64 | |
| parent | f564c5fe29d3fa9adc6d839714521b0554c62598 (diff) | |
[IA64] MCA: print messages in MCA handler
Print a message identifying the monarch MCA handler.  Print a summary
of the status of the slave MCA cpus.
Signed-off-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
| -rw-r--r-- | arch/ia64/kernel/mca.c | 25 | 
1 files changed, 23 insertions, 2 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index ee7eec9ee57..23d54413c00 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c @@ -908,7 +908,7 @@ no_mod:  static void  ia64_wait_for_slaves(int monarch)  { -	int c, wait = 0; +	int c, wait = 0, missing = 0;  	for_each_online_cpu(c) {  		if (c == monarch)  			continue; @@ -919,15 +919,32 @@ ia64_wait_for_slaves(int monarch)  		}  	}  	if (!wait) -		return; +		goto all_in;  	for_each_online_cpu(c) {  		if (c == monarch)  			continue;  		if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) {  			udelay(5*1000000);	/* wait 5 seconds for slaves (arbitrary) */ +			if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) +				missing = 1;  			break;  		}  	} +	if (!missing) +		goto all_in; +	printk(KERN_INFO "OS MCA slave did not rendezvous on cpu"); +	for_each_online_cpu(c) { +		if (c == monarch) +			continue; +		if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) +			printk(" %d", c); +	} +	printk("\n"); +	return; + +all_in: +	printk(KERN_INFO "All OS MCA slaves have reached rendezvous\n"); +	return;  }  /* @@ -953,6 +970,10 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw,  	task_t *previous_current;  	oops_in_progress = 1;	/* FIXME: make printk NMI/MCA/INIT safe */ +	console_loglevel = 15;	/* make sure printks make it to console */ +	printk(KERN_INFO "Entered OS MCA handler. PSP=%lx cpu=%d monarch=%ld\n", +		sos->proc_state_param, cpu, sos->monarch); +  	previous_current = ia64_mca_modify_original_stack(regs, sw, sos, "MCA");  	monarch_cpu = cpu;  	if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, 0, 0, 0)  | 
