Skip to content
Snippets Groups Projects
  1. Nov 09, 2010
  2. Oct 26, 2010
  3. Oct 20, 2010
  4. Sep 10, 2010
  5. Aug 12, 2010
  6. Aug 11, 2010
  7. Aug 10, 2010
  8. Jul 20, 2010
  9. Jul 11, 2010
  10. Jul 04, 2010
  11. Jun 11, 2010
  12. May 25, 2010
  13. May 19, 2010
  14. Apr 21, 2010
    • Frederic Weisbecker's avatar
      tracing: Dump either the oops's cpu source or all cpus buffers · cecbca96
      Frederic Weisbecker authored
      
      The ftrace_dump_on_oops kernel parameter, sysctl and sysrq let one
      dump every cpu buffers when an oops or panic happens.
      
      It's nice when you have few cpus but it may take ages if have many,
      plus you miss the real origin of the problem in all the cpu traces.
      
      Sometimes, all you need is to dump the cpu buffer that triggered the
      opps, most of the time it is our main interest.
      
      This patch modifies ftrace_dump_on_oops to handle this choice.
      
      The ftrace_dump_on_oops kernel parameter, when it comes alone, has
      the same behaviour than before. But ftrace_dump_on_oops=orig_cpu
      will only dump the buffer of the cpu that oops'ed.
      
      Similarly, sysctl kernel.ftrace_dump_on_oops=1 and
      echo 1 > /proc/sys/kernel/ftrace_dump_on_oops keep their previous
      behaviour. But setting 2 jumps into cpu origin dump mode.
      
      v2: Fix double setup
      v3: Fix spelling issues reported by Randy Dunlap
      v4: Also update __ftrace_dump in the selftests
      
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      cecbca96
  15. Apr 13, 2010
  16. Apr 07, 2010
  17. Feb 12, 2010
  18. Jan 16, 2010
    • Roland Dreier's avatar
      kernel.h: add BUILD_BUG_ON_NOT_POWER_OF_2() · cc8ef6eb
      Roland Dreier authored
      
      Add BUILD_BUG_ON_NOT_POWER_OF_2()
      
      When code relies on a constant being a power of 2:
      
      	#define FOO	512	/* must be a power of 2 */
      
      it would be nice to be able to do:
      
      	BUILD_BUG_ON(!is_power_of_2(FOO));
      
      However applying an inline function does not result in a compile-time
      constant that can be used with BUILD_BUG_ON(), so trying that gives
      results in:
      
      	error: bit-field '<anonymous>' width not an integer constant
      
      As suggested by akpm, rather than monkeying around with is_power_of_2()
      and risking gcc warts about constant expressions, just create a macro
      BUILD_BUG_ON_NOT_POWER_OF_2() to encapsulate this common requirement.
      
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      Cc: Bart Van Assche <bvanassche@acm.org>
      Cc: David Dillow <dave@thedillows.org>
      Cc: "Robert P. J. Day" <rpjday@crashcourse.ca>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cc8ef6eb
  19. Dec 28, 2009
  20. Dec 15, 2009
  21. Dec 11, 2009
    • Steven Rostedt's avatar
      tracing: Add trace_dump_stack() · 03889384
      Steven Rostedt authored
      
      I've been asked a few times about how to find out what is calling
      some location in the kernel. One way is to use dynamic function tracing
      and implement the func_stack_trace. But this only finds out who is
      calling a particular function. It does not tell you who is calling
      that function and entering a specific if conditional.
      
      I have myself implemented a quick version of trace_dump_stack() for
      this purpose a few times, and just needed it now. This is when I realized
      that this would be a good tool to have in the kernel like trace_printk().
      
      Using trace_dump_stack() is similar to dump_stack() except that it
      writes to the trace buffer instead and can be used in critical locations.
      
      For example:
      
      @@ -5485,8 +5485,12 @@ need_resched_nonpreemptible:
       	if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
       		if (unlikely(signal_pending_state(prev->state, prev)))
       			prev->state = TASK_RUNNING;
      -		else
      +		else {
       			deactivate_task(rq, prev, 1);
      +			trace_printk("Deactivating task %s:%d\n",
      +				     prev->comm, prev->pid);
      +			trace_dump_stack();
      +		}
       		switch_count = &prev->nvcsw;
       	}
      
      Produces:
      
                 <...>-3249  [001]   296.105269: schedule: Deactivating task ntpd:3249
                 <...>-3249  [001]   296.105270: <stack trace>
       => schedule
       => schedule_hrtimeout_range
       => poll_schedule_timeout
       => do_select
       => core_sys_select
       => sys_select
       => system_call_fastpath
      
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      03889384
  22. Oct 23, 2009
    • Christian Borntraeger's avatar
      ratelimit: Make suppressed output messages more useful · 5c828713
      Christian Borntraeger authored
      
      Today I got:
      
        [39648.224782] Registered led device: iwl-phy0::TX
        [40676.545099] __ratelimit: 246 callbacks suppressed
        [40676.545103] abcdef[23675]: segfault at 0 ...
      
      as you can see the ratelimit message contains a function prefix.
      Since this is always __ratelimit, this wont help much.
      
      This patch changes __ratelimit and printk_ratelimit to print the
      function name that calls ratelimit.
      
      This will pinpoint the responsible function, as long as not several
      different places call ratelimit with the same ratelimit state at
      the same time. In that case we catch only one random function that
      calls ratelimit after the wait period.
      
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Cc: Dave Young <hidave.darkstar@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      CC: Andrew Morton <akpm@linux-foundation.org>
      LKML-Reference: <200910231458.11832.borntraeger@de.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      5c828713
  23. Oct 11, 2009
  24. Sep 23, 2009
  25. Sep 22, 2009
    • Ingo Molnar's avatar
      printk: Remove ratelimit.h from kernel.h · 3fff4c42
      Ingo Molnar authored
      
      Decouple kernel.h from ratelimit.h: the global declaration of
      printk's ratelimit_state is not needed, and it leads to messy
      circular dependencies due to ratelimit.h's (new) adding of a
      spinlock_types.h include.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: David S. Miller <davem@davemloft.net>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3fff4c42
Loading