Message ID | 20180731145020.14009-10-muriloo@linux.ibm.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | powerpc: Modernize unhandled signals message | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | next/apply_patch Successfully applied |
snowpatch_ozlabs/checkpatch | warning | Test checkpatch on branch next |
snowpatch_ozlabs/build-ppc64le | warning | Test build-ppc64le on branch next |
snowpatch_ozlabs/build-ppc64be | warning | Test build-ppc64be on branch next |
snowpatch_ozlabs/build-ppc64e | warning | Test build-ppc64e on branch next |
snowpatch_ozlabs/build-ppc32 | fail | Test build-ppc32 on branch next |
Le 31/07/2018 à 16:50, Murilo Opsfelder Araujo a écrit : > Remove "Instruction dump:" line by adding a prefix to display current->comm > and current->pid, along with the instructions dump. > > The prefix can serve as a glue that links the instructions dump to its > originator, allowing messages to be interleaved in the logs. > > Before this patch, a page fault looked like: > > pandafault[10524]: segfault (11) at 100007d0 nip 1000061c lr 7fffbd295100 code 2 in pandafault[10000000+10000] > Instruction dump: > 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe > 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 > > After this patch, it looks like: > > pandafault[10850]: segfault (11) at 100007d0 nip 1000061c lr 7fff9f3e5100 code 2 in pandafault[10000000+10000] > pandafault[10850]: code: 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe > pandafault[10850]: code: 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 > > Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com> Does the script scripts/decode_stacktrace.sh also works with this format change ? > --- > arch/powerpc/kernel/process.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c > index e78799a8855a..d12143e7d8f9 100644 > --- a/arch/powerpc/kernel/process.c > +++ b/arch/powerpc/kernel/process.c > @@ -1265,16 +1265,19 @@ static int instructions_to_print = 16; > void show_instructions(struct pt_regs *regs) > { > int i; > + const char *prefix = KERN_INFO "%s[%d]: code: "; > unsigned long pc = regs->nip - (instructions_to_print * 3 / 4 * > sizeof(int)); > > - printk("Instruction dump:"); > + printk(prefix, current->comm, current->pid); > > for (i = 0; i < instructions_to_print; i++) { > int instr; > > - if (!(i % 8)) > + if (!(i % 8) && (i > 0)) { > pr_cont("\n"); > + printk(prefix, current->comm, current->pid); > + } > > #if !defined(CONFIG_BOOKE) > /* If executing with the IMMU off, adjust pc rather >
Christophe LEROY <christophe.leroy@c-s.fr> writes: > Le 31/07/2018 à 16:50, Murilo Opsfelder Araujo a écrit : >> Remove "Instruction dump:" line by adding a prefix to display current->comm >> and current->pid, along with the instructions dump. >> >> The prefix can serve as a glue that links the instructions dump to its >> originator, allowing messages to be interleaved in the logs. >> >> Before this patch, a page fault looked like: >> >> pandafault[10524]: segfault (11) at 100007d0 nip 1000061c lr 7fffbd295100 code 2 in pandafault[10000000+10000] >> Instruction dump: >> 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe >> 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 >> >> After this patch, it looks like: >> >> pandafault[10850]: segfault (11) at 100007d0 nip 1000061c lr 7fff9f3e5100 code 2 in pandafault[10000000+10000] >> pandafault[10850]: code: 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe >> pandafault[10850]: code: 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 >> >> Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com> > > Does the script scripts/decode_stacktrace.sh also works with this format > change ? Did it work before? I've never used it. Would be great if it did work though. cheers
Hi, Christophe. On Wed, Aug 01, 2018 at 08:41:15AM +0200, Christophe LEROY wrote: > > > Le 31/07/2018 à 16:50, Murilo Opsfelder Araujo a écrit : > > Remove "Instruction dump:" line by adding a prefix to display current->comm > > and current->pid, along with the instructions dump. > > > > The prefix can serve as a glue that links the instructions dump to its > > originator, allowing messages to be interleaved in the logs. > > > > Before this patch, a page fault looked like: > > > > pandafault[10524]: segfault (11) at 100007d0 nip 1000061c lr 7fffbd295100 code 2 in pandafault[10000000+10000] > > Instruction dump: > > 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe > > 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 > > > > After this patch, it looks like: > > > > pandafault[10850]: segfault (11) at 100007d0 nip 1000061c lr 7fff9f3e5100 code 2 in pandafault[10000000+10000] > > pandafault[10850]: code: 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe > > pandafault[10850]: code: 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 > > > > Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com> > > Does the script scripts/decode_stacktrace.sh also works with this format > change ? I've got more feedback from Michael about this. A better approach would be having a new show_user_instructions(), a slightly modified version of show_instructions(), that can be called from within show_signal_msg(). Since _exception_pkey() dies if the exception is in kernel mode, we'll be safe to call the new show_user_instructions(), without interfering in scripts/decode_stacktrace.sh. Cheers Murilo
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index e78799a8855a..d12143e7d8f9 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -1265,16 +1265,19 @@ static int instructions_to_print = 16; void show_instructions(struct pt_regs *regs) { int i; + const char *prefix = KERN_INFO "%s[%d]: code: "; unsigned long pc = regs->nip - (instructions_to_print * 3 / 4 * sizeof(int)); - printk("Instruction dump:"); + printk(prefix, current->comm, current->pid); for (i = 0; i < instructions_to_print; i++) { int instr; - if (!(i % 8)) + if (!(i % 8) && (i > 0)) { pr_cont("\n"); + printk(prefix, current->comm, current->pid); + } #if !defined(CONFIG_BOOKE) /* If executing with the IMMU off, adjust pc rather
Remove "Instruction dump:" line by adding a prefix to display current->comm and current->pid, along with the instructions dump. The prefix can serve as a glue that links the instructions dump to its originator, allowing messages to be interleaved in the logs. Before this patch, a page fault looked like: pandafault[10524]: segfault (11) at 100007d0 nip 1000061c lr 7fffbd295100 code 2 in pandafault[10000000+10000] Instruction dump: 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 After this patch, it looks like: pandafault[10850]: segfault (11) at 100007d0 nip 1000061c lr 7fff9f3e5100 code 2 in pandafault[10000000+10000] pandafault[10850]: code: 4bfffeec 4bfffee8 3c401002 38427f00 fbe1fff8 f821ffc1 7c3f0b78 3d22fffe pandafault[10850]: code: 392988d0 f93f0020 e93f0020 39400048 <99490000> 39200000 7d234b78 383f0040 Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com> --- arch/powerpc/kernel/process.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)