All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>,
	linux-kernel@vger.kernel.org, mingo@elte.hu, fweisbec@gmail.com,
	zhaolei@cn.fujitsu.com, laijs@cn.fujitsu.com,
	Li Zefan <lizf@cn.fujitsu.com>
Subject: Re: [PATCH v3] ftrace: add a tracepoint for __raise_softirq_irqoff()
Date: Mon, 11 May 2009 10:27:34 -0400	[thread overview]
Message-ID: <20090511142734.GA12722@Krystal> (raw)
In-Reply-To: <alpine.DEB.2.00.0905111003280.14976@gandalf.stny.rr.com>

* Steven Rostedt (rostedt@goodmis.org) wrote:
> 
> On Mon, 11 May 2009, Mathieu Desnoyers wrote:
> > 
> > Yes, we should try to fix TRACE_EVENT, but we should fix it _before_ we
> > start using it widely. Circular header dependencies is a real problem
> > with TRACE_EVENT right now.
> > 
> > Until we fix this, I will be tempted to stay with a known-good solution,
> > which is DECLARE/DEFINE_TRACE.
> 
> The majority of tracepoints happen is C files. Those few cases where they 
> are used in headers is where the issues arise.
> 
> But...
> 
> I did not want to uglify all trace event headers with:
> 
> #ifdef CREATE_FOO_TRACE_POINTS
> #undef CREATE_FOO_TRACE_POINTS
> #include <trace/define_trace.h>
> #endif
> 
> We would only need to do that for those trace points that need to be 
> included in header files. Then the declaration C file would need to define 
> both CREATE_FOO_TRACE_POINTS and CREATE_TRACE_POINTS
> 
> #define CREATE_FOO_TRACE_POINTS
> #define CRATE_TRACE_POINTS
> #include <trace/events/foo.h>
> 
> 
> But this is pretty trivial to solve, and I do not consider it a show 
> stopper or a major header dependency problem.
> 
> -- Steve
> 

Hrm, is there any way to solve it elegantly ?

What we really need is to see the cases where TRACE_EVENT() is used as a
declaration vs the case where it expands
TP_STRUCT__entry/TP_fast_assign/TP_printk as having different
dependencies. The problem comes when we bring the include dependencies
of the TP_fast_assign part into the tracepoint header and it becomes
a dependency of the TRACE_EVENT() declaration-only part.

Can we do the following ?

All tracepoint headers could surround the include dependencies by :

#ifdef BUILD_EVENTS
#include <veryannoyingheaderdependency.h>
#endif

And then we follow this by the TRACE_EVENT() declarations.

BUILD_EVENTS would only be defined in kernel/trace/events.c.

I think it should work, but it looks a bit too simple, so I may have
missed something... ?

Mathieu


-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

  reply	other threads:[~2009-05-11 14:27 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-05  6:41 [PATCH v3] ftrace: add a tracepoint for __raise_softirq_irqoff() Xiao Guangrong
2009-05-05  6:53 ` Li Zefan
2009-05-07  0:57   ` Xiao Guangrong
2009-05-05 16:16 ` Mathieu Desnoyers
2009-05-11  7:28   ` Xiao Guangrong
2009-05-11 13:40     ` Mathieu Desnoyers
2009-05-11 14:09       ` Steven Rostedt
2009-05-11 14:27         ` Mathieu Desnoyers [this message]
2009-05-11 14:53           ` Steven Rostedt
2009-05-11 15:13             ` Mathieu Desnoyers
2009-05-12  9:50               ` Xiao Guangrong
2009-05-12 13:14                 ` Mathieu Desnoyers
2009-05-14 10:53                 ` [PATCH v4] " Xiao Guangrong
2009-05-14 12:40                   ` Mathieu Desnoyers
2009-05-14 13:26                     ` Steven Rostedt
2009-05-14 13:51                       ` Mathieu Desnoyers
2009-05-15  1:53                       ` Xiao Guangrong
2009-05-18  3:06                         ` Zhaolei
2009-05-19  8:24                           ` Ingo Molnar
2009-05-21  5:39                             ` Zhaolei
2009-06-12  2:36                             ` Lai Jiangshan
2009-06-12  9:51                               ` [PATCH RFC] softirq: fix ksoftirq starved Lai Jiangshan
2009-06-17 14:53                                 ` Ingo Molnar
2009-06-18  3:19                                   ` Lai Jiangshan
2009-06-18  8:22                                     ` Peter Zijlstra
2009-06-20 15:48                                     ` Ingo Molnar
2009-07-03  9:35                             ` [PATCH v4] ftrace: add a tracepoint for __raise_softirq_irqoff() Lai Jiangshan
2009-07-03  9:44                               ` Ingo Molnar
2009-07-09 12:58                                 ` Lai Jiangshan
2009-05-14  2:44       ` [PATCH v3] " Lai Jiangshan
2009-05-14  3:50         ` Mathieu Desnoyers
2009-05-14  6:06           ` Lai Jiangshan
2009-05-14  8:05             ` Xiao Guangrong
2009-05-14 12:36             ` Mathieu Desnoyers
2009-05-14 13:25               ` Steven Rostedt
2009-05-06 13:49 ` Jason Baron
2009-05-07  1:16   ` Xiao Guangrong

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=20090511142734.GA12722@Krystal \
    --to=mathieu.desnoyers@polymtl.ca \
    --cc=fweisbec@gmail.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --cc=xiaoguangrong@cn.fujitsu.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.