From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751933AbbGMQMP (ORCPT ); Mon, 13 Jul 2015 12:12:15 -0400 Received: from smtprelay0179.hostedemail.com ([216.40.44.179]:37099 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751487AbbGMQMN (ORCPT ); Mon, 13 Jul 2015 12:12:13 -0400 X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,rostedt@goodmis.org,:::::::::::,RULES_HIT:41:355:379:541:599:800:960:973:988:989:1087:1260:1277:1311:1313:1314:1345:1359:1437:1515:1516:1518:1534:1542:1593:1594:1711:1730:1747:1777:1792:2198:2199:2393:2553:2559:2562:2731:2901:3138:3139:3140:3141:3142:3353:3622:3865:3866:3867:3868:3870:3871:3872:4321:5007:6119:6261:7875:7903:8603:10004:10400:10848:10967:11026:11232:11658:11914:12043:12295:12296:12438:12517:12519:12555:12740:13869:13870:14096:14097:21080,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0 X-HE-Tag: cough40_873591e9dc940 X-Filterd-Recvd-Size: 3200 Date: Mon, 13 Jul 2015 12:12:08 -0400 From: Steven Rostedt To: Gil Fruchter Cc: , , , , Subject: Re: [PATCH v2 2/2] tracing: Fix for non-continuous cpu ids Message-ID: <20150713121208.3712313a@gandalf.local.home> In-Reply-To: <1433835155-6894-3-git-send-email-gilf@ezchip.com> References: <1433251589-21013-1-git-send-email-gilf@ezchip.com> <1433835155-6894-3-git-send-email-gilf@ezchip.com> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.28; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 9 Jun 2015 10:32:35 +0300 Gil Fruchter wrote: > 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 Why Noam's SoB tag? Did he author it? -- Steve > Signed-off-by: Gil Fruchter > --- > 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;