lkml.org 
[lkml]   [2018]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 10/10] powerpc/traps: Add line prefix in show_instructions()
    Date
    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 00000000100007d0 nip 000000001000061c lr 00007fffbd295100 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 00000000100007d0 nip 000000001000061c lr 00007fff9f3e5100 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(-)

    diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
    index 709bfb524b84..25b6dfc8dd81 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
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-07-27 17:00    [W:3.040 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site