From: Frederic Weisbecker <fweisbec@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>,
Li Zefan <lizf@cn.fujitsu.com>, Zhao Lei <zhaolei@cn.fujitsu.com>,
Steven Rostedt <rostedt@goodmis.org>,
Tom Zanussi <tzanussi@gmail.com>, Oleg Nesterov <oleg@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Subject: Re: [PATCH 00/19] tracing/workqueue: events support/enhancements, worklets tracing, fixes
Date: Thu, 30 Apr 2009 14:48:12 +0200 [thread overview]
Message-ID: <20090430124810.GA5970@nowhere> (raw)
In-Reply-To: <20090430084529.GA27479@elte.hu>
On Thu, Apr 30, 2009 at 10:45:29AM +0200, Ingo Molnar wrote:
>
> * Frederic Weisbecker <fweisbec@gmail.com> wrote:
>
> > Hi,
> >
> > This patchset brings various features for the workqueue tracer.
> >
> > The support of events tracing (tracepoint expanding):
> > - workqueue_creation
> > - workqueue_flush
> > - workqueue_destruction
> >
> > Also for the worklets:
> > - worklet_enqueue
> > - worklet_enqueue_delayed
> > - worklet_execute
> > - worklet_complete
> > - worklet_cancel
> >
> > Now, most of the lifecycle of worklets and workqueues is available.
> >
> > The histogram tracing now also supports the worklets. You can
> > measure the max and average execution time of a worklet.
> >
> > A good bunch of Oleg's comments have been addressed, at least the
> > critical ones (races which can cause freed pointer dereferences, memory
> > leak, etc...). The rest is more about the design itself, such as using
> > the workqueue as the identifier instead of the thread and other things
> > that are in discussion.
> >
> > Thanks!
> >
> > Frederic.
> >
> > The following changes since commit a0e39ed378fb6ba916522764cd508fa7d42ad495:
> > Heiko Carstens (1):
> > tracing: fix build failure on s390
> >
> > are available in the git repository at:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git tracing/workqueue
> >
> > Frederic Weisbecker (6):
> > tracing/workqueue: turn cpu_workqueue_stats::inserted into unsigned int
> > tracing/workqueue: add execution time average column
> > tracing/workqueue: add open/release file handlers
> > tracing/workqueue: defer workqueue stat release if needed
> > tracing/workqueue: use the original cpu affinity on probe_workqueue_destruction
> > tracing/workqueue: provide documentation for the workqueue tracer
> >
> > KOSAKI Motohiro (2):
> > workqueue_tracepoint: introduce workqueue_handler_exit tracepoint and rename workqueue_execution to workqueue_handler_entry
> > tracing/workqueue: add max execution time mesurement for per worklet
> >
> > Zhaolei (11):
> > ftrace, workqueuetrace: make workqueue tracepoints use TRACE_EVENT macro
> > trace_workqueue: use list_for_each_entry() instead of list_for_each_entry_safe()
> > trace_workqueue: remove cpu_workqueue_stats->first_entry
> > trace_workqueue: remove blank line between each cpu
> > trace_workqueue: add worklet information
> > workqueue_tracepoint: add workqueue_flush and worklet_cancel tracepoint
> > workqueue_tracepoint: change tracepoint name to fit worklet and workqueue lifecycle
> > workqueue_trace: separate worklet_insertion into worklet_enqueue and worklet_enqueue_delayed
> > tracing/workqueue: turn workfunc_stats::inserted into unsigned int
> > tracing/workqueue: avoid accessing task_struct's member variable in stat file read
> > tracing/workqueue: use list_for_each_entry instead of list_for_each_entry_safe in probe_workqueue_destruction()
> >
> > Documentation/trace/workqueue.txt | 114 ++++++++++
> > include/trace/events/workqueue.h | 200 +++++++++++++++++
> > include/trace/workqueue.h | 25 --
> > kernel/trace/trace_stat.c | 8 +
> > kernel/trace/trace_stat.h | 3 +
> > kernel/trace/trace_workqueue.c | 444 +++++++++++++++++++++++++++++--------
> > kernel/workqueue.c | 45 +++--
> > 7 files changed, 697 insertions(+), 142 deletions(-)
> > create mode 100644 Documentation/trace/workqueue.txt
> > create mode 100644 include/trace/events/workqueue.h
> > delete mode 100644 include/trace/workqueue.h
>
> I think one worry here - and this mirrors some of Andrew's concerns
> - is the debug code to instrumented code ratio. There's 500 lines of
> instrumentation for 1000 lines of code.
>
> Is there a chance we can reduce that ratio, by factoring out bits of
> kernel/trace/trace_workqueue.c and perhaps compressing
> include/trace/events/workqueue.h some more?
Hehe, indeed. By adding code here and there, I guess we
forgot to unify common bits. I will try to factorize that.
> Also, it would be nice to check how intuitive it is to visualize
> workqueue related details using the user-space ftrace-analyzer tool.
>
> Kernel developers are one thing - but most of the Linux developers
> are user-space developers so any workqueue tracing details have to
> be intuitive (and useful) to them. (even though workqueues are a
> fundamentally in-kernel abstraction)
>
> Ingo
Ok, I will see what it gives and give some examples.
prev parent reply other threads:[~2009-04-30 12:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-30 0:27 [PATCH 00/19] tracing/workqueue: events support/enhancements, worklets tracing, fixes Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 01/19] ftrace, workqueuetrace: make workqueue tracepoints use TRACE_EVENT macro Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 02/19] trace_workqueue: use list_for_each_entry() instead of list_for_each_entry_safe() Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 03/19] trace_workqueue: remove cpu_workqueue_stats->first_entry Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 04/19] trace_workqueue: remove blank line between each cpu Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 05/19] trace_workqueue: add worklet information Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 06/19] tracing/workqueue: turn cpu_workqueue_stats::inserted into unsigned int Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 07/19] workqueue_tracepoint: introduce workqueue_handler_exit tracepoint and rename workqueue_execution to workqueue_handler_entry Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 08/19] workqueue_tracepoint: add workqueue_flush and worklet_cancel tracepoint Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 09/19] workqueue_tracepoint: change tracepoint name to fit worklet and workqueue lifecycle Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 10/19] workqueue_trace: separate worklet_insertion into worklet_enqueue and worklet_enqueue_delayed Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 11/19] tracing/workqueue: turn workfunc_stats::inserted into unsigned int Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 12/19] tracing/workqueue: avoid accessing task_struct's member variable in stat file read Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 13/19] tracing/workqueue: use list_for_each_entry instead of list_for_each_entry_safe in probe_workqueue_destruction() Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 14/19] tracing/workqueue: add max execution time mesurement for per worklet Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 15/19] tracing/workqueue: add execution time average column Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 16/19] tracing/workqueue: add open/release file handlers Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 17/19] tracing/workqueue: defer workqueue stat release if needed Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 18/19] tracing/workqueue: use the original cpu affinity on probe_workqueue_destruction Frederic Weisbecker
2009-04-30 0:27 ` [PATCH 19/19] tracing/workqueue: provide documentation for the workqueue tracer Frederic Weisbecker
2009-04-30 1:19 ` KOSAKI Motohiro
2009-04-30 8:45 ` [PATCH 00/19] tracing/workqueue: events support/enhancements, worklets tracing, fixes Ingo Molnar
2009-04-30 12:48 ` Frederic Weisbecker [this message]
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=20090430124810.GA5970@nowhere \
--to=fweisbec@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=rostedt@goodmis.org \
--cc=tzanussi@gmail.com \
--cc=zhaolei@cn.fujitsu.com \
/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.