Messages in this thread |  | | | Date | Mon, 23 May 2011 13:28:15 +0200 | | From | Ingo Molnar <> | | Subject | Re: [PATCH 1/2] perf tools: Fix sample size bit operations |
| |
* 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?).
Btw., shouldnt this use hweight() or such?
Thanks,
Ingo
|  |