Messages in this thread | | | Date | Mon, 23 May 2011 14:39:21 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 1/2] perf tools: Fix sample size bit operations |
| |
On Mon, May 23, 2011 at 01:28:15PM +0200, Ingo Molnar wrote: > > * Frederic Weisbecker <fweisbec@gmail.com> wrote: > > > What we want is to count the number of bits in the mask, > > not some other random operation written in the middle > > of the night. > > > > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> > > Cc: Ingo Molnar <mingo@elte.hu> > > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > > Cc: Stephane Eranian <eranian@google.com> > > --- > > tools/perf/util/event.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c > > index 17c1c3c..d3fa7e4 100644 > > --- a/tools/perf/util/event.c > > +++ b/tools/perf/util/event.c > > @@ -42,7 +42,7 @@ int perf_sample_size(u64 sample_type) > > int i; > > > > for (i = 0; i < 64; i++) { > > - if ((mask << i) & 1) > > + if (mask & (1 << i)) > > size++; > > } > > I fixed this to be 1UL and applied your fixes out of email - perf top and perf > report works fine now, so this was a 64-bitness bug (you probably used a 32-bit > system for testing?).
Nope I was using a 64 machine for testing, but I only tested sched_switch events with callchains on perf report and perf script.
Perhaps that bug triggered only on perf top or with default cpu-cycle events.
> > Btw., shouldnt this use hweight() or such?
A real proper way would better have that yeah :)
| |