From: Jiri Olsa <jolsa@redhat.com>
To: Yury Norov <ynorov@caviumnetworks.com>
Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kan Liang <kan.liang@intel.com>, Wang Nan <wangnan0@huawei.com>,
Michael Ellerman <mpe@ellerman.id.au>
Subject: Re: [PATCH v3] tools/perf: Fix the mask in regs_dump__printf and print_sample_iregs
Date: Wed, 22 Jun 2016 08:50:30 +0200 [thread overview]
Message-ID: <20160622065030.GA2042@krava> (raw)
In-Reply-To: <20160621153531.GA32361@yury-N73SV>
On Tue, Jun 21, 2016 at 06:35:31PM +0300, Yury Norov wrote:
SNIP
> > index 5214974e841a..1337b1c73f82 100644
> > --- a/tools/perf/util/session.c
> > +++ b/tools/perf/util/session.c
> > @@ -940,8 +940,22 @@ static void branch_stack__printf(struct perf_sample *sample)
> > static void regs_dump__printf(u64 mask, u64 *regs)
> > {
> > unsigned rid, i = 0;
> > + unsigned long _mask[sizeof(mask)/sizeof(unsigned long)];
> >
> > - for_each_set_bit(rid, (unsigned long *) &mask, sizeof(mask) * 8) {
> > + /*
> > + * Since u64 is passed as 'unsigned long *', check
> > + * to see whether we need to swap words within u64.
> > + * Reason being, in 32 bit big endian userspace on a
> > + * 64bit kernel, 'unsigned long' is 32 bits.
> > + * When reading u64 using (u32 *)(&val)[0] and (u32 *)(&val)[1],
> > + * we will get wrong value for the mask. This is what
> > + * find_first_bit() and find_next_bit() is doing.
> > + * Issue here is "(u32 *)(&val)[0]" gets upper 32 bits of u64,
> > + * but perf assumes it gets lower 32bits of u64. Hence the check
> > + * and swap.
> > + */
>
> Identical comments... I'd prefer to see it in commit message, or
> better in function description. For me it's pretty straightforward in
> understanding what happens here in-place without comments.
yep, please use this just once as the fucntion description
thanks,
jirka
prev parent reply other threads:[~2016-06-22 6:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-21 14:56 [PATCH v3] tools/perf: Fix the mask in regs_dump__printf and print_sample_iregs Madhavan Srinivasan
2016-06-21 15:35 ` Yury Norov
2016-06-22 3:50 ` Madhavan Srinivasan
2016-06-22 12:33 ` Yury Norov
2016-06-22 6:50 ` Jiri Olsa [this message]
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=20160622065030.GA2042@krava \
--to=jolsa@redhat.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.vnet.ibm.com \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=peterz@infradead.org \
--cc=wangnan0@huawei.com \
--cc=ynorov@caviumnetworks.com \
/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.