[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [POWERPC][XEN] Add newlines on multiline output and dump SLB on SLB errors
# HG changeset patch # User Jimi Xenidis <jimix@xxxxxxxxxxxxxx> # Node ID fd79d6295111cda53b2709ee5a88bd932a2dd7fb # Parent 6486bc1937a420379b931a3c1e7b12169502dbbc [POWERPC][XEN] Add newlines on multiline output and dump SLB on SLB errors Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx> Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx> --- xen/arch/powerpc/powerpc64/ppc970_machinecheck.c | 66 ++++++++++++----------- 1 files changed, 35 insertions(+), 31 deletions(-) diff -r 6486bc1937a4 -r fd79d6295111 xen/arch/powerpc/powerpc64/ppc970_machinecheck.c --- a/xen/arch/powerpc/powerpc64/ppc970_machinecheck.c Fri Sep 15 18:19:46 2006 -0400 +++ b/xen/arch/powerpc/powerpc64/ppc970_machinecheck.c Fri Sep 15 18:20:55 2006 -0400 @@ -56,61 +56,65 @@ int cpu_machinecheck(struct cpu_user_reg printk("SRR1: 0x%016lx\n", regs->msr); if (regs->msr & MCK_SRR1_INSN_FETCH_UNIT) - printk("42: Exception caused by Instruction Fetch Unit (IFU) " - "detection of a hardware uncorrectable error (UE).\n"); + printk("42: Exception caused by Instruction Fetch Unit (IFU)\n" + " detection of a hardware uncorrectable error (UE).\n"); if (regs->msr & MCK_SRR1_LOAD_STORE) - printk("43: Exception caused by load/store detection of error " - "(see DSISR)\n"); + printk("43: Exception caused by load/store detection of error\n" + " (see DSISR)\n"); switch (regs->msr & MCK_SRR1_CAUSE_MASK) { + case 0: + printk("0b00: Likely caused by an asynchronous machine check,\n" + "see SCOM Asynchronous Machine Check Register\n"); + break; case MCK_SRR1_CAUSE_SLB_PAR: - printk("0b01: Exception caused by an SLB parity error detected " - "while translating an instruction fetch address.\n"); + printk("0b01: Exception caused by an SLB parity error detected\n" + " while translating an instruction fetch address.\n"); break; case MCK_SRR1_CAUSE_TLB_PAR: - printk("0b10: Exception caused by a TLB parity error detected " - "while translating an instruction fetch address.\n"); + printk("0b10: Exception caused by a TLB parity error detected\n" + " while translating an instruction fetch address.\n"); break; case MCK_SRR1_CAUSE_UE: - printk("0b11: Exception caused by a hardware uncorrectable " - "error (UE) detected while doing a reload of an " - "instruction-fetch TLB tablewalk.\n"); - break; - default: + printk("0b11: Exception caused by a hardware uncorrectable\n" + " error (UE) detected while doing a reload of an\n" + " instruction-fetch TLB tablewalk.\n"); break; } - printk("\nDSIDR: 0x%08x\n", dsisr); + printk("\nDSISR: 0x%08x\n", dsisr); if (dsisr & MCK_DSISR_UE) - printk("16: Exception caused by a UE deferred error " - "(DAR is undefined).\n"); + printk("16: Exception caused by a UE deferred error\n" + " (DAR is undefined).\n"); if (dsisr & MCK_DSISR_UE_TABLE_WALK) - printk("17: Exception caused by a UE deferred error " - "during a tablewalk (D-side).\n"); + printk("17: Exception caused by a UE deferred error\n" + " during a tablewalk (D-side).\n"); if (dsisr & MCK_DSISR_L1_DCACHE_PAR) - printk("18: Exception was caused by a software recoverable " - "parity error in the L1 D-cache.\n"); + printk("18: Exception was caused by a software recoverable\n" + " parity error in the L1 D-cache.\n"); if (dsisr & MCK_DSISR_L1_DCACHE_TAG_PAR) - printk("19: Exception was caused by a software recoverable " - "parity error in the L1 D-cache tag.\n"); + printk("19: Exception was caused by a software recoverable\n" + " parity error in the L1 D-cache tag.\n"); if (dsisr & MCK_DSISR_D_ERAT_PAR) - printk("20: Exception was caused by a software recoverable parity " - "error in the D-ERAT.\n"); + printk("20: Exception was caused by a software recoverable parity\n" + " error in the D-ERAT.\n"); if (dsisr & MCK_DSISR_TLB_PAR) - printk("21: Exception was caused by a software recoverable parity " - "error in the TLB.\n"); + printk("21: Exception was caused by a software recoverable parity\n" + " error in the TLB.\n"); - if (dsisr & MCK_DSISR_SLB_PAR) - printk("23: Exception was caused by an SLB parity error (may not be " - "recoverable). This condition could occur if the " - "effective segment ID (ESID) fields of two or more SLB " - "entries contain the same value."); + if (dsisr & MCK_DSISR_SLB_PAR) { + printk("23: Exception was caused by an SLB parity error (may not be\n" + " recoverable). This condition could occur if the\n" + " effective segment ID (ESID) fields of two or more SLB\n" + " entries contain the same value.\n"); + dump_segments(0); + } return 0; /* for now lets not recover; */ } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |