Bug 368868 - disInstr(arm64): unhandled instruction 0xD53BE000
Summary: disInstr(arm64): unhandled instruction 0xD53BE000
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: callgrind (show other bugs)
Version: 3.12 SVN
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Josef Weidendorfer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-15 20:00 UTC by Pasha
Modified: 2017-05-14 13:00 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pasha 2016-09-15 20:00:29 UTC
Failure to decode cntfrq_el0 (ARMv8) instruction

Failure trace:

ARM64 front end: branch_etc
disInstr(arm64): unhandled instruction 0xD53BE000
disInstr(arm64): 1101'0101 0011'1011 1110'0000 0000'0000
==26344== valgrind: Unrecognised instruction at address 0x6395ec0.
==26344==    at 0x6395EC0: ucs_get_cpu_clocks_per_sec (cpu.h:41)
==26344==    by 0x638894B: ucs_async_thread_func (time.h:57)
==26344==    by 0x49F0FB3: start_thread (pthread_create.c:335)
==26344==    by 0x4ADC38F: thread_start (clone.S:89)

Link to UCX source code:
https://github.com/openucx/ucx/blob/master/src/ucs/arch/aarch64/cpu.h#L43
Comment 1 Julian Seward 2017-05-14 10:25:41 UTC
pmaydell, is reading of cntfrq_el0 from user space always allowed?
If so I can just implement this as a pass-through to the host.
Comment 2 Julian Seward 2017-05-14 10:32:07 UTC
Ah, it looks like it is RO at EL0.  Good.
Comment 3 Julian Seward 2017-05-14 13:00:30 UTC
Fixed, vex r3368.