announce: kernel tracer, 2.1.30

Ingo Molnar (mingo@pc5829.hil.siemens.at)
Fri, 28 Mar 1997 18:51:13 +0100 (MET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--79892230-1484315634-859571473=:1263
Content-Type: TEXT/PLAIN; charset=US-ASCII

this is 'ktrace', probably useful to kernel hackers only. 'ktrace' is
similar to 'strace', but works in kernel-space. It traces function-entry
points and calculates microsecond accuracy timings between function
entries. Additionally it traces a few basic system-events: syscall, irq
and bh entry/exit events. Sample output:

------------------------------------------------------->
Trace: c010c948 <*IRQ_ENTRY*+10/70> (3.47)
Trace: c0110b56 <pentium_timer_interrupt+e/94> (1.43)
Trace: c01132cd <do_timer+d/8c> (4.85)
Trace: c011bbe8 <*IRQ_EXIT*+8/10> (3.73)
Trace: c011a06b <do_bottom_half+13/8c> (0.71)
Trace: c011bbf8 <*BH_ENTRY*+8/10> (1.93)
Trace: c0112f93 <timer_bh+13/340> (3.24)
Trace: c0112e12 <update_wall_time+e/58> (1.08)
Trace: c0112d37 <update_wall_time_one_tick+f/dc> (4.22)
Trace: c0112e6f <update_process_times+13/124> (8.18)
Trace: c0123619 <swap_tick+d/c0> (6.68)
Trace: c011bc08 <*BH_EXIT*+8/10> (1.5)
<-------------------------------------------------------

the package consists of a kernel patch and various user-space tools.
[there is a QuickStart file in the package]. Dont look too hard at the
user-space tools, they are very hackish ;)

current features:

- well, kernel tracing ;)
- kernel-stack overflow detection
- soft lockup detection

It works only on x86 586 systems currently, but it's generic enough to be
ported to any platform by implementing two defines in <asm/profiler.h>.

it should be SMP safe, but i havent tested it yet. [conceptually it's SMP
safe, had it working all 3 main features on 2.0 SMP a few days ago, but i
might have broken it since then]

[ Sorry for the MIME attachment, i couldnt get to my web account.
Comments, reports, suggestions welcome. ]

-- mingo

--79892230-1484315634-859571473=:1263
Content-Type: APPLICATION/octet-stream; name="ktracer-2.1.30.tar.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970328185113.1263B@pc5829.hil.siemens.at>
Content-Description:

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
AA==
--79892230-1484315634-859571473=:1263--