From: Peter Zijlstra <peterz@infradead.org>
To: Brice Goglin <Brice.Goglin@inria.fr>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH] perf_counter: fix double list iteration
Date: Thu, 06 Aug 2009 18:06:26 +0200 [thread overview]
Message-ID: <1249574786.32113.550.camel@twins> (raw)
In-Reply-To: <1249573080.32113.547.camel@twins>
On Thu, 2009-08-06 at 17:38 +0200, Peter Zijlstra wrote:
> On Thu, 2009-08-06 at 08:26 +0200, Brice Goglin wrote:
> > Hello Ingo
> >
> > I finally managed to test the threaded perfcounter statistics (thanks a
> > lot for implementing it). I am running 2.6.31-rc5 (with the AMD
> > magny-cours patches but I don't think they matter here). I am trying to
> > measure local/remote memory accesses per thread during the well-known
> > stream benchmark. It's compiled with OpenMP using 16 threads on a
> > quad-socket quad-core barcelona machine.
> >
> > Command line is:
> > /mnt/scratch/bgoglin/cpunode/linux-2.6.31/tools/perf/perf record -f -s
> > -e r1000001e0 -e r1000002e0 -e r1000004e0 -e r1000008e0 ./stream
> >
> > It seems to work fine with a single -e <counter> on the command line
> > while it crashes when there are at least 2 of them.
> > It seems to work fine without -s as well.
>
> OK, I can reproduce OOPSen this way, got me baffled though.
>
> I'll prod at it some...
D'0h really dumb mistake...
---
Subject: perf_counter: fix double list iteration
A silly copy-paste resulted in a messed up iteration which would cause
an OOPS.
Reported-by: Brice Goglin <Brice.Goglin@inria.fr>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
kernel/perf_counter.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c
index 06d210c..6da7611 100644
--- a/kernel/perf_counter.c
+++ b/kernel/perf_counter.c
@@ -1104,7 +1104,7 @@ static void perf_counter_sync_stat(struct perf_counter_context *ctx,
__perf_counter_sync_stat(counter, next_counter);
counter = list_next_entry(counter, event_entry);
- next_counter = list_next_entry(counter, event_entry);
+ next_counter = list_next_entry(next_counter, event_entry);
}
}
next prev parent reply other threads:[~2009-08-06 16:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-06 6:26 [perf/rc5] oops running perf record -s with multiple -e Brice Goglin
2009-08-06 15:38 ` Peter Zijlstra
2009-08-06 16:06 ` Peter Zijlstra [this message]
2009-08-06 16:32 ` [PATCH] perf_counter: fix double list iteration Brice Goglin
2009-08-06 17:58 ` [tip:perfcounters/urgent] perf_counter: Fix double list iteration in per task precise stats tip-bot for Peter Zijlstra
2009-08-06 18:28 ` tip-bot for Peter Zijlstra
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=1249574786.32113.550.camel@twins \
--to=peterz@infradead.org \
--cc=Brice.Goglin@inria.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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.