Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Add transactional memory paca scratch register to show_regs

Add transactional memory paca scratch register to show_regs. This is useful
for debugging.

Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Michael Neuling and committed by
Benjamin Herrenschmidt
afc07701 97a0aac9

+11
+3
arch/powerpc/include/asm/paca.h
··· 137 137 u8 irq_work_pending; /* IRQ_WORK interrupt while soft-disable */ 138 138 u8 nap_state_lost; /* NV GPR values lost in power7_idle */ 139 139 u64 sprg3; /* Saved user-visible sprg */ 140 + #ifdef CONFIG_PPC_TRANSACTIONAL_MEM 141 + u64 tm_scratch; /* TM scratch area for reclaim */ 142 + #endif 140 143 141 144 #ifdef CONFIG_PPC_POWERNV 142 145 /* Pointer to OPAL machine check event structure set by the
+1
arch/powerpc/kernel/asm-offsets.c
··· 126 126 DEFINE(THREAD_TAR, offsetof(struct thread_struct, tar)); 127 127 #endif 128 128 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM 129 + DEFINE(PACATMSCRATCH, offsetof(struct paca_struct, tm_scratch)); 129 130 DEFINE(THREAD_TM_TFHAR, offsetof(struct thread_struct, tm_tfhar)); 130 131 DEFINE(THREAD_TM_TEXASR, offsetof(struct thread_struct, tm_texasr)); 131 132 DEFINE(THREAD_TM_TFIAR, offsetof(struct thread_struct, tm_tfiar));
+4
arch/powerpc/kernel/entry_64.S
··· 785 785 andc r4,r4,r0 /* r0 contains MSR_RI here */ 786 786 mtmsrd r4,1 787 787 788 + #ifdef CONFIG_PPC_TRANSACTIONAL_MEM 789 + /* TM debug */ 790 + std r3, PACATMSCRATCH(r13) /* Stash returned-to MSR */ 791 + #endif 788 792 /* 789 793 * r13 is our per cpu area, only restore it if we are returning to 790 794 * userspace the value stored in the stack frame may belong to
+3
arch/powerpc/kernel/process.c
··· 754 754 printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip); 755 755 printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link); 756 756 #endif 757 + #ifdef CONFIG_PPC_TRANSACTIONAL_MEM 758 + printk("PACATMSCRATCH [%llx]\n", get_paca()->tm_scratch); 759 + #endif 757 760 show_stack(current, (unsigned long *) regs->gpr[1]); 758 761 if (!user_mode(regs)) 759 762 show_instructions(regs);