* [PATCH] perf: change samples type to unsigned long long
@ 2015-09-29 21:49 Yang Shi
2015-10-02 19:08 ` Arnaldo Carvalho de Melo
2015-10-03 7:51 ` [tip:perf/core] perf record: Change 'record.samples' " tip-bot for Yang Shi
0 siblings, 2 replies; 5+ messages in thread
From: Yang Shi @ 2015-09-29 21:49 UTC (permalink / raw)
To: acme; +Cc: linux-kernel, linaro-kernel, yang.shi
When run "perf record -e", the number of samples showed up is wrong on some
32 bit systems, i.e. powerpc and arm.
For example, run the below commands on 32 bit powerpc:
perf probe -x /lib/libc.so.6 malloc
perf record -e probe_libc:malloc -a ls
perf.data
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.036 MB perf.data (13829241621624967218 samples) ]
Actually, "perf script" just shows 21 samples. The number of samples is also
absurd since samples is long type, but it is printed as PRIu64.
Build test is run on x86-64, x86, aarch64, arm, mips, ppc and ppc64.
Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
tools/perf/builtin-record.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 142eeb3..e54aa4c 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -49,7 +49,7 @@ struct record {
int realtime_prio;
bool no_buildid;
bool no_buildid_cache;
- long samples;
+ unsigned long long samples;
};
static int record__write(struct record *rec, void *bf, size_t size)
--
2.0.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] perf: change samples type to unsigned long long
2015-09-29 21:49 [PATCH] perf: change samples type to unsigned long long Yang Shi
@ 2015-10-02 19:08 ` Arnaldo Carvalho de Melo
2015-10-02 19:10 ` Arnaldo Carvalho de Melo
2015-10-03 7:51 ` [tip:perf/core] perf record: Change 'record.samples' " tip-bot for Yang Shi
1 sibling, 1 reply; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 19:08 UTC (permalink / raw)
To: Yang Shi; +Cc: linux-kernel, linaro-kernel, acme
Em Tue, Sep 29, 2015 at 02:49:43PM -0700, Yang Shi escreveu:
> When run "perf record -e", the number of samples showed up is wrong on some
> 32 bit systems, i.e. powerpc and arm.
>
> For example, run the below commands on 32 bit powerpc:
>
> perf probe -x /lib/libc.so.6 malloc
> perf record -e probe_libc:malloc -a ls
> perf.data
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.036 MB perf.data (13829241621624967218 samples) ]
>
> Actually, "perf script" just shows 21 samples. The number of samples is also
> absurd since samples is long type, but it is printed as PRIu64.
>
> Build test is run on x86-64, x86, aarch64, arm, mips, ppc and ppc64.
Sure?
AR /tmp/build/perf/libperf.a
builtin-record.c: In function ‘__cmd_record’:
builtin-record.c:689:12: error: comparison between signed and unsigned
integer expressions [-Werror=sign-compare]
- Arnaldo
> Signed-off-by: Yang Shi <yang.shi@linaro.org>
> ---
> tools/perf/builtin-record.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 142eeb3..e54aa4c 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -49,7 +49,7 @@ struct record {
> int realtime_prio;
> bool no_buildid;
> bool no_buildid_cache;
> - long samples;
> + unsigned long long samples;
> };
>
> static int record__write(struct record *rec, void *bf, size_t size)
> --
> 2.0.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf: change samples type to unsigned long long
2015-10-02 19:08 ` Arnaldo Carvalho de Melo
@ 2015-10-02 19:10 ` Arnaldo Carvalho de Melo
2015-10-02 21:25 ` Shi, Yang
0 siblings, 1 reply; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-02 19:10 UTC (permalink / raw)
To: Yang Shi; +Cc: linux-kernel, linaro-kernel
Em Fri, Oct 02, 2015 at 04:08:38PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Sep 29, 2015 at 02:49:43PM -0700, Yang Shi escreveu:
> > When run "perf record -e", the number of samples showed up is wrong on some
> > 32 bit systems, i.e. powerpc and arm.
> >
> > For example, run the below commands on 32 bit powerpc:
> >
> > perf probe -x /lib/libc.so.6 malloc
> > perf record -e probe_libc:malloc -a ls
> > perf.data
> > [ perf record: Woken up 1 times to write data ]
> > [ perf record: Captured and wrote 0.036 MB perf.data (13829241621624967218 samples) ]
> >
> > Actually, "perf script" just shows 21 samples. The number of samples is also
> > absurd since samples is long type, but it is printed as PRIu64.
> >
> > Build test is run on x86-64, x86, aarch64, arm, mips, ppc and ppc64.
>
> Sure?
>
> AR /tmp/build/perf/libperf.a
> builtin-record.c: In function ‘__cmd_record’:
> builtin-record.c:689:12: error: comparison between signed and unsigned
> integer expressions [-Werror=sign-compare]
You missed something important, I am fixing this and applying your
patch:
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 974065f8ce80..24ace2f318c1 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -667,7 +667,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
auxtrace_snapshot_enabled = 1;
for (;;) {
- int hits = rec->samples;
+ unsigned long long hits = rec->samples;
if (record__mmap_read_all(rec) < 0) {
auxtrace_snapshot_enabled = 0;
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] perf: change samples type to unsigned long long
2015-10-02 19:10 ` Arnaldo Carvalho de Melo
@ 2015-10-02 21:25 ` Shi, Yang
0 siblings, 0 replies; 5+ messages in thread
From: Shi, Yang @ 2015-10-02 21:25 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: linux-kernel, linaro-kernel
On 10/2/2015 12:10 PM, Arnaldo Carvalho de Melo wrote:
> Em Fri, Oct 02, 2015 at 04:08:38PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Tue, Sep 29, 2015 at 02:49:43PM -0700, Yang Shi escreveu:
>>> When run "perf record -e", the number of samples showed up is wrong on some
>>> 32 bit systems, i.e. powerpc and arm.
>>>
>>> For example, run the below commands on 32 bit powerpc:
>>>
>>> perf probe -x /lib/libc.so.6 malloc
>>> perf record -e probe_libc:malloc -a ls
>>> perf.data
>>> [ perf record: Woken up 1 times to write data ]
>>> [ perf record: Captured and wrote 0.036 MB perf.data (13829241621624967218 samples) ]
>>>
>>> Actually, "perf script" just shows 21 samples. The number of samples is also
>>> absurd since samples is long type, but it is printed as PRIu64.
>>>
>>> Build test is run on x86-64, x86, aarch64, arm, mips, ppc and ppc64.
>>
>> Sure?
>>
>> AR /tmp/build/perf/libperf.a
>> builtin-record.c: In function ‘__cmd_record’:
>> builtin-record.c:689:12: error: comparison between signed and unsigned
>> integer expressions [-Werror=sign-compare]
>
> You missed something important, I am fixing this and applying your
> patch:
Thanks a lot. Yes, it was wrong, however, my compiler just throws a
warning instead of an error. And, the warning was hidden by my OE build
environment.
Regards,
Yang
>
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 974065f8ce80..24ace2f318c1 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -667,7 +667,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
>
> auxtrace_snapshot_enabled = 1;
> for (;;) {
> - int hits = rec->samples;
> + unsigned long long hits = rec->samples;
>
> if (record__mmap_read_all(rec) < 0) {
> auxtrace_snapshot_enabled = 0;
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:perf/core] perf record: Change 'record.samples' type to unsigned long long
2015-09-29 21:49 [PATCH] perf: change samples type to unsigned long long Yang Shi
2015-10-02 19:08 ` Arnaldo Carvalho de Melo
@ 2015-10-03 7:51 ` tip-bot for Yang Shi
1 sibling, 0 replies; 5+ messages in thread
From: tip-bot for Yang Shi @ 2015-10-03 7:51 UTC (permalink / raw)
To: linux-tip-commits; +Cc: hpa, mingo, yang.shi, linux-kernel, tglx, acme
Commit-ID: 9f065194e2a505bb6fd23946b410a0036e9de2ca
Gitweb: http://git.kernel.org/tip/9f065194e2a505bb6fd23946b410a0036e9de2ca
Author: Yang Shi <yang.shi@linaro.org>
AuthorDate: Tue, 29 Sep 2015 14:49:43 -0700
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Fri, 2 Oct 2015 16:11:08 -0300
perf record: Change 'record.samples' type to unsigned long long
When run "perf record -e", the number of samples showed up is wrong on some
32 bit systems, i.e. powerpc and arm.
For example, run the below commands on 32 bit powerpc:
perf probe -x /lib/libc.so.6 malloc
perf record -e probe_libc:malloc -a ls perf.data
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.036 MB perf.data (13829241621624967218 samples) ]
Actually, "perf script" just shows 21 samples. The number of samples is also
absurd since samples is long type, but it is printed as PRIu64.
Build test ran on x86-64, x86, aarch64, arm, mips, ppc and ppc64.
Signed-off-by: Yang Shi <yang.shi@linaro.org>
Cc: linaro-kernel@lists.linaro.org
Link: http://lkml.kernel.org/r/1443563383-4064-1-git-send-email-yang.shi@linaro.org
[ Bumped the 'hits' var used together with record.samples to 'unsigned long long' too ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-record.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 5e01c07..24ace2f 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -49,7 +49,7 @@ struct record {
int realtime_prio;
bool no_buildid;
bool no_buildid_cache;
- long samples;
+ unsigned long long samples;
};
static int record__write(struct record *rec, void *bf, size_t size)
@@ -667,7 +667,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
auxtrace_snapshot_enabled = 1;
for (;;) {
- int hits = rec->samples;
+ unsigned long long hits = rec->samples;
if (record__mmap_read_all(rec) < 0) {
auxtrace_snapshot_enabled = 0;
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-10-03 7:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-29 21:49 [PATCH] perf: change samples type to unsigned long long Yang Shi
2015-10-02 19:08 ` Arnaldo Carvalho de Melo
2015-10-02 19:10 ` Arnaldo Carvalho de Melo
2015-10-02 21:25 ` Shi, Yang
2015-10-03 7:51 ` [tip:perf/core] perf record: Change 'record.samples' " tip-bot for Yang Shi
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.