I had a similar problem on mipsel32. At least on that the problem was that
the accessor function was calling read_s32 which seems to do the wrong
thing on that platform. Fixing that seems to have made it work. I'm in the
process of trying to organise a patch.

On Sun, 29 Jul 2018, 18:25 Sergey Korolev, <s.koro...@ndmsystems.com> wrote:

> In my opinion a mentioned patch [1] does not work properly
> since it defines _UPT_reg_offset elements as
>
> +    [UNW_MIPS_R0]  =  0,
> +    [UNW_MIPS_R1]  =  1,
> +    [UNW_MIPS_R2]  =  2,
> +    [UNW_MIPS_R3]  =  3,
> +    [UNW_MIPS_R4]  =  4,
> +    [UNW_MIPS_R5]  =  5,
> +    [UNW_MIPS_R6]  =  6,
> +    [UNW_MIPS_R7]  =  7,
> +    [UNW_MIPS_R8]  =  8,
> +    [UNW_MIPS_R9]  =  9,
> +    [UNW_MIPS_R10] = 10,
> +    [UNW_MIPS_R11] = 11,
> +    [UNW_MIPS_R12] = 12,
> +    [UNW_MIPS_R13] = 13,
> +    [UNW_MIPS_R14] = 14,
> +    [UNW_MIPS_R15] = 15,
> +    [UNW_MIPS_R16] = 16,
> +    [UNW_MIPS_R17] = 17,
> +    [UNW_MIPS_R18] = 18,
> +    [UNW_MIPS_R19] = 19,
> +    [UNW_MIPS_R20] = 20,
> +    [UNW_MIPS_R21] = 21,
> +    [UNW_MIPS_R22] = 22,
> +    [UNW_MIPS_R23] = 23,
> +    [UNW_MIPS_R24] = 24,
> +    [UNW_MIPS_R25] = 25,
> +    [UNW_MIPS_R26] = 26,
> +    [UNW_MIPS_R27] = 27,
> +    [UNW_MIPS_R28] = 28,
> +    [UNW_MIPS_R29] = 29,
> +    [UNW_MIPS_R30] = 30,
> +    [UNW_MIPS_R31] = 31,
> +    [UNW_MIPS_PC]  = 64,
>
> but a code in _UPT_access_mem.c expects that _UPT_reg_offset
> is a byte offset, and not a word offset or a register index.
>
> [1]
> http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=commit;h=2a5d1a629634b3225fccb1ed8a0a765bccc77f2e
>
> On Sun, Jul 29, 2018 at 6:18 PM, Sapir Natan <sapi...@checkpoint.com>
> wrote:
>
>> Hi,
>>
>>
>>
>> We are trying to obtain a callgraph using ‘perf’ utility, while running
>> on MIPS architecture with linux 3.10 (64Bit processes)
>>
>> We wish to obtain callgraph on:
>>
>> ·         Terminated processes
>>
>> ·         Running processes (using –p <pid>)
>>
>>
>>
>> Following the resolution that perf is unable to create callgraph on MIPS
>> using frame pointer, we tried using libunwind
>>
>> Since ‘dwarf’ option for perf isn’t part of linux 3.10 (or any other
>> version), we added a patch (composed of the following 3 patches):
>>
>> ·
>> https://www.linux-mips.org/archives/linux-mips/2013-05/msg00123.html
>>
>> ·
>> https://www.linux-mips.org/archives/linux-mips/2013-05/msg00115.html
>>
>> ·
>> https://www.linux-mips.org/archives/linux-mips/2016-04/msg00003.html
>>
>> ·         As part of the patch we also linked ‘perf’ with ‘libunwind’
>> (open source version *1.2.1*).
>>
>>
>>
>> This patch added the ‘dwarf’ capability to ‘perf’ on MIPS, however we
>> still couldn’t obtain a usable callgraph (most functions had no trace)
>>
>> The problem we encountered was that when reaching *‘maps__find´*
>> function (*linux/tools/perf/util/map.c*), the binary search for the
>> required entry failed (could not be located)
>>
>> From our investigation, we can support local unwinding but not remote
>> (which is the type of unwinding required by ‘perf’)
>>
>>
>>
>> Checking online we saw on ‘libunwind’ NEWS: *‘** Mips remote unwind
>> support’* for version *1.3*.
>>
>> We replaced our ‘*1.2.1*’ version with ‘*1.3-rc1*’ and re-checked,
>> however the results remained the same (no callgraph).
>>
>>
>>
>> Could you please assist?
>>
>> ·         What was the issue you encountered that the fix in 1.3 version
>> resolved?
>>
>> ·         Can the new addition enable ‘perf’ to support callgraph on
>> MIPS?
>>
>> ·         Did we miss anything in our steps (as described above)?
>>
>> ·         Can you advice on the next steps?
>>
>>
>>
>> Thanks,
>>
>> Sapir
>>
>>
>>
>> _______________________________________________
>> Libunwind-devel mailing list
>> Libunwind-devel@nongnu.org
>> https://lists.nongnu.org/mailman/listinfo/libunwind-devel
>>
>>
> _______________________________________________
> Libunwind-devel mailing list
> Libunwind-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/libunwind-devel
>
_______________________________________________
Libunwind-devel mailing list
Libunwind-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to