1. 23 Jul, 2014 6 commits
  2. 21 Jul, 2014 1 commit
  3. 18 Jul, 2014 4 commits
  4. 17 Jul, 2014 1 commit
  5. 10 Jul, 2014 5 commits
  6. 09 Jul, 2014 2 commits
  7. 04 Jul, 2014 2 commits
  8. 18 Jun, 2014 4 commits
  9. 29 May, 2014 6 commits
    • Will Deacon's avatar
      arm64: mm: fix pmd_write CoW brokenness · ceb21835
      Will Deacon authored
      Commit 9c7e535f ("arm64: mm: Route pmd thp functions through pte
      equivalents") changed the pmd manipulator and accessor functions to
      convert the target pmd to a pte, process it with the pte functions, then
      convert it back. Along the way, we gained support for PTE_WRITE, however
      this is completely ignored by set_pmd_at, and so we fail to set the
      PMD_SECT_RDONLY for PMDs, resulting in all sorts of lovely failures (like
      CoW not working).
      
      Partially reverting the offending commit (by making use of
      PMD_SECT_RDONLY explicitly for pmd_{write,wrprotect,mkwrite} functions)
      leads to further issues because pmd_write can then return potentially
      incorrect values for page table entries marked as RDONLY, leading to
      BUG_ON(pmd_write(entry)) tripping under some THP workloads.
      
      This patch fixes the issue by routing set_pmd_at through set_pte_at,
      which correctly takes the PTE_WRITE flag into account. Given that
      THP mappings are always anonymous, the additional cache-flushing code
      in __sync_icache_dcache won't impose any significant overhead as the
      flush will be skipped.
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Acked-by: default avatarSteve Capper <steve.capper@arm.com>
      Tested-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      ceb21835
    • AKASHI Takahiro's avatar
      arm64: ftrace: Add system call tracepoint · 055b1212
      AKASHI Takahiro authored
      This patch allows system call entry or exit to be traced as ftrace events,
      ie. sys_enter_*/sys_exit_*, if CONFIG_FTRACE_SYSCALLS is enabled.
      Those events appear and can be controlled under
          ${sysfs}/tracing/events/syscalls/
      
      Please note that we can't trace compat system calls here because
      AArch32 mode does not share the same syscall table with AArch64.
      Just define ARCH_TRACE_IGNORE_COMPAT_SYSCALLS in order to avoid unexpected
      results (bogus syscalls reported or even hang-up).
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      055b1212
    • AKASHI Takahiro's avatar
      arm64: ftrace: Add CALLER_ADDRx macros · 3711784e
      AKASHI Takahiro authored
      CALLER_ADDRx returns caller's address at specified level in call stacks.
      They are used for several tracers like irqsoff and preemptoff.
      Strange to say, however, they are refered even without FTRACE.
      Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      3711784e
    • AKASHI Takahiro's avatar
      arm64: ftrace: Add dynamic ftrace support · bd7d38db
      AKASHI Takahiro authored
      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.
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      bd7d38db
    • AKASHI Takahiro's avatar
      arm64: Add ftrace support · 819e50e2
      AKASHI Takahiro authored
      This patch implements arm64 specific part to support function tracers,
      such as function (CONFIG_FUNCTION_TRACER), function_graph
      (CONFIG_FUNCTION_GRAPH_TRACER) and function profiler
      (CONFIG_FUNCTION_PROFILER).
      
      With 'function' tracer, all the functions in the kernel are traced with
      timestamps in ${sysfs}/tracing/trace. If function_graph tracer is
      specified, call graph is generated.
      
      The kernel must be compiled with -pg option so that _mcount() is inserted
      at the beginning of functions. This function is called on every function's
      entry as long as tracing is enabled.
      In addition, function_graph tracer also needs to be able to probe function's
      exit. ftrace_graph_caller() & return_to_handler do this by faking link
      register's value to intercept function's return path.
      
      More details on architecture specific requirements are described in
      Documentation/trace/ftrace-design.txt.
      Reviewed-by: default avatarGanapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      819e50e2
    • AKASHI Takahiro's avatar
      arm64: add __ASSEMBLY__ in asm/insn.h · 26e9b83a
      AKASHI Takahiro authored
      Since insn.h is indirectly included in asm/entry-ftrace.S,
      we need to exclude some declarations by __ASSEMBLY__.
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      26e9b83a
  10. 25 May, 2014 1 commit
  11. 23 May, 2014 3 commits
  12. 22 May, 2014 1 commit
  13. 16 May, 2014 3 commits
  14. 15 May, 2014 1 commit