Messages in this thread |  | | Date | Fri, 15 Nov 2013 16:39:36 +0000 | From | Will Deacon <> | Subject | Re: Re: Re: [PATCH RFC 2/6] arm64: Kprobes with single stepping support |
| |
On Wed, Nov 13, 2013 at 03:55:42PM +0000, Sandeepa Prabhu wrote: > On 13 November 2013 20:01, Will Deacon <will.deacon@arm.com> wrote: > > On Wed, Nov 13, 2013 at 06:55:33AM +0000, Sandeepa Prabhu wrote: > >> 1. Placing watchpoint ( attr.bp_type = HW_BREAKPOINT_W | > >> HW_BREAKPOINT_R) upon vfs_symlink symbol, but seems watch-point is not > >> triggering at all. > > > > vfs_symlink is a function. Why would you expect to write it? > This is generic test module (samples/hw_breakpoint/data_breakpoint.ko) > which places watchpoint for bothe read/write. > Atleast watchpt should have triggered for Read right? I also tried > with othe functions like do_fork, vfs_read etc but no hit.
You'd need to place something for exec if you want to see anything on the instruction side. A read by the instruction fetcher does not trigger a read watchpoint on ARM.
> >> 2. Placing text breakpoint (modified sample module with attr.bp_type > >> = HW_BREAKPOINT_X) upon vfs_symlink, and run "ln -s /dev/null > >> /tmp/foo". This time, breakpoint hit but exception is re-cursing > >> infinitely! > > > > The problem here is that we expect the overflow handler to deal with the > > stepping (like GDB does via ptrace). If you don't register a handler, the > > kernel will do the step (like you would get if you used perf stat -e > > mem:0xNNNN:x). > [This test was done on upstream branch, without kprobes patches.] > Hmm, then this is expected with test breakpoint right? is this > handling to be done by perf and ptrace?
perf stat doesn't register an overflow handler, so the hw_breakpoint backend will handle the step. ptrace registers a handler which sends a SIGTRAP to the debugger (e.g. gdb), which handles the step manually (probably using a PTRACE_SINGLESTEP request).
> I did not see arm64 support in linux/tools/perf/, there are multiple > patches in mailing list though. Are you aware of any version of perf > that work with arm64?
The perf tool should work fine on arm64 using mainline. Are you seeing problems?
Will
|  |