linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Christoph Hellwig <hch@infradead.org>,
	Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	Gregory Haskins <ghaskins@novell.com>,
	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	Thomas Gleixner <tglx@linutronix.de>,
	Tim Bird <tim.bird@am.sony.com>, Sam Ravnborg <sam@ravnborg.org>,
	"Frank Ch. Eigler" <fche@redhat.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	John Stultz <johnstul@us.ibm.com>,
	Arjan van de Ven <arjan@infradead.org>,
	Steven Rostedt <srostedt@redhat.com>
Subject: Re: [PATCH 19/20 -v5] Trace irq disabled critical timings
Date: Wed, 23 Jan 2008 11:53:53 -0500	[thread overview]
Message-ID: <20080123165353.GA12598@goodmis.org> (raw)
In-Reply-To: <20080123160444.197366580@goodmis.org>

On Wed, Jan 23, 2008 at 11:02:55AM -0500, Steven Rostedt wrote:
> This patch adds latency tracing for critical timings
> (how long interrupts are disabled for).
> 
>  "irqsoff" is added to /debugfs/tracing/available_tracers
> 

> Index: linux-mcount.git/kernel/lockdep.c
> ===================================================================
> --- linux-mcount.git.orig/kernel/lockdep.c	2008-01-23 10:26:11.000000000 -0500
> +++ linux-mcount.git/kernel/lockdep.c	2008-01-23 10:27:53.000000000 -0500
> @@ -39,6 +39,7 @@
>  #include <linux/irqflags.h>
>  #include <linux/utsname.h>
>  #include <linux/hash.h>
> +#include <linux/mcount.h>
>  
>  #include <asm/sections.h>
>  
> @@ -2009,7 +2010,7 @@ void early_boot_irqs_on(void)
>  /*
>   * Hardirqs will be enabled:
>   */
> -void trace_hardirqs_on(void)
> +void notrace trace_hardirqs_on_caller(unsigned long a0)
>  {
>  	struct task_struct *curr = current;
>  	unsigned long ip;
> @@ -2050,14 +2051,24 @@ void trace_hardirqs_on(void)
>  	curr->hardirq_enable_ip = ip;
>  	curr->hardirq_enable_event = ++curr->irq_events;
>  	debug_atomic_inc(&hardirqs_on_events);
> +	time_hardirqs_on(CALLER_ADDR0, a0);
>  }
> +EXPORT_SYMBOL(trace_hardirqs_on_caller);
>  
> +void notrace trace_hardirqs_on(void) {
> +	trace_hardirqs_on_caller(CALLER_ADDR0);
> +}
>  EXPORT_SYMBOL(trace_hardirqs_on);
>  

vvvvvvvvvvvvvvvv

> +void notrace trace_hardirqs_off(void) {
> +	trace_hardirqs_off_caller(CALLER_ADDR0);
> +}
> +EXPORT_SYMBOL(trace_hardirqs_off);
> +

^^^^^^^^^^^^^^^^

>  /*
>   * Hardirqs were disabled:
>   */
> -void trace_hardirqs_off(void)
> +void notrace trace_hardirqs_off_caller(unsigned long a0)
>  {
>  	struct task_struct *curr = current;
>  
> @@ -2075,10 +2086,15 @@ void trace_hardirqs_off(void)
>  		curr->hardirq_disable_ip = _RET_IP_;
>  		curr->hardirq_disable_event = ++curr->irq_events;
>  		debug_atomic_inc(&hardirqs_off_events);
> +		time_hardirqs_off(CALLER_ADDR0, a0);
>  	} else
>  		debug_atomic_inc(&redundant_hardirqs_off);
>  }
>  


> +void notrace trace_hardirqs_off(void) {
> +	trace_hardirqs_off_caller(CALLER_ADDR0);
> +}
> +
>  EXPORT_SYMBOL(trace_hardirqs_off);
> 


Bah, I didn't refresh quilt! I'll update the website with a -v5a with
this fix.

-- Steve

>  /*

  reply	other threads:[~2008-01-23 16:54 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-23 16:02 [PATCH 00/20 -v5] mcount and latency tracing utility -v5 Steven Rostedt
2008-01-23 16:02 ` [PATCH 01/20 -v5] printk - dont wakeup klogd with interrupts disabled Steven Rostedt
2008-01-23 17:06   ` Daniel Walker
2008-01-23 17:25     ` Mathieu Desnoyers
2008-01-23 17:49       ` Tim Bird
2008-01-24 10:35       ` Pavel Machek
2008-01-23 17:27     ` Steven Rostedt
2008-01-23 17:32       ` Mathieu Desnoyers
2008-01-23 17:43       ` Daniel Walker
2008-01-23 18:18         ` Steven Rostedt
2008-01-23 18:28           ` Daniel Walker
2008-01-23 18:43             ` Steven Rostedt
2008-01-23 18:50               ` Daniel Walker
2008-01-23 19:59                 ` Daniel Walker
2008-01-24 22:42           ` [PATCH] defer printks in irqs Tim Bird
2008-01-24 22:48             ` Peter Zijlstra
2008-01-24 23:23               ` Tim Bird
2008-01-27  6:01                 ` Andrew Morton
2008-01-28 21:14                   ` Tim Bird
2008-01-24 10:36       ` [PATCH 01/20 -v5] printk - dont wakeup klogd with interrupts disabled Pavel Machek
2008-01-23 16:02 ` [PATCH 02/20 -v5] Add basic support for gcc profiler instrumentation Steven Rostedt
2008-01-23 16:02 ` [PATCH 03/20 -v5] Annotate core code that should not be traced Steven Rostedt
2008-01-23 16:02 ` [PATCH 04/20 -v5] x86_64: notrace annotations Steven Rostedt
2008-01-23 16:02 ` [PATCH 05/20 -v5] add notrace annotations to vsyscall Steven Rostedt
2008-01-23 16:02 ` [PATCH 06/20 -v5] add notrace annotations for NMI routines Steven Rostedt
2008-01-23 21:31   ` Mathieu Desnoyers
2008-01-23 21:58     ` Steven Rostedt
2008-01-26  5:25     ` Steven Rostedt
2008-01-28 11:51       ` Jan Kiszka
2008-01-28 12:15         ` Steven Rostedt
2008-01-23 16:02 ` [PATCH 07/20 -v5] handle accurate time keeping over long delays Steven Rostedt
2008-01-23 16:02 ` [PATCH 08/20 -v5] initialize the clock source to jiffies clock Steven Rostedt
2008-01-23 16:40   ` Tim Bird
2008-01-23 16:02 ` [PATCH 09/20 -v5] add get_monotonic_cycles Steven Rostedt
2008-01-23 16:02 ` [PATCH 10/20 -v5] add notrace annotations to timing events Steven Rostedt
2008-01-23 16:02 ` [PATCH 11/20 -v5] mcount based trace in the form of a header file library Steven Rostedt
2008-01-23 16:02 ` [PATCH 12/20 -v5] Add context switch marker to sched.c Steven Rostedt
2008-01-23 16:02 ` [PATCH 13/20 -v5] Make the task State char-string visible to all Steven Rostedt
2008-01-23 16:02 ` [PATCH 14/20 -v5] Add tracing of context switches Steven Rostedt
2008-01-23 16:02 ` [PATCH 15/20 -v5] Generic command line storage Steven Rostedt
2008-01-23 16:02 ` [PATCH 16/20 -v5] trace generic call to schedule switch Steven Rostedt
2008-01-23 16:02 ` [PATCH 17/20 -v5] Add marker in try_to_wake_up Steven Rostedt
2008-01-23 16:02 ` [PATCH 18/20 -v5] mcount tracer for wakeup latency timings Steven Rostedt
2008-01-23 16:02 ` [PATCH 19/20 -v5] Trace irq disabled critical timings Steven Rostedt
2008-01-23 16:53   ` Steven Rostedt [this message]
2008-01-23 17:11     ` Steven Rostedt
2008-01-23 17:27       ` Frank Ch. Eigler
2008-01-23 17:45         ` Steven Rostedt
2008-01-23 17:54           ` Mathieu Desnoyers
2008-01-23 17:58         ` Peter Zijlstra
2008-01-23 18:25           ` Frank Ch. Eigler
2008-01-23 18:48             ` Steven Rostedt
2008-01-23 21:29           ` Mathieu Desnoyers
2008-01-23 16:02 ` [PATCH 20/20 -v5] trace preempt off " Steven Rostedt

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=20080123165353.GA12598@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@ghostprotocols.net \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=fche@redhat.com \
    --cc=ghaskins@novell.com \
    --cc=hch@infradead.org \
    --cc=jan.kiszka@siemens.com \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=mingo@elte.hu \
    --cc=sam@ravnborg.org \
    --cc=srostedt@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=tim.bird@am.sony.com \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).