All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
To: "Qiu, PeiyangX" <peiyangx.qiu@intel.com>, linux-kernel@vger.kernel.org
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH] trace: correct start_index in find_next
Date: Thu, 07 Jan 2016 10:56:56 +0800	[thread overview]
Message-ID: <568DD3F8.9050903@linux.intel.com> (raw)
In-Reply-To: <5684B900.9000309@intel.com>

On 2015/12/31 13:11, Qiu, PeiyangX wrote:
> From: Qiu Peiyang <peiyangx.qiu@intel.com>
>
> When we do cat /sys/kernel/debug/tracing/printk_formats, we hit kernel
> panic at t_show.
>
> general protection fault: 0000 [#1] PREEMPT SMP 
> CPU: 0 PID: 2957 Comm: sh Tainted: G W  O 3.14.55-x86_64-01062-gd4acdc7 #2
> RIP: 0010:[<ffffffff811375b2>] 
>  [<ffffffff811375b2>] t_show+0x22/0xe0
> RSP: 0000:ffff88002b4ebe80  EFLAGS: 00010246
> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000004
> RDX: 0000000000000004 RSI: ffffffff81fd26a6 RDI: ffff880032f9f7b1
> RBP: ffff88002b4ebe98 R08: 0000000000001000 R09: 000000000000ffec
> R10: 0000000000000000 R11: 000000000000000f R12: ffff880004d9b6c0
> R13: 7365725f6d706400 R14: ffff880004d9b6c0 R15: ffffffff82020570
> FS:  0000000000000000(0000) GS:ffff88003aa00000(0063) knlGS:00000000f776bc40
> CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
> CR2: 00000000f6c02ff0 CR3: 000000002c2b3000 CR4: 00000000001007f0
> Call Trace:
>  [<ffffffff811dc076>] seq_read+0x2f6/0x3e0
>  [<ffffffff811b749b>] vfs_read+0x9b/0x160
>  [<ffffffff811b7f69>] SyS_read+0x49/0xb0
>  [<ffffffff81a3a4b9>] ia32_do_call+0x13/0x13
>  ---[ end trace 5bd9eb630614861e ]---
> Kernel panic - not syncing: Fatal exception
>
> When the first time find_next calls find_next_mod_format, it should 
> iterate the trace_bprintk_fmt_list to find the first print format of
> the module. However in current code, start_index is smaller than *pos
> at first, and code will not iterate the list. Latter container_of will
> get the wrong address with former v, which will cause mod_fmt be a
> meaningless object and so is the returned mod_fmt->fmt.
>
> This patch will fix it by correcting the start_index. After fixed,
> when the first time calls find_next_mod_format, start_index will be 
> equal to *pos, and code will iterate the trace_bprintk_fmt_list to 
> get the right module printk format, so is the returned mod_fmt->fmt.
>
> Signed-off-by: Qiu Peiyang <peiyangx.qiu@intel.com>
> ---
>  kernel/trace/trace_printk.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c
> index 1c2b285..64f0a26 100644
> --- a/kernel/trace/trace_printk.c
> +++ b/kernel/trace/trace_printk.c
> @@ -273,6 +273,7 @@ static const char **find_next(void *v, loff_t *pos)
>  	if (*pos < last_index + start_index)
>  		return __start___tracepoint_str + (*pos - last_index);
>  
> +	start_index += last_index;
>  	return find_next_mod_format(start_index, v, fmt, pos);
>  }

Rusty, Steven,

How is this patch? It fixes a kernel panic.

Yanmin


  reply	other threads:[~2016-01-07  2:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-31  5:11 [PATCH] trace: correct start_index in find_next Qiu, PeiyangX
2016-01-07  2:56 ` Zhang, Yanmin [this message]
2016-01-07  3:50   ` Steven Rostedt
2016-01-07  3:51     ` Zhang, Yanmin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=568DD3F8.9050903@linux.intel.com \
    --to=yanmin_zhang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peiyangx.qiu@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=rusty@rustcorp.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.