* Martin Bligh <[email protected]> wrote:
> >i disagree. Consider the following example from LTT:
> ...
> > trace_socket_sendmsg(sock, sock->sk->sk_family,
> > sock->sk->sk_type,
> > sock->sk->sk_protocol,
> > size);
> ...
>
> >what do the 5 extra lines introduced by trace_socket_sendmsg() tell us?
> >Nothing. They mostly just duplicate the information i already have from
> >the function declaration. They obscure the clear view of the function:
> ...
> >the resulting visual and structural redundancy hurts.
>
> Couldn't that be easily fixed by just doing
>
> trace_socket_sendmsg(sock, size);
>
> and have it work out which esoteric parts of the sock we want to
> trace, and which we don't? Is much less visually invasive, and gives
> the same effect.
yeah, visual impact is everything. The best that Frank and me came up
with is:
_(socket_sendmsg, sock, size);
we could quickly learn to visually skip over lines like that, they have
a pretty unique geometric form . While if it's called:
trace_socket_sendmsg(sock, size);
it always looks like a function call in the corner of the eye and
attracts attention.
the '_()' macro is defined as:
#define _(x,y,z) STAP_MARK(x,y,z)
(STAP_MARK is an existing SystemTap helper to insert static tracepoints
into the kernel.)
but the other property of dynamic tracing is still very important too:
we have the technological freedom to remove static tracepoints, if we
decide so. With static tracers, once they are in the tree, we are stuck
with these APIs.
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]