Re: [patch 34/37] LTTng instrumentation ipc

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Mathieu Desnoyers <mathieu.desnoyers@...>
Cc: Frank Ch. Eigler <fche@...>, <akpm@...>, Ingo Molnar <mingo@...>, <linux-kernel@...>
Date: Sunday, May 4, 2008 - 5:04 pm

On Fri, Apr 25, 2008 at 08:56:07AM -0400, Mathieu Desnoyers wrote:


Martin, let's forget for a thread about performance. I don't complain
over performance degradation at all, there is something more serious.
People _will_ find you if something will go noticeably slower. :^)



OK, uncoditional marker forces me to do some post-filtering, that's
probably tolerable. But! Some information can be lost after serialization
to strings is done. Or more difficult to do post-filtering than needed.
Examples below.


People will want do see different bits, so you'll show full mask and let
people do post-filtering again.


__func__ is just real-world nit.

This example is about very specific set of struct files (hi, Eric!).
Post-filtering again.


And this is totally unexpected from you.

		In the name of bug-free kernel,
		  I DO WANT KERNEL INTERNALS!


And I perfectly know which ones at which spots!

If you're scared of internals keep this marker thingy on kernel/luserspace
boundary -- TIF_SYSCALL_TRACE or how it's called. Don't do tree-wide
source code pollution!


That's also strange to hear.

If I can't reboot a box, I can't insert my carefully crafter marker.
If I can, I can rebuilt kernel with all debugging I want.


This is what's called strategic :^) But there are too many of them, and you
never know to where bug report will point you at the end.


Just name sometimes good clue: SYSV00000000 . Somebody will want full
path though.



And finally, systemtap.

Reading some systemtap docs,
http://sourceware.org/systemtap/wiki/UsingMarkers
where examples of intelligent filtering are shown:

	function inode_get_i_ino:long (i:long) %{ /* pure */
		struct inode *inode = (struct inode *)(long)THIS->i;
		THIS->__retvalue = kread(&(inode->i_ino));
		CATCH_DEREF_FAULT();
	%}
	probe kernel.mark("kfunc_entry")
	{
		printf("inode number: %d\n", inode_get_i_ino($arg1))
	}

Is this representative example?

If yes, systemtap only wants marker's name and ignores totally its fmt
string. So, why add them in the first place?

And if systemtap can hook at any place, it doesn't need markers (I
haven't used it though, so correct me).

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 34/37] LTTng instrumentation ipc, Mathieu Desnoyers, (Thu Apr 24, 11:03 am)
Re: [patch 34/37] LTTng instrumentation ipc, Alexey Dobriyan, (Thu Apr 24, 7:02 pm)
Re: [patch 34/37] LTTng instrumentation ipc, Frank Ch. Eigler, (Thu Apr 24, 10:15 pm)
Re: [patch 34/37] LTTng instrumentation ipc, Mathieu Desnoyers, (Fri Apr 25, 8:56 am)
Re: [patch 34/37] LTTng instrumentation ipc, Alexey Dobriyan, (Sun May 4, 5:04 pm)
Re: [patch 34/37] LTTng instrumentation ipc, Frank Ch. Eigler, (Sun May 4, 4:39 pm)
[RFC] system-wide in-kernel syscall tracing, Mathieu Desnoyers, (Fri Apr 25, 9:17 am)