[lkml]   [2009]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH -v2] tracing: lockdep tracepoints
    On Wed, 2009-03-04 at 13:12 +0100, Frederic Weisbecker wrote:

    > The TRACE_FIELD_SPECIAL is only used in case of complex assignment,
    > those that can't be done in a simple "=" expression.
    > All you need is simply:
    > TRACE_FORMAT(lock_contended,
    > TPPROTO(struct lockdep_map *lock, unsigned long ip),
    > TPARGS(lock, ip),
    > TPFMT("%s", lock->name)
    > TRACE_FIELD(char *, name, lock->name)
    > )
    > TPRAWFMT("%s");
    > );

    As discussed on IRC, that won't actually work. In generic, you cannot
    assume the string is stable, in my particular case it would work, since
    lock->name is a compile time constant, except for modules, who will
    still ruin that.

    So I think something like TRACE_FIELD_STRING() is called for. Not sure
    how to integrate a variable length field like that with the static
    format description though. Maybe use offsets from the start of the
    object as string pointers, so you can place the variable sized bits
    after the static bits.

     \ /
      Last update: 2009-03-04 14:05    [W:0.020 / U:5.484 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site