From: AKASHI Takahiro <takahiro.akashi@linaro.org> To: rostedt@goodmis.org, fweisbec@gmail.com, mingo@redhat.com, catalin.marinas@arm.com, will.deacon@arm.com, tim.bird@sonymobile.com Cc: gkulkarni@caviumnetworks.com, dsaxena@linaro.org, arndb@arndb.de, linux-arm-kernel@lists.infradead.org, linaro-kernel@lists.linaro.org, linux-kernel@vger.kernel.org, AKASHI Takahiro <takahiro.akashi@linaro.org> Subject: [PATCH v5 2/7] arm64: ftrace: Add dynamic ftrace support Date: Fri, 28 Feb 2014 14:18:39 +0900 [thread overview] Message-ID: <1393564724-3966-3-git-send-email-takahiro.akashi@linaro.org> (raw) In-Reply-To: <1393564724-3966-1-git-send-email-takahiro.akashi@linaro.org> This patch allows "dynamic ftrace" if CONFIG_DYNAMIC_FTRACE is enabled. Here we can turn on and off tracing dynamically per-function base. On arm64, this is done by patching single branch instruction to _mcount() inserted by gcc -pg option. The branch is replaced to NOP initially at kernel start up, and later on, NOP to branch to ftrace_caller() when enabled or branch to NOP when disabled. Please note that ftrace_caller() is a counterpart of _mcount() in case of 'static' ftrace. More details on architecture specific requirements are described in Documentation/trace/ftrace-design.txt. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> --- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/ftrace.h | 15 +++++ arch/arm64/kernel/entry-ftrace.S | 43 +++++++++++++++ arch/arm64/kernel/ftrace.c | 113 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 5783641..b176bc0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -32,6 +32,7 @@ config ARM64 select HAVE_DMA_API_DEBUG select HAVE_DMA_ATTRS select HAVE_DMA_CONTIGUOUS + select HAVE_DYNAMIC_FTRACE select HAVE_EFFICIENT_UNALIGNED_ACCESS select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER diff --git a/arch/arm64/include/asm/ftrace.h b/arch/arm64/include/asm/ftrace.h index 58ea595..ed5c448 100644 --- a/arch/arm64/include/asm/ftrace.h +++ b/arch/arm64/include/asm/ftrace.h @@ -18,6 +18,21 @@ #ifndef __ASSEMBLY__ extern void _mcount(unsigned long); + +struct dyn_arch_ftrace { + /* No extra data needed for arm64 */ +}; + +extern unsigned long ftrace_graph_call; + +static inline unsigned long ftrace_call_adjust(unsigned long addr) +{ + /* + * addr is the address of the mcount call instruction. + * recordmcount does the necessary offset calculation. + */ + return addr; +} #endif /* __ASSEMBLY__ */ #endif /* __ASM_FTRACE_H */ diff --git a/arch/arm64/kernel/entry-ftrace.S b/arch/arm64/kernel/entry-ftrace.S index 0e5b8b0..c012cf0 100644 --- a/arch/arm64/kernel/entry-ftrace.S +++ b/arch/arm64/kernel/entry-ftrace.S @@ -85,6 +85,7 @@ add \reg, \reg, #8 .endm +#ifndef CONFIG_DYNAMIC_FTRACE /* * void _mcount(unsigned long return_address) * @return_address: return address to instrumented function @@ -133,6 +134,48 @@ skip_ftrace_call: #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ ENDPROC(_mcount) +#else /* CONFIG_DYNAMIC_FTRACE */ +/* + * _mcount() is used to build the kernel with -pg option, but all the branch + * instructions to _mcount() are replaced to NOP initially at kernel start up, + * and later on, NOP to branch to ftrace_caller() when enabled or branch to + * NOP when disabled per-function base. + */ +ENTRY(_mcount) + ret +ENDPROC(_mcount) + +/* + * void ftrace_caller(unsigned long return_address) + * @return_address: return address to instrumented function + * + * This function is a counterpart of _mcount() in 'static' ftrace, and + * makes calls to: + * - tracer function to probe instrumented function's entry, + * - ftrace_graph_caller to set up an exit hook + */ +ENTRY(ftrace_caller) + mcount_enter + + mcount_get_pc0 x0 // function's pc + mcount_get_lr x1 // function's lr + + .global ftrace_call +ftrace_call: // tracer(pc, lr); + nop // This will be replaced with "bl xxx" + // where xxx can be any kind of tracer. + +#ifdef CONFIG_FUNCTION_GRAPH_TRACER + .global ftrace_graph_call +ftrace_graph_call: // ftrace_graph_caller(); + nop // If enabled, this will be replaced + // "b ftrace_graph_caller" +#endif + + mcount_exit +ENDPROC(ftrace_caller) +#endif /* CONFIG_DYNAMIC_FTRACE */ + ENTRY(ftrace_stub) ret ENDPROC(ftrace_stub) diff --git a/arch/arm64/kernel/ftrace.c b/arch/arm64/kernel/ftrace.c index a559ab8..8c26476 100644 --- a/arch/arm64/kernel/ftrace.c +++ b/arch/arm64/kernel/ftrace.c @@ -17,6 +17,89 @@ #include <asm/ftrace.h> #include <asm/insn.h> +#ifdef CONFIG_DYNAMIC_FTRACE +/* + * Replace a single instruction, which may be a branch or NOP. + * If @validate == true, a replaced instruction is checked against 'old'. + */ +static int ftrace_modify_code(unsigned long pc, unsigned int old, + unsigned int new, bool validate) +{ + unsigned int replaced; + + /* + * Note: + * Due to modules and __init, code can disappear and change, + * we need to protect against faulting as well as code changing. + * We do this by aarch64_insn_*() which use the probe_kernel_*(). + * + * No lock is held here because all the modifications are run + * through stop_machine(). + */ + if (validate) { + if (aarch64_insn_read((void *)pc, &replaced)) + return -EFAULT; + + if (replaced != old) + return -EINVAL; + } + if (aarch64_insn_patch_text_nosync((void *)pc, new)) + return -EPERM; + + return 0; +} + +/* + * Replace tracer function in ftrace_caller() + */ +int ftrace_update_ftrace_func(ftrace_func_t func) +{ + unsigned long pc; + unsigned int new; + + pc = (unsigned long)&ftrace_call; + new = aarch64_insn_gen_branch_imm(pc, (unsigned long)func, true); + + return ftrace_modify_code(pc, 0, new, false); +} + +/* + * Turn on the call to ftrace_caller() in instrumented function + */ +int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) +{ + unsigned long pc = rec->ip; + unsigned int old, new; + + old = aarch64_insn_gen_nop(); + new = aarch64_insn_gen_branch_imm(pc, addr, true); + + return ftrace_modify_code(pc, old, new, true); +} + +/* + * Turn off the call to ftrace_caller() in instrumented function + */ +int ftrace_make_nop(struct module *mod, + struct dyn_ftrace *rec, unsigned long addr) +{ + unsigned long pc = rec->ip; + unsigned int old, new; + + old = aarch64_insn_gen_branch_imm(pc, addr, true); + new = aarch64_insn_gen_nop(); + + return ftrace_modify_code(pc, old, new, true); +} + +int __init ftrace_dyn_arch_init(void *data) +{ + *(unsigned long *)data = 0; + + return 0; +} +#endif /* CONFIG_DYNAMIC_FTRACE */ + #ifdef CONFIG_FUNCTION_GRAPH_TRACER /* * function_graph tracer expects ftrace_return_to_handler() to be called @@ -61,4 +144,34 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr, return; } } + +#ifdef CONFIG_DYNAMIC_FTRACE +/* + * Turn on/off the call to ftrace_graph_caller() in ftrace_caller() + * depending on @enable. + */ +static int ftrace_modify_graph_caller(bool enable) +{ + unsigned long pc = (unsigned long)&ftrace_graph_call; + unsigned int branch, nop, old, new; + + branch = aarch64_insn_gen_branch_imm(pc, + (unsigned long)ftrace_graph_caller, false); + nop = aarch64_insn_gen_nop(); + old = enable ? nop : branch; + new = enable ? branch : nop; + + return ftrace_modify_code(pc, old, new, true); +} + +int ftrace_enable_ftrace_graph_caller(void) +{ + return ftrace_modify_graph_caller(true); +} + +int ftrace_disable_ftrace_graph_caller(void) +{ + return ftrace_modify_graph_caller(false); +} +#endif /* CONFIG_DYNAMIC_FTRACE */ #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: takahiro.akashi@linaro.org (AKASHI Takahiro) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 2/7] arm64: ftrace: Add dynamic ftrace support Date: Fri, 28 Feb 2014 14:18:39 +0900 [thread overview] Message-ID: <1393564724-3966-3-git-send-email-takahiro.akashi@linaro.org> (raw) In-Reply-To: <1393564724-3966-1-git-send-email-takahiro.akashi@linaro.org> This patch allows "dynamic ftrace" if CONFIG_DYNAMIC_FTRACE is enabled. Here we can turn on and off tracing dynamically per-function base. On arm64, this is done by patching single branch instruction to _mcount() inserted by gcc -pg option. The branch is replaced to NOP initially at kernel start up, and later on, NOP to branch to ftrace_caller() when enabled or branch to NOP when disabled. Please note that ftrace_caller() is a counterpart of _mcount() in case of 'static' ftrace. More details on architecture specific requirements are described in Documentation/trace/ftrace-design.txt. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> --- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/ftrace.h | 15 +++++ arch/arm64/kernel/entry-ftrace.S | 43 +++++++++++++++ arch/arm64/kernel/ftrace.c | 113 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 5783641..b176bc0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -32,6 +32,7 @@ config ARM64 select HAVE_DMA_API_DEBUG select HAVE_DMA_ATTRS select HAVE_DMA_CONTIGUOUS + select HAVE_DYNAMIC_FTRACE select HAVE_EFFICIENT_UNALIGNED_ACCESS select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER diff --git a/arch/arm64/include/asm/ftrace.h b/arch/arm64/include/asm/ftrace.h index 58ea595..ed5c448 100644 --- a/arch/arm64/include/asm/ftrace.h +++ b/arch/arm64/include/asm/ftrace.h @@ -18,6 +18,21 @@ #ifndef __ASSEMBLY__ extern void _mcount(unsigned long); + +struct dyn_arch_ftrace { + /* No extra data needed for arm64 */ +}; + +extern unsigned long ftrace_graph_call; + +static inline unsigned long ftrace_call_adjust(unsigned long addr) +{ + /* + * addr is the address of the mcount call instruction. + * recordmcount does the necessary offset calculation. + */ + return addr; +} #endif /* __ASSEMBLY__ */ #endif /* __ASM_FTRACE_H */ diff --git a/arch/arm64/kernel/entry-ftrace.S b/arch/arm64/kernel/entry-ftrace.S index 0e5b8b0..c012cf0 100644 --- a/arch/arm64/kernel/entry-ftrace.S +++ b/arch/arm64/kernel/entry-ftrace.S @@ -85,6 +85,7 @@ add \reg, \reg, #8 .endm +#ifndef CONFIG_DYNAMIC_FTRACE /* * void _mcount(unsigned long return_address) * @return_address: return address to instrumented function @@ -133,6 +134,48 @@ skip_ftrace_call: #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ ENDPROC(_mcount) +#else /* CONFIG_DYNAMIC_FTRACE */ +/* + * _mcount() is used to build the kernel with -pg option, but all the branch + * instructions to _mcount() are replaced to NOP initially at kernel start up, + * and later on, NOP to branch to ftrace_caller() when enabled or branch to + * NOP when disabled per-function base. + */ +ENTRY(_mcount) + ret +ENDPROC(_mcount) + +/* + * void ftrace_caller(unsigned long return_address) + * @return_address: return address to instrumented function + * + * This function is a counterpart of _mcount() in 'static' ftrace, and + * makes calls to: + * - tracer function to probe instrumented function's entry, + * - ftrace_graph_caller to set up an exit hook + */ +ENTRY(ftrace_caller) + mcount_enter + + mcount_get_pc0 x0 // function's pc + mcount_get_lr x1 // function's lr + + .global ftrace_call +ftrace_call: // tracer(pc, lr); + nop // This will be replaced with "bl xxx" + // where xxx can be any kind of tracer. + +#ifdef CONFIG_FUNCTION_GRAPH_TRACER + .global ftrace_graph_call +ftrace_graph_call: // ftrace_graph_caller(); + nop // If enabled, this will be replaced + // "b ftrace_graph_caller" +#endif + + mcount_exit +ENDPROC(ftrace_caller) +#endif /* CONFIG_DYNAMIC_FTRACE */ + ENTRY(ftrace_stub) ret ENDPROC(ftrace_stub) diff --git a/arch/arm64/kernel/ftrace.c b/arch/arm64/kernel/ftrace.c index a559ab8..8c26476 100644 --- a/arch/arm64/kernel/ftrace.c +++ b/arch/arm64/kernel/ftrace.c @@ -17,6 +17,89 @@ #include <asm/ftrace.h> #include <asm/insn.h> +#ifdef CONFIG_DYNAMIC_FTRACE +/* + * Replace a single instruction, which may be a branch or NOP. + * If @validate == true, a replaced instruction is checked against 'old'. + */ +static int ftrace_modify_code(unsigned long pc, unsigned int old, + unsigned int new, bool validate) +{ + unsigned int replaced; + + /* + * Note: + * Due to modules and __init, code can disappear and change, + * we need to protect against faulting as well as code changing. + * We do this by aarch64_insn_*() which use the probe_kernel_*(). + * + * No lock is held here because all the modifications are run + * through stop_machine(). + */ + if (validate) { + if (aarch64_insn_read((void *)pc, &replaced)) + return -EFAULT; + + if (replaced != old) + return -EINVAL; + } + if (aarch64_insn_patch_text_nosync((void *)pc, new)) + return -EPERM; + + return 0; +} + +/* + * Replace tracer function in ftrace_caller() + */ +int ftrace_update_ftrace_func(ftrace_func_t func) +{ + unsigned long pc; + unsigned int new; + + pc = (unsigned long)&ftrace_call; + new = aarch64_insn_gen_branch_imm(pc, (unsigned long)func, true); + + return ftrace_modify_code(pc, 0, new, false); +} + +/* + * Turn on the call to ftrace_caller() in instrumented function + */ +int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) +{ + unsigned long pc = rec->ip; + unsigned int old, new; + + old = aarch64_insn_gen_nop(); + new = aarch64_insn_gen_branch_imm(pc, addr, true); + + return ftrace_modify_code(pc, old, new, true); +} + +/* + * Turn off the call to ftrace_caller() in instrumented function + */ +int ftrace_make_nop(struct module *mod, + struct dyn_ftrace *rec, unsigned long addr) +{ + unsigned long pc = rec->ip; + unsigned int old, new; + + old = aarch64_insn_gen_branch_imm(pc, addr, true); + new = aarch64_insn_gen_nop(); + + return ftrace_modify_code(pc, old, new, true); +} + +int __init ftrace_dyn_arch_init(void *data) +{ + *(unsigned long *)data = 0; + + return 0; +} +#endif /* CONFIG_DYNAMIC_FTRACE */ + #ifdef CONFIG_FUNCTION_GRAPH_TRACER /* * function_graph tracer expects ftrace_return_to_handler() to be called @@ -61,4 +144,34 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr, return; } } + +#ifdef CONFIG_DYNAMIC_FTRACE +/* + * Turn on/off the call to ftrace_graph_caller() in ftrace_caller() + * depending on @enable. + */ +static int ftrace_modify_graph_caller(bool enable) +{ + unsigned long pc = (unsigned long)&ftrace_graph_call; + unsigned int branch, nop, old, new; + + branch = aarch64_insn_gen_branch_imm(pc, + (unsigned long)ftrace_graph_caller, false); + nop = aarch64_insn_gen_nop(); + old = enable ? nop : branch; + new = enable ? branch : nop; + + return ftrace_modify_code(pc, old, new, true); +} + +int ftrace_enable_ftrace_graph_caller(void) +{ + return ftrace_modify_graph_caller(true); +} + +int ftrace_disable_ftrace_graph_caller(void) +{ + return ftrace_modify_graph_caller(false); +} +#endif /* CONFIG_DYNAMIC_FTRACE */ #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ -- 1.7.9.5
next prev parent reply other threads:[~2014-02-28 5:19 UTC|newest] Thread overview: 235+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-10-24 7:08 [PATCH v2 0/6] arm64: Add ftrace support AKASHI Takahiro 2013-10-24 7:08 ` [PATCH v2 1/6] " AKASHI Takahiro 2013-10-24 7:08 ` [PATCH v2 2/6] arm64: ftrace: Add dynamic " AKASHI Takahiro 2013-10-24 7:08 ` [PATCH v2 3/6] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2013-10-24 7:08 ` [PATCH v2 4/6] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2013-10-24 7:08 ` [PATCH v2 5/6] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2013-10-24 7:08 ` [PATCH v2 6/6] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 0/6] arm64: Add ftrace support AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 1/6] " AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-10 15:03 ` Arnd Bergmann 2014-02-10 15:03 ` Arnd Bergmann 2014-02-10 15:19 ` Steven Rostedt 2014-02-10 15:19 ` Steven Rostedt [not found] ` <CAB5YjtCr2KL_q1FF8kO_VKe+feg7f9qFRKtwf3xj2h0ENwuB5g@mail.gmail.com> 2014-02-12 11:03 ` Arnd Bergmann 2014-02-12 11:03 ` Arnd Bergmann 2014-02-17 18:12 ` Will Deacon 2014-02-17 18:12 ` Will Deacon 2014-02-19 10:46 ` AKASHI Takahiro 2014-02-19 10:46 ` AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 2/6] arm64: ftrace: Add dynamic " AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 3/6] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 4/6] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 5/6] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-17 19:29 ` Will Deacon 2014-02-17 19:29 ` Will Deacon 2014-02-19 10:48 ` AKASHI Takahiro 2014-02-19 10:48 ` AKASHI Takahiro 2014-02-07 10:18 ` [PATCH v3 6/6] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-02-07 10:18 ` AKASHI Takahiro 2014-02-10 14:21 ` [PATCH v3 0/6] arm64: Add ftrace support Kulkarni, Ganapatrao 2014-02-10 14:21 ` Kulkarni, Ganapatrao 2014-02-25 9:23 ` [PATCH v4 0/7] " AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 1/7] " AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 15:38 ` Kulkarni, Ganapatrao 2014-02-25 15:38 ` Kulkarni, Ganapatrao 2014-02-28 5:06 ` AKASHI Takahiro 2014-02-28 5:06 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 2/7] arm64: ftrace: Add dynamic " AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 3/7] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 4/7] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 5/7] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 6/7] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-25 9:23 ` [PATCH v4 7/7] arm64: add __ASSEMBLY__ in asm/insn.h AKASHI Takahiro 2014-02-25 9:23 ` AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 0/7] arm64: Add ftrace support AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 1/7] " AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro [this message] 2014-02-28 5:18 ` [PATCH v5 2/7] arm64: ftrace: Add dynamic " AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 3/7] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 4/7] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 5/7] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 6/7] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-02-28 5:18 ` [PATCH v5 7/7] arm64: add __ASSEMBLY__ in asm/insn.h AKASHI Takahiro 2014-02-28 5:18 ` AKASHI Takahiro 2014-03-11 14:35 ` [PATCH v5 0/7] arm64: Add ftrace support Will Deacon 2014-03-11 14:35 ` Will Deacon 2014-03-12 1:47 ` AKASHI Takahiro 2014-03-12 1:47 ` AKASHI Takahiro 2014-03-12 1:58 ` Steven Rostedt 2014-03-12 1:58 ` Steven Rostedt 2014-03-12 2:02 ` Steven Rostedt 2014-03-12 2:02 ` Steven Rostedt 2014-03-13 10:13 ` [PATCH v6 " AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 10:13 ` [PATCH v6 1/7] arm64: add __ASSEMBLY__ in asm/insn.h AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 12:19 ` Will Deacon 2014-03-13 12:19 ` Will Deacon 2014-03-13 10:13 ` [PATCH v6 2/7] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 12:19 ` Will Deacon 2014-03-13 12:19 ` Will Deacon 2014-03-13 10:13 ` [PATCH v6 3/7] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 12:38 ` Will Deacon 2014-03-13 12:38 ` Will Deacon 2014-03-13 14:57 ` AKASHI Takahiro 2014-03-13 14:57 ` AKASHI Takahiro 2014-03-13 16:05 ` Will Deacon 2014-03-13 16:05 ` Will Deacon 2014-03-13 10:13 ` [PATCH v6 4/7] arm64: Add ftrace support AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 17:08 ` Will Deacon 2014-03-13 17:08 ` Will Deacon 2014-03-13 18:27 ` Steven Rostedt 2014-03-13 18:27 ` Steven Rostedt 2014-03-13 18:37 ` Will Deacon 2014-03-13 18:37 ` Will Deacon 2014-03-13 18:49 ` Steven Rostedt 2014-03-13 18:49 ` Steven Rostedt 2014-03-14 4:45 ` AKASHI Takahiro 2014-03-14 4:45 ` AKASHI Takahiro 2014-03-14 10:07 ` Will Deacon 2014-03-14 10:07 ` Will Deacon 2014-03-14 16:13 ` AKASHI Takahiro 2014-03-14 16:13 ` AKASHI Takahiro 2014-03-13 10:13 ` [PATCH v6 5/7] arm64: ftrace: Add dynamic " AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 18:10 ` Will Deacon 2014-03-13 18:10 ` Will Deacon 2014-03-13 18:33 ` Steven Rostedt 2014-03-13 18:33 ` Steven Rostedt 2014-03-14 5:28 ` AKASHI Takahiro 2014-03-14 5:28 ` AKASHI Takahiro 2014-03-14 5:26 ` AKASHI Takahiro 2014-03-14 5:26 ` AKASHI Takahiro 2014-03-13 10:13 ` [PATCH v6 6/7] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 15:54 ` Will Deacon 2014-03-13 15:54 ` Will Deacon 2014-03-13 18:07 ` Steven Rostedt 2014-03-13 18:07 ` Steven Rostedt 2014-03-14 4:55 ` AKASHI Takahiro 2014-03-14 4:55 ` AKASHI Takahiro 2014-03-14 3:00 ` AKASHI Takahiro 2014-03-14 3:00 ` AKASHI Takahiro 2014-03-14 10:09 ` Will Deacon 2014-03-14 10:09 ` Will Deacon 2014-03-14 16:15 ` AKASHI Takahiro 2014-03-14 16:15 ` AKASHI Takahiro 2014-03-13 10:13 ` [PATCH v6 7/7] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2014-03-13 10:13 ` AKASHI Takahiro 2014-03-13 16:25 ` Will Deacon 2014-03-13 16:25 ` Will Deacon 2014-03-14 3:50 ` AKASHI Takahiro 2014-03-14 3:50 ` AKASHI Takahiro 2014-03-15 5:40 ` [PATCH v7 0/7] arm64: Add ftrace support AKASHI Takahiro 2014-03-15 5:40 ` AKASHI Takahiro 2014-03-15 5:40 ` [PATCH v7 1/7] arm64: add __ASSEMBLY__ in asm/insn.h AKASHI Takahiro 2014-03-15 5:40 ` AKASHI Takahiro 2014-03-15 5:40 ` [PATCH v7 2/7] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-03-15 5:40 ` AKASHI Takahiro 2014-03-15 5:40 ` [PATCH v7 3/7] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2014-03-15 5:40 ` AKASHI Takahiro 2014-04-16 13:31 ` Will Deacon 2014-04-16 13:31 ` Will Deacon 2014-04-30 9:54 ` [PATCH v8 0/8] arm64: Add ftrace support AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-04-30 9:54 ` [PATCH v8 1/8] ftrace: make CALLER_ADDRx macros more generic AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-05-02 18:13 ` Will Deacon 2014-05-02 18:13 ` Will Deacon 2014-05-02 19:02 ` Steven Rostedt 2014-05-02 19:02 ` Steven Rostedt 2014-05-02 19:03 ` Steven Rostedt 2014-05-02 19:03 ` Steven Rostedt 2014-05-02 19:19 ` Steven Rostedt 2014-05-02 19:19 ` Steven Rostedt 2014-05-12 15:58 ` Will Deacon 2014-05-12 15:58 ` Will Deacon 2014-05-12 16:05 ` Steven Rostedt 2014-05-12 16:05 ` Steven Rostedt 2014-05-12 16:12 ` Will Deacon 2014-05-12 16:12 ` Will Deacon 2014-05-12 17:23 ` Steven Rostedt 2014-05-12 17:23 ` Steven Rostedt 2014-05-20 11:29 ` AKASHI Takahiro 2014-05-20 11:29 ` AKASHI Takahiro 2014-05-20 11:31 ` [PATCH v8_1] " AKASHI Takahiro 2014-05-20 11:31 ` AKASHI Takahiro 2014-06-11 12:34 ` [PATCH v8 1/8] " Geert Uytterhoeven 2014-06-11 12:34 ` Geert Uytterhoeven 2014-06-11 12:34 ` Geert Uytterhoeven 2014-06-11 13:23 ` [PATCH] arm/ftrace: Fix function_return_addr() to function_return_address() Steven Rostedt 2014-06-11 13:23 ` Steven Rostedt 2014-06-11 13:23 ` Steven Rostedt 2014-06-11 13:38 ` Geert Uytterhoeven 2014-06-11 13:38 ` Geert Uytterhoeven 2014-06-11 13:38 ` Geert Uytterhoeven 2014-06-11 13:44 ` Steven Rostedt 2014-06-11 13:44 ` Steven Rostedt 2014-06-11 13:44 ` Steven Rostedt 2014-04-30 9:54 ` [PATCH v8 2/8] arm64: add __ASSEMBLY__ in asm/insn.h AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-04-30 9:54 ` [PATCH v8 3/8] arm64: Add 'notrace' attribute to unwind_frame() for ftrace AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-04-30 9:54 ` [PATCH v8 4/8] ftrace: Add arm64 support to recordmcount AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-04-30 9:54 ` [PATCH v8 5/8] arm64: Add ftrace support AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-05-28 20:19 ` Mark Brown 2014-05-28 20:19 ` Mark Brown 2014-05-29 8:07 ` Will Deacon 2014-05-29 8:07 ` Will Deacon 2014-05-29 9:47 ` Mark Brown 2014-05-29 9:47 ` Mark Brown 2014-04-30 9:54 ` [PATCH v8 6/8] arm64: ftrace: Add dynamic " AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-04-30 9:54 ` [PATCH v8 7/8] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-04-30 9:54 ` [PATCH v8 8/8] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2014-04-30 9:54 ` AKASHI Takahiro 2014-03-15 5:45 ` [PATCH v7 4/7] arm64: Add ftrace support AKASHI Takahiro 2014-03-15 5:45 ` AKASHI Takahiro 2014-04-16 13:45 ` Will Deacon 2014-04-16 13:45 ` Will Deacon 2014-03-15 5:45 ` [PATCH v7 5/7] arm64: ftrace: Add dynamic " AKASHI Takahiro 2014-03-15 5:45 ` AKASHI Takahiro 2014-04-16 13:48 ` Will Deacon 2014-04-16 13:48 ` Will Deacon 2014-03-15 5:45 ` [PATCH v7 6/7] arm64: ftrace: Add CALLER_ADDRx macros AKASHI Takahiro 2014-03-15 5:45 ` AKASHI Takahiro 2014-04-16 13:52 ` Will Deacon 2014-04-16 13:52 ` Will Deacon 2014-04-28 10:41 ` AKASHI Takahiro 2014-04-28 10:41 ` AKASHI Takahiro 2014-05-27 13:10 ` [for-next][PATCH] ftrace: Make CALLER_ADDRx macros more generic Steven Rostedt 2014-05-27 13:10 ` Steven Rostedt 2014-05-27 18:49 ` Will Deacon 2014-05-27 18:49 ` Will Deacon 2014-05-29 5:27 ` AKASHI Takahiro 2014-05-29 5:27 ` AKASHI Takahiro 2014-05-29 8:10 ` Will Deacon 2014-05-29 8:10 ` Will Deacon 2014-03-15 5:45 ` [PATCH v7 7/7] arm64: ftrace: Add system call tracepoint AKASHI Takahiro 2014-03-15 5:45 ` AKASHI Takahiro
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1393564724-3966-3-git-send-email-takahiro.akashi@linaro.org \ --to=takahiro.akashi@linaro.org \ --cc=arndb@arndb.de \ --cc=catalin.marinas@arm.com \ --cc=dsaxena@linaro.org \ --cc=fweisbec@gmail.com \ --cc=gkulkarni@caviumnetworks.com \ --cc=linaro-kernel@lists.linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=rostedt@goodmis.org \ --cc=tim.bird@sonymobile.com \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.