<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/trace/events/workqueue.h, branch v3.1-rc8</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/trace/events/workqueue.h?h=v3.1-rc8</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/trace/events/workqueue.h?h=v3.1-rc8'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-10-05T08:49:55Z</updated>
<entry>
<title>workqueue: add queue_work and activate_work trace points</title>
<updated>2010-10-05T08:49:55Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-10-05T08:49:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cdadf0097cdca06c497ffaeb5982e028c6e4ed38'/>
<id>urn:sha1:cdadf0097cdca06c497ffaeb5982e028c6e4ed38</id>
<content type='text'>
These two tracepoints allow tracking when and how a work is queued and
activated.  This patch is based on Frederic's patch to add queue_work
trace point.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
</content>
</entry>
<entry>
<title>workqueue: prepare for more tracepoints</title>
<updated>2010-10-05T08:41:14Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-10-05T08:41:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=97bd234701b2b39a0e749c1fe0e44f1d14c94292'/>
<id>urn:sha1:97bd234701b2b39a0e749c1fe0e44f1d14c94292</id>
<content type='text'>
Define workqueue_work event class and use it for workqueue_execute_end
trace point.  Also, move trace/events/workqueue.h include downwards
such that all struct definitions are visible to it.  This is to
prepare for more tracepoints and doesn't cause any functional change.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
</content>
</entry>
<entry>
<title>workqueue: Add basic tracepoints to track workqueue execution</title>
<updated>2010-08-21T20:19:37Z</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2010-08-21T20:07:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e36c886a0f9d624377977fa6cae309cfd7f362fa'/>
<id>urn:sha1:e36c886a0f9d624377977fa6cae309cfd7f362fa</id>
<content type='text'>
With the introduction of the new unified work queue thread pools,
we lost one feature: It's no longer possible to know which worker
is causing the CPU to wake out of idle. The result is that PowerTOP
now reports a lot of "kworker/a:b" instead of more readable results.

This patch adds a pair of tracepoints to the new workqueue code,
similar in style to the timer/hrtimer tracepoints.

With this pair of tracepoints, the next PowerTOP can correctly
report which work item caused the wakeup (and how long it took):

Interrupt (43)            i915      time   3.51ms    wakeups 141
Work      ieee80211_iface_work      time   0.81ms    wakeups  29
Work              do_dbs_timer      time   0.55ms    wakeups  24
Process                   Xorg      time  21.36ms    wakeups   4
Timer    sched_rt_period_timer      time   0.01ms    wakeups   1

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>workqueue: temporarily remove workqueue tracing</title>
<updated>2010-06-29T08:07:11Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-06-29T08:07:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=64166699752006f1a23a9cf7c96ae36654ccfc2c'/>
<id>urn:sha1:64166699752006f1a23a9cf7c96ae36654ccfc2c</id>
<content type='text'>
Strip tracing code from workqueue and remove workqueue tracing.  This
is temporary measure till concurrency managed workqueue is complete.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
</content>
</entry>
<entry>
<title>tracing: Convert some workqueue events to DEFINE_EVENT</title>
<updated>2009-11-26T08:14:03Z</updated>
<author>
<name>Li Zefan</name>
<email>lizf@cn.fujitsu.com</email>
</author>
<published>2009-11-26T07:05:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=382ece710bf88b08440b598731361e5a47582b62'/>
<id>urn:sha1:382ece710bf88b08440b598731361e5a47582b62</id>
<content type='text'>
Use DECLARE_EVENT_CLASS to remove duplicate code:

   text    data     bss     dec     hex filename
  13171     800      72   14043    36db kernel/workqueue.o.old
  12243     800      68   13111    3337 kernel/workqueue.o

Two events are converted:

  workqueue: workqueue_insertion, workqueue_execution

No change in functionality.

Signed-off-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
LKML-Reference: &lt;4B0E289F.5010104@cn.fujitsu.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>tracing/workqueue: Use %pf in workqueue trace events</title>
<updated>2009-09-22T21:14:58Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2009-09-22T02:40:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9961079348d43dddb1f21118c17f054f63bbaa05'/>
<id>urn:sha1:9961079348d43dddb1f21118c17f054f63bbaa05</id>
<content type='text'>
Using %pf instead of %pF supresses printing of the function offset
which will always be 0 in the case of worklet functions.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Cc: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Cc: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Zhaolei &lt;zhaolei@cn.fujitsu.com&gt;
Cc: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
LKML-Reference: &lt;20090922024033.GB31801@kryten&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
</content>
</entry>
<entry>
<title>tracing/events: Move TRACE_SYSTEM outside of include guard</title>
<updated>2009-07-13T08:59:55Z</updated>
<author>
<name>Li Zefan</name>
<email>lizf@cn.fujitsu.com</email>
</author>
<published>2009-07-13T02:33:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d0b6e04a4cd8360e3c9c419f7c30a3081a0c142a'/>
<id>urn:sha1:d0b6e04a4cd8360e3c9c419f7c30a3081a0c142a</id>
<content type='text'>
If TRACE_INCLDUE_FILE is defined, &lt;trace/events/TRACE_INCLUDE_FILE.h&gt;
will be included and compiled, otherwise it will be
&lt;trace/events/TRACE_SYSTEM.h&gt;

So TRACE_SYSTEM should be defined outside of #if proctection,
just like TRACE_INCLUDE_FILE.

Imaging this scenario:

 #include &lt;trace/events/foo.h&gt;
    -&gt; TRACE_SYSTEM == foo
 ...
 #include &lt;trace/events/bar.h&gt;
    -&gt; TRACE_SYSTEM == bar
 ...
 #define CREATE_TRACE_POINTS
 #include &lt;trace/events/foo.h&gt;
    -&gt; TRACE_SYSTEM == bar !!!

and then bar.h will be included and compiled.

Signed-off-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
LKML-Reference: &lt;4A5A9CF1.2010007@cn.fujitsu.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>ftrace, workqueuetrace: make workqueue tracepoints use TRACE_EVENT macro</title>
<updated>2009-06-01T23:10:40Z</updated>
<author>
<name>Zhaolei</name>
<email>zhaolei@cn.fujitsu.com</email>
</author>
<published>2009-04-17T07:15:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fb39125fd79a25c5002f3b45cf4c80e3fa6b961b'/>
<id>urn:sha1:fb39125fd79a25c5002f3b45cf4c80e3fa6b961b</id>
<content type='text'>
v3: zhaolei@cn.fujitsu.com: Change TRACE_EVENT definition to new format
    introduced by Steven Rostedt: consolidate trace and trace_event headers
v2: kosaki@jp.fujitsu.com: print the function names instead of addr, and zap
    the work addr
v1: zhaolei@cn.fujitsu.com: Make workqueue tracepoints use TRACE_EVENT macro

TRACE_EVENT is a more generic way to define tracepoints.
Doing so adds these new capabilities to the tracepoints:

  - zero-copy and per-cpu splice() tracing
  - binary tracing without printf overhead
  - structured logging records exposed under /debug/tracing/events
  - trace events embedded in function tracer output and other plugins
  - user-defined, per tracepoint filter expressions

Then, this patch converts DEFINE_TRACE to TRACE_EVENT in workqueue related
tracepoints.

[ Impact: expand workqueue tracer to events tracing ]

Signed-off-by: Zhao Lei &lt;zhaolei@cn.fujitsu.com&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Tom Zanussi &lt;tzanussi@gmail.com&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
</content>
</entry>
</feed>
