lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20060914225615.GA29229@elte.hu>
Date:	Fri, 15 Sep 2006 00:56:15 +0200
From:	Ingo Molnar <mingo@...e.hu>
To:	Martin Bligh <mbligh@...igh.org>
Cc:	Michel Dagenais <michel.dagenais@...ymtl.ca>,
	Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>,
	linux-kernel@...r.kernel.org,
	Christoph Hellwig <hch@...radead.org>,
	Andrew Morton <akpm@...l.org>, Ingo Molnar <mingo@...hat.com>,
	Greg Kroah-Hartman <gregkh@...e.de>,
	Thomas Gleixner <tglx@...utronix.de>,
	Tom Zanussi <zanussi@...ibm.com>, ltt-dev@...fik.org,
	fche@...hat.com
Subject: Re: [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108


* Martin Bligh <mbligh@...igh.org> 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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ