* [PATCH] perf: mips64: Convert __u64 to unsigned long long
@ 2013-10-25 19:17 Yang Shi
2013-10-25 20:11 ` Billie Alsup
2013-10-29 0:38 ` Khem Raj
0 siblings, 2 replies; 9+ messages in thread
From: Yang Shi @ 2013-10-25 19:17 UTC (permalink / raw)
To: bruce.ashfield, yocto
On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will cause
build error on MIPS64.
Convert __u64 to unsigned long long in those sprintf calls to avoid the build
error.
Signed-off-by: Yang Shi <yang.shi@windriver.com>
---
tools/perf/tests/attr.c | 20 ++++++++++----------
tools/perf/tests/bp_signal.c | 2 +-
tools/perf/tests/bp_signal_overflow.c | 2 +-
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
index 00218f5..f045c2c 100644
--- a/tools/perf/tests/attr.c
+++ b/tools/perf/tests/attr.c
@@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
char path[PATH_MAX];
snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
- attr->type, attr->config, fd);
+ attr->type, (unsigned long long)attr->config, fd);
file = fopen(path, "w+");
if (!file) {
@@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
}
if (fprintf(file, "[event-%d-%llu-%d]\n",
- attr->type, attr->config, fd) < 0) {
+ attr->type, (unsigned long long)attr->config, fd) < 0) {
perror("test attr - failed to write event file");
fclose(file);
return -1;
@@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
/* struct perf_event_attr */
WRITE_ASS(type, PRIu32);
WRITE_ASS(size, PRIu32);
- WRITE_ASS(config, "llu");
- WRITE_ASS(sample_period, "llu");
- WRITE_ASS(sample_type, "llu");
- WRITE_ASS(read_format, "llu");
+ __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
+ __WRITE_ASS(sample_period, "llu", (unsigned long long)attr->sample_period);
+ __WRITE_ASS(sample_type, "llu", (unsigned long long)attr->sample_type);
+ __WRITE_ASS(read_format, "llu", (unsigned long long)attr->read_format);
WRITE_ASS(disabled, "d");
WRITE_ASS(inherit, "d");
WRITE_ASS(pinned, "d");
@@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
WRITE_ASS(exclude_callchain_user, "d");
WRITE_ASS(wakeup_events, PRIu32);
WRITE_ASS(bp_type, PRIu32);
- WRITE_ASS(config1, "llu");
- WRITE_ASS(config2, "llu");
- WRITE_ASS(branch_sample_type, "llu");
- WRITE_ASS(sample_regs_user, "llu");
+ __WRITE_ASS(config1, "llu", (unsigned long long)attr->config1);
+ __WRITE_ASS(config2, "llu", (unsigned long long)attr->config2);
+ __WRITE_ASS(branch_sample_type, "llu", (unsigned long long)attr->branch_sample_type);
+ __WRITE_ASS(sample_regs_user, "llu", (unsigned long long)attr->sample_regs_user);
WRITE_ASS(sample_stack_user, PRIu32);
fclose(file);
diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
index 68daa28..bf3a094 100644
--- a/tools/perf/tests/bp_signal.c
+++ b/tools/perf/tests/bp_signal.c
@@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
if (fd < 0) {
- pr_debug("failed opening event %llx\n", pe.config);
+ pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
return TEST_FAIL;
}
diff --git a/tools/perf/tests/bp_signal_overflow.c b/tools/perf/tests/bp_signal_overflow.c
index fe7ed28..3662b15 100644
--- a/tools/perf/tests/bp_signal_overflow.c
+++ b/tools/perf/tests/bp_signal_overflow.c
@@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
if (fd < 0) {
- pr_debug("failed opening event %llx\n", pe.config);
+ pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
return TEST_FAIL;
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-25 19:17 [PATCH] perf: mips64: Convert __u64 to unsigned long long Yang Shi
@ 2013-10-25 20:11 ` Billie Alsup
2013-10-25 20:14 ` Billie Alsup
2013-10-29 0:38 ` Khem Raj
1 sibling, 1 reply; 9+ messages in thread
From: Billie Alsup @ 2013-10-25 20:11 UTC (permalink / raw)
To: Yang Shi, bruce.ashfield@windriver.com, yocto@yoctoproject.org
Wouldn't it be better to change "%llu" to PRIu64 (from inttypes.h)?
Notice that PRIu32 is already used in places.
You can use string catenation where necessary, e.g.
"%s/event-%d-" PRIu64 "-%d"
On 10/25/13 12:17 PM, "Yang Shi" <yang.shi@windriver.com> wrote:
>On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will
>cause
>build error on MIPS64.
>
>Convert __u64 to unsigned long long in those sprintf calls to avoid the
>build
>error.
>
>Signed-off-by: Yang Shi <yang.shi@windriver.com>
>---
> tools/perf/tests/attr.c | 20 ++++++++++----------
> tools/perf/tests/bp_signal.c | 2 +-
> tools/perf/tests/bp_signal_overflow.c | 2 +-
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
>diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>index 00218f5..f045c2c 100644
>--- a/tools/perf/tests/attr.c
>+++ b/tools/perf/tests/attr.c
>@@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr,
>pid_t pid, int cpu,
> char path[PATH_MAX];
>
> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>- attr->type, attr->config, fd);
>+ attr->type, (unsigned long long)attr->config, fd);
>
> file = fopen(path, "w+");
> if (!file) {
>@@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr,
>pid_t pid, int cpu,
> }
>
> if (fprintf(file, "[event-%d-%llu-%d]\n",
>- attr->type, attr->config, fd) < 0) {
>+ attr->type, (unsigned long long)attr->config, fd) < 0) {
> perror("test attr - failed to write event file");
> fclose(file);
> return -1;
>@@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr,
>pid_t pid, int cpu,
> /* struct perf_event_attr */
> WRITE_ASS(type, PRIu32);
> WRITE_ASS(size, PRIu32);
>- WRITE_ASS(config, "llu");
>- WRITE_ASS(sample_period, "llu");
>- WRITE_ASS(sample_type, "llu");
>- WRITE_ASS(read_format, "llu");
>+ __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
>+ __WRITE_ASS(sample_period, "llu", (unsigned long
>long)attr->sample_period);
>+ __WRITE_ASS(sample_type, "llu", (unsigned long
>long)attr->sample_type);
>+ __WRITE_ASS(read_format, "llu", (unsigned long
>long)attr->read_format);
> WRITE_ASS(disabled, "d");
> WRITE_ASS(inherit, "d");
> WRITE_ASS(pinned, "d");
>@@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr
>*attr, pid_t pid, int cpu,
> WRITE_ASS(exclude_callchain_user, "d");
> WRITE_ASS(wakeup_events, PRIu32);
> WRITE_ASS(bp_type, PRIu32);
>- WRITE_ASS(config1, "llu");
>- WRITE_ASS(config2, "llu");
>- WRITE_ASS(branch_sample_type, "llu");
>- WRITE_ASS(sample_regs_user, "llu");
>+ __WRITE_ASS(config1, "llu", (unsigned long
>long)attr->config1);
>+ __WRITE_ASS(config2, "llu", (unsigned long
>long)attr->config2);
>+ __WRITE_ASS(branch_sample_type, "llu", (unsigned long
>long)attr->branch_sample_type);
>+ __WRITE_ASS(sample_regs_user, "llu", (unsigned long
>long)attr->sample_regs_user);
> WRITE_ASS(sample_stack_user, PRIu32);
>
> fclose(file);
>diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
>index 68daa28..bf3a094 100644
>--- a/tools/perf/tests/bp_signal.c
>+++ b/tools/perf/tests/bp_signal.c
>@@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>
> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
> if (fd < 0) {
>- pr_debug("failed opening event %llx\n", pe.config);
>+ pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
> return TEST_FAIL;
> }
>
>diff --git a/tools/perf/tests/bp_signal_overflow.c
>b/tools/perf/tests/bp_signal_overflow.c
>index fe7ed28..3662b15 100644
>--- a/tools/perf/tests/bp_signal_overflow.c
>+++ b/tools/perf/tests/bp_signal_overflow.c
>@@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>
> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
> if (fd < 0) {
>- pr_debug("failed opening event %llx\n", pe.config);
>+ pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
> return TEST_FAIL;
> }
>
>--
>1.7.5.4
>
>_______________________________________________
>yocto mailing list
>yocto@yoctoproject.org
>https://lists.yoctoproject.org/listinfo/yocto
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-25 20:11 ` Billie Alsup
@ 2013-10-25 20:14 ` Billie Alsup
2013-10-25 20:52 ` Yang Shi
0 siblings, 1 reply; 9+ messages in thread
From: Billie Alsup @ 2013-10-25 20:14 UTC (permalink / raw)
To: Yang Shi, bruce.ashfield@windriver.com, yocto@yoctoproject.org
I guess for that example, you have to add % yourself
"%s/event-%d-%" PRIu64 "-%d"
but for all the WRITE_ASS examples, simply replace "llu" with PRIu64
On 10/25/13 1:11 PM, "Billie Alsup" <billie.alsup@ericsson.com> wrote:
>Wouldn't it be better to change "%llu" to PRIu64 (from inttypes.h)?
>Notice that PRIu32 is already used in places.
>You can use string catenation where necessary, e.g.
>
>"%s/event-%d-" PRIu64 "-%d"
>
>
>On 10/25/13 12:17 PM, "Yang Shi" <yang.shi@windriver.com> wrote:
>
>>On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will
>>cause
>>build error on MIPS64.
>>
>>Convert __u64 to unsigned long long in those sprintf calls to avoid the
>>build
>>error.
>>
>>Signed-off-by: Yang Shi <yang.shi@windriver.com>
>>---
>> tools/perf/tests/attr.c | 20 ++++++++++----------
>> tools/perf/tests/bp_signal.c | 2 +-
>> tools/perf/tests/bp_signal_overflow.c | 2 +-
>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>
>>diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>>index 00218f5..f045c2c 100644
>>--- a/tools/perf/tests/attr.c
>>+++ b/tools/perf/tests/attr.c
>>@@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr,
>>pid_t pid, int cpu,
>> char path[PATH_MAX];
>>
>> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>>- attr->type, attr->config, fd);
>>+ attr->type, (unsigned long long)attr->config, fd);
>>
>> file = fopen(path, "w+");
>> if (!file) {
>>@@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr,
>>pid_t pid, int cpu,
>> }
>>
>> if (fprintf(file, "[event-%d-%llu-%d]\n",
>>- attr->type, attr->config, fd) < 0) {
>>+ attr->type, (unsigned long long)attr->config, fd) < 0) {
>> perror("test attr - failed to write event file");
>> fclose(file);
>> return -1;
>>@@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr,
>>pid_t pid, int cpu,
>> /* struct perf_event_attr */
>> WRITE_ASS(type, PRIu32);
>> WRITE_ASS(size, PRIu32);
>>- WRITE_ASS(config, "llu");
>>- WRITE_ASS(sample_period, "llu");
>>- WRITE_ASS(sample_type, "llu");
>>- WRITE_ASS(read_format, "llu");
>>+ __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
>>+ __WRITE_ASS(sample_period, "llu", (unsigned long
>>long)attr->sample_period);
>>+ __WRITE_ASS(sample_type, "llu", (unsigned long
>>long)attr->sample_type);
>>+ __WRITE_ASS(read_format, "llu", (unsigned long
>>long)attr->read_format);
>> WRITE_ASS(disabled, "d");
>> WRITE_ASS(inherit, "d");
>> WRITE_ASS(pinned, "d");
>>@@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr
>>*attr, pid_t pid, int cpu,
>> WRITE_ASS(exclude_callchain_user, "d");
>> WRITE_ASS(wakeup_events, PRIu32);
>> WRITE_ASS(bp_type, PRIu32);
>>- WRITE_ASS(config1, "llu");
>>- WRITE_ASS(config2, "llu");
>>- WRITE_ASS(branch_sample_type, "llu");
>>- WRITE_ASS(sample_regs_user, "llu");
>>+ __WRITE_ASS(config1, "llu", (unsigned long
>>long)attr->config1);
>>+ __WRITE_ASS(config2, "llu", (unsigned long
>>long)attr->config2);
>>+ __WRITE_ASS(branch_sample_type, "llu", (unsigned long
>>long)attr->branch_sample_type);
>>+ __WRITE_ASS(sample_regs_user, "llu", (unsigned long
>>long)attr->sample_regs_user);
>> WRITE_ASS(sample_stack_user, PRIu32);
>>
>> fclose(file);
>>diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
>>index 68daa28..bf3a094 100644
>>--- a/tools/perf/tests/bp_signal.c
>>+++ b/tools/perf/tests/bp_signal.c
>>@@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>>
>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>> if (fd < 0) {
>>- pr_debug("failed opening event %llx\n", pe.config);
>>+ pr_debug("failed opening event %llx\n", (unsigned long
>>long)pe.config);
>> return TEST_FAIL;
>> }
>>
>>diff --git a/tools/perf/tests/bp_signal_overflow.c
>>b/tools/perf/tests/bp_signal_overflow.c
>>index fe7ed28..3662b15 100644
>>--- a/tools/perf/tests/bp_signal_overflow.c
>>+++ b/tools/perf/tests/bp_signal_overflow.c
>>@@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>>
>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>> if (fd < 0) {
>>- pr_debug("failed opening event %llx\n", pe.config);
>>+ pr_debug("failed opening event %llx\n", (unsigned long
>>long)pe.config);
>> return TEST_FAIL;
>> }
>>
>>--
>>1.7.5.4
>>
>>_______________________________________________
>>yocto mailing list
>>yocto@yoctoproject.org
>>https://lists.yoctoproject.org/listinfo/yocto
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-25 20:14 ` Billie Alsup
@ 2013-10-25 20:52 ` Yang Shi
0 siblings, 0 replies; 9+ messages in thread
From: Yang Shi @ 2013-10-25 20:52 UTC (permalink / raw)
To: Billie Alsup, bruce.ashfield@windriver.com,
yocto@yoctoproject.org
On 10/25/2013 1:14 PM, Billie Alsup wrote:
> I guess for that example, you have to add % yourself
>
> "%s/event-%d-%" PRIu64 "-%d"
>
> but for all the WRITE_ASS examples, simply replace "llu" with PRIu64
Thanks for the suggestion. I had a try, but it failed to build for x86_64.
| tests/attr.c:74:4: error: format '%lu' expects argument of type 'long
unsigned int', but argument 6 has type '__u64' [-Werror=format=]
| attr->type, attr->config, fd);
Yang
>
>
> On 10/25/13 1:11 PM, "Billie Alsup" <billie.alsup@ericsson.com> wrote:
>
>> Wouldn't it be better to change "%llu" to PRIu64 (from inttypes.h)?
>> Notice that PRIu32 is already used in places.
>> You can use string catenation where necessary, e.g.
>>
>> "%s/event-%d-" PRIu64 "-%d"
>>
>>
>> On 10/25/13 12:17 PM, "Yang Shi" <yang.shi@windriver.com> wrote:
>>
>>> On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will
>>> cause
>>> build error on MIPS64.
>>>
>>> Convert __u64 to unsigned long long in those sprintf calls to avoid the
>>> build
>>> error.
>>>
>>> Signed-off-by: Yang Shi <yang.shi@windriver.com>
>>> ---
>>> tools/perf/tests/attr.c | 20 ++++++++++----------
>>> tools/perf/tests/bp_signal.c | 2 +-
>>> tools/perf/tests/bp_signal_overflow.c | 2 +-
>>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>>> index 00218f5..f045c2c 100644
>>> --- a/tools/perf/tests/attr.c
>>> +++ b/tools/perf/tests/attr.c
>>> @@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr,
>>> pid_t pid, int cpu,
>>> char path[PATH_MAX];
>>>
>>> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>>> - attr->type, attr->config, fd);
>>> + attr->type, (unsigned long long)attr->config, fd);
>>>
>>> file = fopen(path, "w+");
>>> if (!file) {
>>> @@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr,
>>> pid_t pid, int cpu,
>>> }
>>>
>>> if (fprintf(file, "[event-%d-%llu-%d]\n",
>>> - attr->type, attr->config, fd) < 0) {
>>> + attr->type, (unsigned long long)attr->config, fd) < 0) {
>>> perror("test attr - failed to write event file");
>>> fclose(file);
>>> return -1;
>>> @@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr,
>>> pid_t pid, int cpu,
>>> /* struct perf_event_attr */
>>> WRITE_ASS(type, PRIu32);
>>> WRITE_ASS(size, PRIu32);
>>> - WRITE_ASS(config, "llu");
>>> - WRITE_ASS(sample_period, "llu");
>>> - WRITE_ASS(sample_type, "llu");
>>> - WRITE_ASS(read_format, "llu");
>>> + __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
>>> + __WRITE_ASS(sample_period, "llu", (unsigned long
>>> long)attr->sample_period);
>>> + __WRITE_ASS(sample_type, "llu", (unsigned long
>>> long)attr->sample_type);
>>> + __WRITE_ASS(read_format, "llu", (unsigned long
>>> long)attr->read_format);
>>> WRITE_ASS(disabled, "d");
>>> WRITE_ASS(inherit, "d");
>>> WRITE_ASS(pinned, "d");
>>> @@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr
>>> *attr, pid_t pid, int cpu,
>>> WRITE_ASS(exclude_callchain_user, "d");
>>> WRITE_ASS(wakeup_events, PRIu32);
>>> WRITE_ASS(bp_type, PRIu32);
>>> - WRITE_ASS(config1, "llu");
>>> - WRITE_ASS(config2, "llu");
>>> - WRITE_ASS(branch_sample_type, "llu");
>>> - WRITE_ASS(sample_regs_user, "llu");
>>> + __WRITE_ASS(config1, "llu", (unsigned long
>>> long)attr->config1);
>>> + __WRITE_ASS(config2, "llu", (unsigned long
>>> long)attr->config2);
>>> + __WRITE_ASS(branch_sample_type, "llu", (unsigned long
>>> long)attr->branch_sample_type);
>>> + __WRITE_ASS(sample_regs_user, "llu", (unsigned long
>>> long)attr->sample_regs_user);
>>> WRITE_ASS(sample_stack_user, PRIu32);
>>>
>>> fclose(file);
>>> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
>>> index 68daa28..bf3a094 100644
>>> --- a/tools/perf/tests/bp_signal.c
>>> +++ b/tools/perf/tests/bp_signal.c
>>> @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>>>
>>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>>> if (fd < 0) {
>>> - pr_debug("failed opening event %llx\n", pe.config);
>>> + pr_debug("failed opening event %llx\n", (unsigned long
>>> long)pe.config);
>>> return TEST_FAIL;
>>> }
>>>
>>> diff --git a/tools/perf/tests/bp_signal_overflow.c
>>> b/tools/perf/tests/bp_signal_overflow.c
>>> index fe7ed28..3662b15 100644
>>> --- a/tools/perf/tests/bp_signal_overflow.c
>>> +++ b/tools/perf/tests/bp_signal_overflow.c
>>> @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>>>
>>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>>> if (fd < 0) {
>>> - pr_debug("failed opening event %llx\n", pe.config);
>>> + pr_debug("failed opening event %llx\n", (unsigned long
>>> long)pe.config);
>>> return TEST_FAIL;
>>> }
>>>
>>> --
>>> 1.7.5.4
>>>
>>> _______________________________________________
>>> yocto mailing list
>>> yocto@yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/yocto
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-25 19:17 [PATCH] perf: mips64: Convert __u64 to unsigned long long Yang Shi
2013-10-25 20:11 ` Billie Alsup
@ 2013-10-29 0:38 ` Khem Raj
2013-10-29 9:28 ` Hans Beckérus
2013-10-29 14:48 ` Yang Shi
1 sibling, 2 replies; 9+ messages in thread
From: Khem Raj @ 2013-10-29 0:38 UTC (permalink / raw)
To: Yang Shi; +Cc: yocto@yoctoproject.org
On Fri, Oct 25, 2013 at 12:17 PM, Yang Shi <yang.shi@windriver.com> wrote:
> On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will cause
> build error on MIPS64.
>
> Convert __u64 to unsigned long long in those sprintf calls to avoid the build
> error.
>
> Signed-off-by: Yang Shi <yang.shi@windriver.com>
> ---
> tools/perf/tests/attr.c | 20 ++++++++++----------
> tools/perf/tests/bp_signal.c | 2 +-
> tools/perf/tests/bp_signal_overflow.c | 2 +-
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
> index 00218f5..f045c2c 100644
> --- a/tools/perf/tests/attr.c
> +++ b/tools/perf/tests/attr.c
> @@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
> char path[PATH_MAX];
>
> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
> - attr->type, attr->config, fd);
> + attr->type, (unsigned long long)attr->config, fd);
>
hmm may be you can convert %llu into PRIu64
e.g.
printf( "%" PRIu64 "\n", val);
> file = fopen(path, "w+");
> if (!file) {
> @@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
> }
>
> if (fprintf(file, "[event-%d-%llu-%d]\n",
> - attr->type, attr->config, fd) < 0) {
> + attr->type, (unsigned long long)attr->config, fd) < 0) {
> perror("test attr - failed to write event file");
> fclose(file);
> return -1;
> @@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
> /* struct perf_event_attr */
> WRITE_ASS(type, PRIu32);
> WRITE_ASS(size, PRIu32);
> - WRITE_ASS(config, "llu");
> - WRITE_ASS(sample_period, "llu");
> - WRITE_ASS(sample_type, "llu");
> - WRITE_ASS(read_format, "llu");
> + __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
> + __WRITE_ASS(sample_period, "llu", (unsigned long long)attr->sample_period);
> + __WRITE_ASS(sample_type, "llu", (unsigned long long)attr->sample_type);
> + __WRITE_ASS(read_format, "llu", (unsigned long long)attr->read_format);
> WRITE_ASS(disabled, "d");
> WRITE_ASS(inherit, "d");
> WRITE_ASS(pinned, "d");
> @@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
> WRITE_ASS(exclude_callchain_user, "d");
> WRITE_ASS(wakeup_events, PRIu32);
> WRITE_ASS(bp_type, PRIu32);
> - WRITE_ASS(config1, "llu");
> - WRITE_ASS(config2, "llu");
> - WRITE_ASS(branch_sample_type, "llu");
> - WRITE_ASS(sample_regs_user, "llu");
> + __WRITE_ASS(config1, "llu", (unsigned long long)attr->config1);
> + __WRITE_ASS(config2, "llu", (unsigned long long)attr->config2);
> + __WRITE_ASS(branch_sample_type, "llu", (unsigned long long)attr->branch_sample_type);
> + __WRITE_ASS(sample_regs_user, "llu", (unsigned long long)attr->sample_regs_user);
> WRITE_ASS(sample_stack_user, PRIu32);
>
> fclose(file);
> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
> index 68daa28..bf3a094 100644
> --- a/tools/perf/tests/bp_signal.c
> +++ b/tools/perf/tests/bp_signal.c
> @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>
> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
> if (fd < 0) {
> - pr_debug("failed opening event %llx\n", pe.config);
> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
> return TEST_FAIL;
> }
>
> diff --git a/tools/perf/tests/bp_signal_overflow.c b/tools/perf/tests/bp_signal_overflow.c
> index fe7ed28..3662b15 100644
> --- a/tools/perf/tests/bp_signal_overflow.c
> +++ b/tools/perf/tests/bp_signal_overflow.c
> @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>
> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
> if (fd < 0) {
> - pr_debug("failed opening event %llx\n", pe.config);
> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
> return TEST_FAIL;
> }
>
> --
> 1.7.5.4
>
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-29 0:38 ` Khem Raj
@ 2013-10-29 9:28 ` Hans Beckérus
2013-10-29 12:40 ` Bruce Ashfield
2013-10-29 14:48 ` Yang Shi
1 sibling, 1 reply; 9+ messages in thread
From: Hans Beckérus @ 2013-10-29 9:28 UTC (permalink / raw)
To: Khem Raj; +Cc: yocto@yoctoproject.org
On Tue, Oct 29, 2013 at 1:38 AM, Khem Raj <raj.khem@gmail.com> wrote:
> On Fri, Oct 25, 2013 at 12:17 PM, Yang Shi <yang.shi@windriver.com> wrote:
>> On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will cause
>> build error on MIPS64.
>>
>> Convert __u64 to unsigned long long in those sprintf calls to avoid the build
>> error.
>>
>> Signed-off-by: Yang Shi <yang.shi@windriver.com>
>> ---
>> tools/perf/tests/attr.c | 20 ++++++++++----------
>> tools/perf/tests/bp_signal.c | 2 +-
>> tools/perf/tests/bp_signal_overflow.c | 2 +-
>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>> index 00218f5..f045c2c 100644
>> --- a/tools/perf/tests/attr.c
>> +++ b/tools/perf/tests/attr.c
>> @@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> char path[PATH_MAX];
>>
>> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>> - attr->type, attr->config, fd);
>> + attr->type, (unsigned long long)attr->config, fd);
>>
>
> hmm may be you can convert %llu into PRIu64
>
> e.g.
>
> printf( "%" PRIu64 "\n", val);
>
I think there was a thread/patch on the exact same package and issue in OE-core.
The solution I think was to define __SANE_USERSPACE_TYPES__ to get
proper definition of __u64.
http://patchwork.openembedded.org/patch/59641/
Or maybe this is something completely different?
Thanks.
Hans
>
>
>> file = fopen(path, "w+");
>> if (!file) {
>> @@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> }
>>
>> if (fprintf(file, "[event-%d-%llu-%d]\n",
>> - attr->type, attr->config, fd) < 0) {
>> + attr->type, (unsigned long long)attr->config, fd) < 0) {
>> perror("test attr - failed to write event file");
>> fclose(file);
>> return -1;
>> @@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> /* struct perf_event_attr */
>> WRITE_ASS(type, PRIu32);
>> WRITE_ASS(size, PRIu32);
>> - WRITE_ASS(config, "llu");
>> - WRITE_ASS(sample_period, "llu");
>> - WRITE_ASS(sample_type, "llu");
>> - WRITE_ASS(read_format, "llu");
>> + __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
>> + __WRITE_ASS(sample_period, "llu", (unsigned long long)attr->sample_period);
>> + __WRITE_ASS(sample_type, "llu", (unsigned long long)attr->sample_type);
>> + __WRITE_ASS(read_format, "llu", (unsigned long long)attr->read_format);
>> WRITE_ASS(disabled, "d");
>> WRITE_ASS(inherit, "d");
>> WRITE_ASS(pinned, "d");
>> @@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> WRITE_ASS(exclude_callchain_user, "d");
>> WRITE_ASS(wakeup_events, PRIu32);
>> WRITE_ASS(bp_type, PRIu32);
>> - WRITE_ASS(config1, "llu");
>> - WRITE_ASS(config2, "llu");
>> - WRITE_ASS(branch_sample_type, "llu");
>> - WRITE_ASS(sample_regs_user, "llu");
>> + __WRITE_ASS(config1, "llu", (unsigned long long)attr->config1);
>> + __WRITE_ASS(config2, "llu", (unsigned long long)attr->config2);
>> + __WRITE_ASS(branch_sample_type, "llu", (unsigned long long)attr->branch_sample_type);
>> + __WRITE_ASS(sample_regs_user, "llu", (unsigned long long)attr->sample_regs_user);
>> WRITE_ASS(sample_stack_user, PRIu32);
>>
>> fclose(file);
>> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
>> index 68daa28..bf3a094 100644
>> --- a/tools/perf/tests/bp_signal.c
>> +++ b/tools/perf/tests/bp_signal.c
>> @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>>
>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>> if (fd < 0) {
>> - pr_debug("failed opening event %llx\n", pe.config);
>> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
>> return TEST_FAIL;
>> }
>>
>> diff --git a/tools/perf/tests/bp_signal_overflow.c b/tools/perf/tests/bp_signal_overflow.c
>> index fe7ed28..3662b15 100644
>> --- a/tools/perf/tests/bp_signal_overflow.c
>> +++ b/tools/perf/tests/bp_signal_overflow.c
>> @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>>
>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>> if (fd < 0) {
>> - pr_debug("failed opening event %llx\n", pe.config);
>> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
>> return TEST_FAIL;
>> }
>>
>> --
>> 1.7.5.4
>>
>> _______________________________________________
>> yocto mailing list
>> yocto@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-29 9:28 ` Hans Beckérus
@ 2013-10-29 12:40 ` Bruce Ashfield
2013-10-29 14:49 ` Yang Shi
0 siblings, 1 reply; 9+ messages in thread
From: Bruce Ashfield @ 2013-10-29 12:40 UTC (permalink / raw)
To: Hans Beckérus, Khem Raj; +Cc: yocto@yoctoproject.org
On 13-10-29 05:28 AM, Hans Beckérus wrote:
> On Tue, Oct 29, 2013 at 1:38 AM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Fri, Oct 25, 2013 at 12:17 PM, Yang Shi <yang.shi@windriver.com> wrote:
>>> On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will cause
>>> build error on MIPS64.
>>>
>>> Convert __u64 to unsigned long long in those sprintf calls to avoid the build
>>> error.
>>>
>>> Signed-off-by: Yang Shi <yang.shi@windriver.com>
>>> ---
>>> tools/perf/tests/attr.c | 20 ++++++++++----------
>>> tools/perf/tests/bp_signal.c | 2 +-
>>> tools/perf/tests/bp_signal_overflow.c | 2 +-
>>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>>> index 00218f5..f045c2c 100644
>>> --- a/tools/perf/tests/attr.c
>>> +++ b/tools/perf/tests/attr.c
>>> @@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>>> char path[PATH_MAX];
>>>
>>> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>>> - attr->type, attr->config, fd);
>>> + attr->type, (unsigned long long)attr->config, fd);
>>>
>>
>> hmm may be you can convert %llu into PRIu64
>>
>> e.g.
>>
>> printf( "%" PRIu64 "\n", val);
>>
> I think there was a thread/patch on the exact same package and issue in OE-core.
> The solution I think was to define __SANE_USERSPACE_TYPES__ to get
> proper definition of __u64.
> http://patchwork.openembedded.org/patch/59641/
> Or maybe this is something completely different?
The are the same, just a kernel guy versus a userspace guy looking
at the same issue from different points of view. :)
Bruce
>
> Thanks.
> Hans
>
>>
>>
>>> file = fopen(path, "w+");
>>> if (!file) {
>>> @@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>>> }
>>>
>>> if (fprintf(file, "[event-%d-%llu-%d]\n",
>>> - attr->type, attr->config, fd) < 0) {
>>> + attr->type, (unsigned long long)attr->config, fd) < 0) {
>>> perror("test attr - failed to write event file");
>>> fclose(file);
>>> return -1;
>>> @@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>>> /* struct perf_event_attr */
>>> WRITE_ASS(type, PRIu32);
>>> WRITE_ASS(size, PRIu32);
>>> - WRITE_ASS(config, "llu");
>>> - WRITE_ASS(sample_period, "llu");
>>> - WRITE_ASS(sample_type, "llu");
>>> - WRITE_ASS(read_format, "llu");
>>> + __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
>>> + __WRITE_ASS(sample_period, "llu", (unsigned long long)attr->sample_period);
>>> + __WRITE_ASS(sample_type, "llu", (unsigned long long)attr->sample_type);
>>> + __WRITE_ASS(read_format, "llu", (unsigned long long)attr->read_format);
>>> WRITE_ASS(disabled, "d");
>>> WRITE_ASS(inherit, "d");
>>> WRITE_ASS(pinned, "d");
>>> @@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>>> WRITE_ASS(exclude_callchain_user, "d");
>>> WRITE_ASS(wakeup_events, PRIu32);
>>> WRITE_ASS(bp_type, PRIu32);
>>> - WRITE_ASS(config1, "llu");
>>> - WRITE_ASS(config2, "llu");
>>> - WRITE_ASS(branch_sample_type, "llu");
>>> - WRITE_ASS(sample_regs_user, "llu");
>>> + __WRITE_ASS(config1, "llu", (unsigned long long)attr->config1);
>>> + __WRITE_ASS(config2, "llu", (unsigned long long)attr->config2);
>>> + __WRITE_ASS(branch_sample_type, "llu", (unsigned long long)attr->branch_sample_type);
>>> + __WRITE_ASS(sample_regs_user, "llu", (unsigned long long)attr->sample_regs_user);
>>> WRITE_ASS(sample_stack_user, PRIu32);
>>>
>>> fclose(file);
>>> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
>>> index 68daa28..bf3a094 100644
>>> --- a/tools/perf/tests/bp_signal.c
>>> +++ b/tools/perf/tests/bp_signal.c
>>> @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>>>
>>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>>> if (fd < 0) {
>>> - pr_debug("failed opening event %llx\n", pe.config);
>>> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
>>> return TEST_FAIL;
>>> }
>>>
>>> diff --git a/tools/perf/tests/bp_signal_overflow.c b/tools/perf/tests/bp_signal_overflow.c
>>> index fe7ed28..3662b15 100644
>>> --- a/tools/perf/tests/bp_signal_overflow.c
>>> +++ b/tools/perf/tests/bp_signal_overflow.c
>>> @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>>>
>>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>>> if (fd < 0) {
>>> - pr_debug("failed opening event %llx\n", pe.config);
>>> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
>>> return TEST_FAIL;
>>> }
>>>
>>> --
>>> 1.7.5.4
>>>
>>> _______________________________________________
>>> yocto mailing list
>>> yocto@yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/yocto
>> _______________________________________________
>> yocto mailing list
>> yocto@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-29 0:38 ` Khem Raj
2013-10-29 9:28 ` Hans Beckérus
@ 2013-10-29 14:48 ` Yang Shi
1 sibling, 0 replies; 9+ messages in thread
From: Yang Shi @ 2013-10-29 14:48 UTC (permalink / raw)
To: Khem Raj; +Cc: yocto@yoctoproject.org
On 10/28/2013 5:38 PM, Khem Raj wrote:
> On Fri, Oct 25, 2013 at 12:17 PM, Yang Shi <yang.shi@windriver.com> wrote:
>> On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will cause
>> build error on MIPS64.
>>
>> Convert __u64 to unsigned long long in those sprintf calls to avoid the build
>> error.
>>
>> Signed-off-by: Yang Shi <yang.shi@windriver.com>
>> ---
>> tools/perf/tests/attr.c | 20 ++++++++++----------
>> tools/perf/tests/bp_signal.c | 2 +-
>> tools/perf/tests/bp_signal_overflow.c | 2 +-
>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>> index 00218f5..f045c2c 100644
>> --- a/tools/perf/tests/attr.c
>> +++ b/tools/perf/tests/attr.c
>> @@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> char path[PATH_MAX];
>>
>> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>> - attr->type, attr->config, fd);
>> + attr->type, (unsigned long long)attr->config, fd);
>>
> hmm may be you can convert %llu into PRIu64
>
> e.g.
>
> printf( "%" PRIu64 "\n", val);
I already tried this. It works on some arches, like MIPS64, but failed
for x86_64 build.
Thanks,
Yang
>
>
>
>> file = fopen(path, "w+");
>> if (!file) {
>> @@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> }
>>
>> if (fprintf(file, "[event-%d-%llu-%d]\n",
>> - attr->type, attr->config, fd) < 0) {
>> + attr->type, (unsigned long long)attr->config, fd) < 0) {
>> perror("test attr - failed to write event file");
>> fclose(file);
>> return -1;
>> @@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> /* struct perf_event_attr */
>> WRITE_ASS(type, PRIu32);
>> WRITE_ASS(size, PRIu32);
>> - WRITE_ASS(config, "llu");
>> - WRITE_ASS(sample_period, "llu");
>> - WRITE_ASS(sample_type, "llu");
>> - WRITE_ASS(read_format, "llu");
>> + __WRITE_ASS(config, "llu", (unsigned long long)attr->config);
>> + __WRITE_ASS(sample_period, "llu", (unsigned long long)attr->sample_period);
>> + __WRITE_ASS(sample_type, "llu", (unsigned long long)attr->sample_type);
>> + __WRITE_ASS(read_format, "llu", (unsigned long long)attr->read_format);
>> WRITE_ASS(disabled, "d");
>> WRITE_ASS(inherit, "d");
>> WRITE_ASS(pinned, "d");
>> @@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,
>> WRITE_ASS(exclude_callchain_user, "d");
>> WRITE_ASS(wakeup_events, PRIu32);
>> WRITE_ASS(bp_type, PRIu32);
>> - WRITE_ASS(config1, "llu");
>> - WRITE_ASS(config2, "llu");
>> - WRITE_ASS(branch_sample_type, "llu");
>> - WRITE_ASS(sample_regs_user, "llu");
>> + __WRITE_ASS(config1, "llu", (unsigned long long)attr->config1);
>> + __WRITE_ASS(config2, "llu", (unsigned long long)attr->config2);
>> + __WRITE_ASS(branch_sample_type, "llu", (unsigned long long)attr->branch_sample_type);
>> + __WRITE_ASS(sample_regs_user, "llu", (unsigned long long)attr->sample_regs_user);
>> WRITE_ASS(sample_stack_user, PRIu32);
>>
>> fclose(file);
>> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
>> index 68daa28..bf3a094 100644
>> --- a/tools/perf/tests/bp_signal.c
>> +++ b/tools/perf/tests/bp_signal.c
>> @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>>
>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>> if (fd < 0) {
>> - pr_debug("failed opening event %llx\n", pe.config);
>> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
>> return TEST_FAIL;
>> }
>>
>> diff --git a/tools/perf/tests/bp_signal_overflow.c b/tools/perf/tests/bp_signal_overflow.c
>> index fe7ed28..3662b15 100644
>> --- a/tools/perf/tests/bp_signal_overflow.c
>> +++ b/tools/perf/tests/bp_signal_overflow.c
>> @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>>
>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>> if (fd < 0) {
>> - pr_debug("failed opening event %llx\n", pe.config);
>> + pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);
>> return TEST_FAIL;
>> }
>>
>> --
>> 1.7.5.4
>>
>> _______________________________________________
>> yocto mailing list
>> yocto@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] perf: mips64: Convert __u64 to unsigned long long
2013-10-29 12:40 ` Bruce Ashfield
@ 2013-10-29 14:49 ` Yang Shi
0 siblings, 0 replies; 9+ messages in thread
From: Yang Shi @ 2013-10-29 14:49 UTC (permalink / raw)
To: Bruce Ashfield, Hans Beckérus, Khem Raj; +Cc: yocto@yoctoproject.org
On 10/29/2013 5:40 AM, Bruce Ashfield wrote:
> On 13-10-29 05:28 AM, Hans Beckérus wrote:
>> On Tue, Oct 29, 2013 at 1:38 AM, Khem Raj <raj.khem@gmail.com> wrote:
>>> On Fri, Oct 25, 2013 at 12:17 PM, Yang Shi <yang.shi@windriver.com>
>>> wrote:
>>>> On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier
>>>> will cause
>>>> build error on MIPS64.
>>>>
>>>> Convert __u64 to unsigned long long in those sprintf calls to avoid
>>>> the build
>>>> error.
>>>>
>>>> Signed-off-by: Yang Shi <yang.shi@windriver.com>
>>>> ---
>>>> tools/perf/tests/attr.c | 20 ++++++++++----------
>>>> tools/perf/tests/bp_signal.c | 2 +-
>>>> tools/perf/tests/bp_signal_overflow.c | 2 +-
>>>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>>>
>>>> diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
>>>> index 00218f5..f045c2c 100644
>>>> --- a/tools/perf/tests/attr.c
>>>> +++ b/tools/perf/tests/attr.c
>>>> @@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr
>>>> *attr, pid_t pid, int cpu,
>>>> char path[PATH_MAX];
>>>>
>>>> snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
>>>> - attr->type, attr->config, fd);
>>>> + attr->type, (unsigned long long)attr->config, fd);
>>>>
>>>
>>> hmm may be you can convert %llu into PRIu64
>>>
>>> e.g.
>>>
>>> printf( "%" PRIu64 "\n", val);
>>>
>> I think there was a thread/patch on the exact same package and issue
>> in OE-core.
>> The solution I think was to define __SANE_USERSPACE_TYPES__ to get
>> proper definition of __u64.
>> http://patchwork.openembedded.org/patch/59641/
>> Or maybe this is something completely different?
>
> The are the same, just a kernel guy versus a userspace guy looking
> at the same issue from different points of view. :)
Yes, actually kernel already had a commit to define that macro:
commit e3541ec75219819d3235f80125a1a75d798ff6e1
Author: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Date: Wed Jan 23 21:44:39 2013 -0800
perf tools, powerpc: Fix compile warnings in tests/attr.c
We print several '__u64' quantities using '%llu'. On powerpc, we by
default include '<asm-generic/int-l64.h> which results in __u64
being an
unsigned long. This causes compile warnings which are treated as errors
due to '-Werror'.
By defining __SANE_USERSPACE_TYPES__ we include
<asm-generic/int-ll64.h>
and define __u64 as unsigned long long.
Changelog[v2]:
[Michael Ellerman] Use __SANE_USERSPACE_TYPES__ and avoid PRIu64
format specifier - which as Jiri Olsa pointed out, breaks on
x86-64.
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Anton Blanchard <anton@au1.ibm.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Michael Ellerman <ellerman@au1.ibm.com>
Cc: linuxppc-dev@ozlabs.org
Link: http://lkml.kernel.org/r/20130124054439.GA31588@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
But, MIPS64 still failed to build with this commit.
Yang
>
> Bruce
>
>>
>> Thanks.
>> Hans
>>
>>>
>>>
>>>> file = fopen(path, "w+");
>>>> if (!file) {
>>>> @@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr
>>>> *attr, pid_t pid, int cpu,
>>>> }
>>>>
>>>> if (fprintf(file, "[event-%d-%llu-%d]\n",
>>>> - attr->type, attr->config, fd) < 0) {
>>>> + attr->type, (unsigned long long)attr->config,
>>>> fd) < 0) {
>>>> perror("test attr - failed to write event file");
>>>> fclose(file);
>>>> return -1;
>>>> @@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr
>>>> *attr, pid_t pid, int cpu,
>>>> /* struct perf_event_attr */
>>>> WRITE_ASS(type, PRIu32);
>>>> WRITE_ASS(size, PRIu32);
>>>> - WRITE_ASS(config, "llu");
>>>> - WRITE_ASS(sample_period, "llu");
>>>> - WRITE_ASS(sample_type, "llu");
>>>> - WRITE_ASS(read_format, "llu");
>>>> + __WRITE_ASS(config, "llu", (unsigned long
>>>> long)attr->config);
>>>> + __WRITE_ASS(sample_period, "llu", (unsigned long
>>>> long)attr->sample_period);
>>>> + __WRITE_ASS(sample_type, "llu", (unsigned long
>>>> long)attr->sample_type);
>>>> + __WRITE_ASS(read_format, "llu", (unsigned long
>>>> long)attr->read_format);
>>>> WRITE_ASS(disabled, "d");
>>>> WRITE_ASS(inherit, "d");
>>>> WRITE_ASS(pinned, "d");
>>>> @@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr
>>>> *attr, pid_t pid, int cpu,
>>>> WRITE_ASS(exclude_callchain_user, "d");
>>>> WRITE_ASS(wakeup_events, PRIu32);
>>>> WRITE_ASS(bp_type, PRIu32);
>>>> - WRITE_ASS(config1, "llu");
>>>> - WRITE_ASS(config2, "llu");
>>>> - WRITE_ASS(branch_sample_type, "llu");
>>>> - WRITE_ASS(sample_regs_user, "llu");
>>>> + __WRITE_ASS(config1, "llu", (unsigned long
>>>> long)attr->config1);
>>>> + __WRITE_ASS(config2, "llu", (unsigned long
>>>> long)attr->config2);
>>>> + __WRITE_ASS(branch_sample_type, "llu", (unsigned long
>>>> long)attr->branch_sample_type);
>>>> + __WRITE_ASS(sample_regs_user, "llu", (unsigned long
>>>> long)attr->sample_regs_user);
>>>> WRITE_ASS(sample_stack_user, PRIu32);
>>>>
>>>> fclose(file);
>>>> diff --git a/tools/perf/tests/bp_signal.c
>>>> b/tools/perf/tests/bp_signal.c
>>>> index 68daa28..bf3a094 100644
>>>> --- a/tools/perf/tests/bp_signal.c
>>>> +++ b/tools/perf/tests/bp_signal.c
>>>> @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal)
>>>>
>>>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>>>> if (fd < 0) {
>>>> - pr_debug("failed opening event %llx\n", pe.config);
>>>> + pr_debug("failed opening event %llx\n", (unsigned
>>>> long long)pe.config);
>>>> return TEST_FAIL;
>>>> }
>>>>
>>>> diff --git a/tools/perf/tests/bp_signal_overflow.c
>>>> b/tools/perf/tests/bp_signal_overflow.c
>>>> index fe7ed28..3662b15 100644
>>>> --- a/tools/perf/tests/bp_signal_overflow.c
>>>> +++ b/tools/perf/tests/bp_signal_overflow.c
>>>> @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void)
>>>>
>>>> fd = sys_perf_event_open(&pe, 0, -1, -1, 0);
>>>> if (fd < 0) {
>>>> - pr_debug("failed opening event %llx\n", pe.config);
>>>> + pr_debug("failed opening event %llx\n", (unsigned
>>>> long long)pe.config);
>>>> return TEST_FAIL;
>>>> }
>>>>
>>>> --
>>>> 1.7.5.4
>>>>
>>>> _______________________________________________
>>>> yocto mailing list
>>>> yocto@yoctoproject.org
>>>> https://lists.yoctoproject.org/listinfo/yocto
>>> _______________________________________________
>>> yocto mailing list
>>> yocto@yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/yocto
>> _______________________________________________
>> yocto mailing list
>> yocto@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
>>
>
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-10-29 14:49 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-25 19:17 [PATCH] perf: mips64: Convert __u64 to unsigned long long Yang Shi
2013-10-25 20:11 ` Billie Alsup
2013-10-25 20:14 ` Billie Alsup
2013-10-25 20:52 ` Yang Shi
2013-10-29 0:38 ` Khem Raj
2013-10-29 9:28 ` Hans Beckérus
2013-10-29 12:40 ` Bruce Ashfield
2013-10-29 14:49 ` Yang Shi
2013-10-29 14:48 ` 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.