All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Gil Fruchter <gilf@ezchip.com>
To: <rostedt@goodmis.org>, <mingo@redhat.com>
Cc: <linux-kernel@vger.kernel.org>, <giladb@ezchip.com>,
	<cmetcalf@ezchip.com>, <noamc@ezchip.com>,
	Gil Fruchter <gilf@ezchip.com>
Subject: [PATCH v2 2/2] tracing: Fix for non-continuous cpu ids
Date: Tue, 9 Jun 2015 10:32:35 +0300	[thread overview]
Message-ID: <1433835155-6894-3-git-send-email-gilf@ezchip.com> (raw)
In-Reply-To: <1433251589-21013-1-git-send-email-gilf@ezchip.com>

Currently exception occures due to access beyond buffer_iter
range while using index of cpu bigger than num_possible_cpus().
Below there is an example for such exception when we use
cpus 0,1,16,17.

In order to fix buffer allocation size for non-continuous cpu ids
we allocate according to the max cpu id and not according to the
amount of possible cpus.

Example:
  $ cat /sys/kernel/debug/tracing/per_cpu/cpu1/trace
  Path: /bin/busybox
  CPU: 0 PID: 82 Comm: cat Not tainted 4.0.0 #29
  task: 80734c80 ti: 80012000 task.ti: 80012000

  [ECR   ]: 0x00220100 => Invalid Read @ 0x00000000 by insn @ 0x800abafc
  [EFA   ]: 0x00000000
  [BLINK ]: ring_buffer_read_finish+0x24/0x64
  [ERET  ]: rb_check_pages+0x20/0x188
  [STAT32]: 0x00001a00 :
  BTA: 0x800abafc  SP: 0x80013f0c  FP: 0x57719cf8
  LPS: 0x200036b4 LPE: 0x200036b8 LPC: 0x00000000
  r00: 0x8002aca0 r01: 0x00001606 r02: 0x00000000
  r03: 0x00000001 r04: 0x00000000 r05: 0x804b4954
  r06: 0x00030003 r07: 0x8002a260 r08: 0x00000286
  r09: 0x00080002 r10: 0x00001006 r11: 0x807351a4
  r12: 0x00000001

  Stack Trace:
    rb_check_pages+0x20/0x188
    ring_buffer_read_finish+0x24/0x64
    tracing_release+0x4e/0x170
    __fput+0x62/0x158
    task_work_run+0xa2/0xd4
    do_notify_resume+0x52/0x7c
    resume_user_mode_begin+0xdc/0xe0

Signed-off-by: Noam Camus <noamc@ezchip.com>
Signed-off-by: Gil Fruchter <gilf@ezchip.com>
---
 kernel/trace/trace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 57ffc4a..8c5b382 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3034,7 +3034,7 @@ __tracing_open(struct inode *inode, struct file *file, bool snapshot)
 	if (!iter)
 		return ERR_PTR(-ENOMEM);
 
-	iter->buffer_iter = kcalloc(num_possible_cpus(), sizeof(*iter->buffer_iter),
+	iter->buffer_iter = kcalloc(nr_cpu_ids, sizeof(*iter->buffer_iter),
 				    GFP_KERNEL);
 	if (!iter->buffer_iter)
 		goto release;
-- 
1.7.1


  parent reply	other threads:[~2015-06-09  7:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-02 13:26 [PATCH 0/2] Fix tracing with non-continuous cpu ids Gil Fruchter
2015-06-02 13:26 ` [PATCH 1/2] tracing: Prefer kcalloc over kzalloc with multiply Gil Fruchter
2015-06-02 14:15   ` Steven Rostedt
2015-06-03 11:53     ` Gil Fruchter
2015-06-08 15:21       ` Steven Rostedt
2015-06-02 13:26 ` [PATCH 2/2] tracing: Fix for non-continuous cpu ids Gil Fruchter
2015-06-02 14:26   ` Steven Rostedt
2015-06-02 15:47     ` Gilad Ben-Yossef
2015-06-09  7:32 ` [PATCH v2 0/2] Fix tracing with " Gil Fruchter
2015-06-09  7:32 ` [PATCH v2 1/2] tracing: Prefer kcalloc over kzalloc with multiply Gil Fruchter
2015-06-09  7:32 ` Gil Fruchter [this message]
2015-07-13 16:12   ` [PATCH v2 2/2] tracing: Fix for non-continuous cpu ids Steven Rostedt
2015-07-14 10:12     ` Gil Fruchter
2015-07-14 13:22       ` Steven Rostedt

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=1433835155-6894-3-git-send-email-gilf@ezchip.com \
    --to=gilf@ezchip.com \
    --cc=cmetcalf@ezchip.com \
    --cc=giladb@ezchip.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=noamc@ezchip.com \
    --cc=rostedt@goodmis.org \
    /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.