All of lore.kernel.org
 help / color / mirror / Atom feed
From: takahiro.akashi@linaro.org (AKASHI Takahiro)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 0/6] arm64: Add ftrace support
Date: Thu, 24 Oct 2013 16:08:02 +0900	[thread overview]
Message-ID: <1382598488-13511-1-git-send-email-takahiro.akashi@linaro.org> (raw)

This is my second version of patchset for ftrace support.
Actually v1 was submitted serveral weeks ago, but is still moderated.
(Just ignore them for now.)
There is another implementation from Cavium network, but both works
are independent, and my code has additional system call trace support.

I confirmed that I could compile the patches on v3.12-rc4 by Linaro's
coming 2013.10 gcc (4.8.2), and that the kernel worked on Fast Model
with the following tracers:
     function tracer with dynamic ftrace
     function graph tracer with dynamic ftrace
     syscall tracepoint
     irqsoff & preemptirqsoff (which use CALLER_ADDRx)
Also verified with in-kernel tests, FTRACE_SELFTEST, FTRACE_STARTUP_TEST
and EVENT_TRACE_TEST_SYSCALLS.

Patch[3/6] has warnings from checkpatch, but they follow other arch's style.

Please be careful that host's elf.h must have AArch64 definitions,
EM_AARCH64 and R_AARCH64_ABS64, to build the kernel. See [4/6].

Issues
* Can we optimize register usages in asm (by not saving x0, x1 and x2)? [1/6]
* Do we need "fault protection" code in ftrace_modify_code()? [1/6]
  It exists in x86 and other architectures, but not in arm.
* We may be able to use aarch64_insn_patch_text_nosync() instead of
  ftrace_modify_code().[2/6] But the former function does not use
  probe_kernel_write(). Is this safe?

Changes from v1 to v2:
* splitted one patch into some pieces for easier review
  (especially function tracer + dynamic ftrace + CALLER_ADDRx)
* put return_address() in a separate file
* renamed __mcount to _mcount (it was my mistake)
* changed stackframe handling to get parent's frame pointer
* removed ARCH_SUPPORTS_FTRACE_OPS
* switched to "hotpatch" interfaces from Huawai
* revised descriptions in comments

AKASHI Takahiro (6):
  arm64: Add ftrace support
  arm64: ftrace: Add dynamic ftrace support
  arm64: ftrace: Add CALLER_ADDRx macros
  ftrace: Add arm64 support to recordmcount
  arm64: ftrace: Add system call tracepoint
  arm64: Add 'notrace' attribute to unwind_frame() for ftrace

 arch/arm64/Kconfig                   |    6 +
 arch/arm64/include/asm/ftrace.h      |   54 +++++++++
 arch/arm64/include/asm/syscall.h     |    1 +
 arch/arm64/include/asm/thread_info.h |    1 +
 arch/arm64/include/asm/unistd.h      |    2 +
 arch/arm64/kernel/Makefile           |    9 +-
 arch/arm64/kernel/arm64ksyms.c       |    4 +
 arch/arm64/kernel/entry-ftrace.S     |  211 ++++++++++++++++++++++++++++++++++
 arch/arm64/kernel/entry.S            |    1 +
 arch/arm64/kernel/ftrace.c           |  186 ++++++++++++++++++++++++++++++
 arch/arm64/kernel/ptrace.c           |   10 ++
 arch/arm64/kernel/return_address.c   |   55 +++++++++
 arch/arm64/kernel/stacktrace.c       |    2 +-
 scripts/recordmcount.c               |    4 +
 scripts/recordmcount.pl              |    5 +
 15 files changed, 549 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm64/include/asm/ftrace.h
 create mode 100644 arch/arm64/kernel/entry-ftrace.S
 create mode 100644 arch/arm64/kernel/ftrace.c
 create mode 100644 arch/arm64/kernel/return_address.c

-- 
1.7.9.5

             reply	other threads:[~2013-10-24  7:08 UTC|newest]

Thread overview: 235+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-24  7:08 AKASHI Takahiro [this message]
2013-10-24  7:08 ` [PATCH v2 1/6] arm64: Add ftrace support 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       ` [PATCH v5 2/7] arm64: ftrace: Add dynamic " AKASHI Takahiro
2014-02-28  5:18         ` 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=1382598488-13511-1-git-send-email-takahiro.akashi@linaro.org \
    --to=takahiro.akashi@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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: link
Be 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.