[Crash-utility] [UPDATED PATCH] [ppc] Enable stack trace analysis for compressed Kdump

Suzuki K. Poulose suzuki at in.ibm.com
Thu Feb 2 07:44:56 UTC 2012


Dave,

I have updated the patch below as per your suggestion.

---
In both Kdump and Compressed Kdump cores, we have the NT_PRSTATUS
notes available for the active tasks and we use them for getting the
stack trace. So reuse the function for compressed Kdump.

Signed-off-by: Suzuki K. Poulose <suzuki at in.ibm.com>
---

 netdump.c |    5 +++++
 ppc.c     |    7 +++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/netdump.c b/netdump.c
index d23e45c..fe09734 100644
--- a/netdump.c
+++ b/netdump.c
@@ -1696,6 +1696,11 @@ dump_Elf32_Nhdr(Elf32_Off offset, int store)
 				}
 			}
 		}
+#ifdef PPC
+		/* Set the flags to indicate that we have NT_PRSTATUS notes */
+		if (nd->num_prstatus_notes > 0)
+			pc->flags2 |= ELF_NOTES;
+#endif
 		break;
 	case NT_PRPSINFO:
 		netdump_print("(NT_PRPSINFO)\n");
diff --git a/ppc.c b/ppc.c
index 78c9178..9e704d0 100755
--- a/ppc.c
+++ b/ppc.c
@@ -1193,8 +1193,11 @@ ppc_dumpfile_stack_frame(struct bt_info *bt, ulong *getpc, ulong *getsp)
 {
 	struct syment *sp;
 
-	/* For KDUMP get the SP, PC from pt_regs stored in the core */
-	if (pc->flags & KDUMP) {
+	/* 
+	 * For KDUMP and compressed KDUMP get the SP, PC from pt_regs 
+	 * read from the Elf Note. 
+	 */
+	if (ELF_NOTES_VALID()) {
 		ppc_kdump_stack_frame(bt, getpc, getsp);
 		return;
 	}




More information about the Crash-utility mailing list