1. 14 12月, 2009 7 次提交
    • M
      microblaze: ftrace: add function graph support · a0d3e665
      Michal Simek 提交于
      For more information look at Documentation/trace folder.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      a0d3e665
    • M
      microblaze: ftrace: Add dynamic trace support · 7d241ff0
      Michal Simek 提交于
      With dynamic function tracer, by default, _mcount is defined as an
      "empty" function, it returns directly without any more action. When
      enabling it in user-space, it will jump to a real tracing
      function(ftrace_caller), and do the real job for us.
      
      Differ from the static function tracer, dynamic function tracer provides
      two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the
      tracing of some indicated kernel functions(set_ftrace_filter).
      
      In the kernel version, there is only one "_mcount" string for every
      kernel function, so, we just need to match this one in mcount_regex of
      scripts/recordmcount.pl.
      
      For more information please look at code and Documentation/trace folder.
      
      Steven ACK that scripts/recordmcount.pl part.
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      7d241ff0
    • M
      microblaze: ftrace: enable HAVE_FUNCTION_TRACE_MCOUNT_TEST · 6d9e60ce
      Michal Simek 提交于
      Implement MCOUNT_TEST in asm code - it is faster than use
      generic code
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      6d9e60ce
    • M
      microblaze: ftrace: add static function tracer · 2fd7c761
      Michal Simek 提交于
      If -pg of gcc is enabled with CONFIG_FUNCTION_TRACER=y. a calling to
      _mcount will be inserted into each kernel function. so, there is a
      possibility to trace the kernel functions in _mcount.
      
      This patch add the specific _mcount support for static function
      tracing. by default, ftrace_trace_function is initialized as
      ftrace_stub(an empty function), so, the default _mcount will introduce
      very little overhead. after enabling ftrace in user-space, it will jump
      to a real tracing function and do static function tracing for us.
      
      Commit message from Wu Zhangjin <wuzhangjin@gmail.com>
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      2fd7c761
    • M
      fb5a32dc
    • M
      microblaze: Lockdep support · bf2d8096
      Michal Simek 提交于
      Microblaze needs to do lock_init very soon because MMU init calls lock functions.
      
      Here is the explanation from Peter Zijlstra why we have to enable
      __ARCH_WANTS_INTERRUPTS_ON_CTSW.
      
      "So we schedule while holding rq->lock (for obvious reasons), but since
      lockdep tracks held locks per tasks, we need to transfer the held state
      from the prev to the next task. We do this by explicity calling
      spin_release(&rq->lock) in context_switch() right before switch_to(),
      and calling spin_acquire(&rq->lock) in
      finish_task_switch()->finish_lock_switch().
      
      Now, for some reason lockdep thinks that interrupts got enabled over the
      context switch (git grep __ARCH_WANTS_INTERRUPTS_ON_CTSW arch/microblaze
      doesn't seem to turn up anything).
      
      Clearly trying to acquire the rq->lock with interrupts enabled is a bad
      idea and lockdep warns you about this."
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      bf2d8096
    • M
      microblaze: Stack trace support · 24b45a12
      Michal Simek 提交于
      This is working implemetation but the problem is that
      Microblaze misses frame pointer that's why is there
      big loop which trace and show all addresses which are in text.
      It shows addresses which are in registers, etc.
      
      This is problem and this is the reason why all Microblaze
      traces are wrong. There is an option to do hacks and trace
      the kernel code but this is too complicated.
      Signed-off-by: NMichal Simek <monstr@monstr.eu>
      24b45a12
  2. 22 9月, 2009 1 次提交
  3. 06 7月, 2009 1 次提交
  4. 26 5月, 2009 1 次提交
  5. 21 5月, 2009 2 次提交
  6. 27 3月, 2009 1 次提交