lkml.org 
[lkml]   [2009]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/8] tracing: create automated trace defines
    * Jeremy Fitzhardinge (jeremy@goop.org) wrote:
    > Mathieu Desnoyers wrote:
    >> * Jeremy Fitzhardinge (jeremy@goop.org) wrote:
    >>> -#define __DO_TRACE(tp, proto, args) \
    >>> - do { \
    >>> +#define DEFINE_DO_TRACE(name, proto, args) \
    >>> + void __do_trace_##name(struct tracepoint *tp, TP_PROTO(proto)) \
    >>>
    >>
    >> I fear that won't work with "void" prototype. If we need this kind of
    >> flexibility, we will need to create a special case for empty prototype.
    >>
    >
    > Yes, that has been a bit awkward. I couldn't find a way to create a
    > no-param tracepoint, and so ended up passing a dummy arg. Stupid C
    > syntax.
    >
    > On the other hand, I can get something that actually compiles this way...
    >
    > J

    Is your only problem the fact that tracepoints include rcupdate.h ? This
    can easily be solved by moving rcu_read_(un)lock_sched_notrace to a
    rcu-update-<insert meaningful name here> and include this header in
    rcupdate.h and tracepoint.h.

    We could keep the indirection layer you proposed for synchronize_sched()
    though, even if it adds an unnecessary function call. It's a slow path
    anyway.

    If by doing these modifications we succeed in keeping the "void"
    parameters working _and_ make your stuff to compile, I think we would
    have done something great. :-)

    Mathieu

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


    \
     
     \ /
      Last update: 2009-04-16 04:43    [W:0.050 / U:31.188 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site