Re: [PATCH 1/1] perf: Fixed perf trace, 32bit return values to 64bit

From: Arnaldo Carvalho de Melo
Date: Mon Sep 29 2014 - 14:28:39 EST


Em Fri, Sep 26, 2014 at 09:54:01PM +0900, Chang Hyun Park escreveu:
> perf trace for syscalls resulted in mmap return values being stripped of
> the top 32 bits, and actually printing only the lower 32 bits. This was
> because the ret value was of an 'int' type and not a 'long' type.
>
> The Problem:
> 991258501.244 ( 0.004 ms): mmap(len: 40001536, prot: READ|WRITE, flags:
> PRIVATE|ANONYMOUS, fd: -1) = 0x56691000
> 991258501.257 ( 0.000 ms): minfault [_int_malloc+0x1038] =>
> //anon@0x7fa056691008 //(d.)
>
> The first line shows an mmap, which succeeds and returns 0x56691000.
> However the next line shows a memory access to that virtual memory area,
> specifically to 0x7fa056691008. The upper 32 bit is lost due to the
> problem mentioned above, and thus mmap's return value didn't have the
> upper 0x7fa0.

Thanks, applied to my perf/core branch.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/