[RFC PATCH] arm64: perf test: Improbe bp_signal
Jiri Olsa
jolsa at redhat.com
Tue Jan 5 00:53:38 PST 2016
On Tue, Jan 05, 2016 at 04:58:00AM +0000, Wang Nan wrote:
SNIP
> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
> index fb80c9e..0bc4f76 100644
> --- a/tools/perf/tests/bp_signal.c
> +++ b/tools/perf/tests/bp_signal.c
> @@ -29,14 +29,55 @@
>
> static int fd1;
> static int fd2;
> +static int fd3;
> static int overflows;
> +static int overflows_2;
> +
> +volatile long the_var;
> +
> +
please put comment in here explaning the assembly is used
to have watchpoint and breakpoint on single instruction
IIUC ;-)
thanks,
jirka
> +#if defined (__x86_64__)
> +extern void __test_function(volatile long *ptr);
> +asm (
> + ".globl __test_function\n"
> + "__test_function:\n"
> + "incq (%rdi)\n"
> + "ret\n");
> +#elif defined (__aarch64__)
> +extern void __test_function(volatile long *ptr);
> +asm (
> + ".globl __test_function\n"
> + "__test_function:\n"
> + "str x30, [x0]\n"
> + "ret\n");
> +
> +#else
> +static void __test_function(volatile long *ptr)
> +{
> + *ptr++;
> +}
> +#endif
>
> __attribute__ ((noinline))
> static int test_function(void)
> {
> + __test_function(&the_var);
> + the_var++;
> return time(NULL);
> }
SNIP
More information about the linux-arm-kernel
mailing list