Messages in this thread | | | From | Hekuang <> | Subject | [BUG ARM64/perf] Perf record on hardware breakpoint causes application to hang | Date | Thu, 3 Mar 2016 21:09:05 +0800 |
| |
This problem can be reproduced as follows:
We know cat /proc/version will read the memory of symbol linux_proc_banner, then we make a hardware memory access breakpoint on that address.
on terminal 1:
$ perf record -e mem:0x$(cat /proc/kallsyms|grep linux_proc_banner|cut -d " " -f 1):rw --no-buffer -a
on terminal 2:
$ cat /proc/version
Then our 'cat' process on terminal 2 will be hanged, until we press '^C' to stop perf from recording events.
The sample numbers recorded by perf is extraordinary too:
[ perf record: Captured and wrote 0.879 MB perf.data (22691 samples) ]
The right result can be produced by removing the 'no-buffer' argument in perf command line, and the result should be like this:
$ perf record -e mem:0x$(cat /proc/kallsyms|grep linux_proc_ banner|cut -d " " -f 1):rw -a ^C [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.013 MB perf.data (10 samples) ]
Report this bug to you and hope for answers.
Thanks.
| |