public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* [UPDATE] Linux Kernel Event Trace tool(LKET)
@ 2006-05-11  8:26 Li Guanglei
       [not found] ` <446A2BB6.4040700@lanl.gov>
  0 siblings, 1 reply; 17+ messages in thread
From: Li Guanglei @ 2006-05-11  8:26 UTC (permalink / raw)
  To: systemtap

[-- Attachment #1: Type: text/plain, Size: 1890 bytes --]

Hi folks,

  This is the updated version of LKET. Compared with the previous
version, it includes the following enhancements:
  1. more event hooks
  2. binary tracing for better performance
  3. other performance enhancements & bugfixes
  4. more backtrace support
  5. a b2a converter to merge per-cpu files and convert binary format
into ASCII format

  Currently LKET is actually a collection of SystemTap tapsets which
are used to trace various events inside the kernel and generate the
tracing data. This tool aims to provide an easy way to trace various
events inside the kernel for the purpose of performance analysis.

  Since LKET is an extension to the tapsets library available on
SystemTap, I hope LKET could go into SystemTap's tapsets library. So
it will make SystemTap more easier to use even for those who don't
know much about Linux Kernel internal, and thus benefit more people.
Any comments about this proposal?

 Here's the events being implemented by now:

 System Call:
    entry of syscall
    return of syscall
 Process Creation:
    fork
    execve
 IO Scheduler:
    a request is retrieved from request queue
    a request is added to the request queue
    a request is completed
 Task Dispatching(scheduler):
    context switch
    cpu goes idle
 Scsi Activities
    mid-layer prepared a IO request
    Dispatch a command to the LLD
    I/O is done by LLD
    mid-layer processes the completed IO
 Pagefault
    a pagefault is taking place
 Networking Device
    network device receives a packet
    a packet will be sent out by network device

 During the LKET work, we also did some testing for overhead &
accuracy. I planned to disclose the overhead testing result of LKET in
the next couple of days.

 I attached the tgz package of LKET since the # of files is a little big.

 Suggestions, Comments, Flames are welcome. And thanks in advance
for your help.


[-- Attachment #2: LKET-2006-05-11.tgz --]
[-- Type: application/x-compressed, Size: 14384 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: [UPDATE] Linux Kernel Event Trace tool(LKET)
@ 2006-05-12 22:34 Stone, Joshua I
  2006-05-15  6:34 ` Li Guanglei
  0 siblings, 1 reply; 17+ messages in thread
From: Stone, Joshua I @ 2006-05-12 22:34 UTC (permalink / raw)
  To: Li Guanglei; +Cc: systemtap

Hi Li,

Currently I am working on a few generic tapsets, and there appears to be
some overlap with what you've done.  For example, earlier this week I
checked in a process tapset.  This should be able to give you the fork
and exec events you're using in LKET.

Thang and I are also working on IO, scheduler, networking, and VM
tapsets, but we don't have anything ready to check in yet.  I will
definitely take a look at what you've provided though, and leverage that
which overlaps.

I think it would be great to have LKET as a tapset, but I would like to
see a more layered approach.  What you've given is very specific to
tracing, but the events that you probe have a more general audience as
well.  A broader approach would be to implement the events as general
tapsets, and then build LKET as a layer on top of the base tapsets.

The syscalls are a good example of this -- in LKET you've captured
syscalls using function wildcards.  However, we have the syscall tapset
that has already gone through pains to define all of the actual system
calls available.  If we run into syscall issues in the future, it would
be much nicer to need only fix the syscall tapset, and let LKET benefit
from that.  So instead of probing 'kernel.function("sys_*")', you should
use 'syscall.*'.  And if there are reasons why this doesn't work well
for you, let's address that rather than duplicating efforts.


Josh


On Thursday, May 11, 2006 1:25 AM, Li Guanglei wrote:
> Hi folks,
> 
>   This is the updated version of LKET. Compared with the previous
> version, it includes the following enhancements:
>   1. more event hooks
>   2. binary tracing for better performance
>   3. other performance enhancements & bugfixes
>   4. more backtrace support
>   5. a b2a converter to merge per-cpu files and convert binary format
> into ASCII format
> 
>   Currently LKET is actually a collection of SystemTap tapsets which
> are used to trace various events inside the kernel and generate the
> tracing data. This tool aims to provide an easy way to trace various
> events inside the kernel for the purpose of performance analysis.
> 
>   Since LKET is an extension to the tapsets library available on
> SystemTap, I hope LKET could go into SystemTap's tapsets library. So
> it will make SystemTap more easier to use even for those who don't
> know much about Linux Kernel internal, and thus benefit more people.
> Any comments about this proposal?
> 
>  Here's the events being implemented by now:
> 
>  System Call:
>     entry of syscall
>     return of syscall
>  Process Creation:
>     fork
>     execve
>  IO Scheduler:
>     a request is retrieved from request queue
>     a request is added to the request queue
>     a request is completed
>  Task Dispatching(scheduler):
>     context switch
>     cpu goes idle
>  Scsi Activities
>     mid-layer prepared a IO request
>     Dispatch a command to the LLD
>     I/O is done by LLD
>     mid-layer processes the completed IO
>  Pagefault
>     a pagefault is taking place
>  Networking Device
>     network device receives a packet
>     a packet will be sent out by network device
> 
>  During the LKET work, we also did some testing for overhead &
> accuracy. I planned to disclose the overhead testing result of LKET in
> the next couple of days.
> 
>  I attached the tgz package of LKET since the # of files is a little
> big. 
> 
>  Suggestions, Comments, Flames are welcome. And thanks in advance
> for your help.

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: [UPDATE] Linux Kernel Event Trace tool(LKET)
@ 2006-05-15 21:09 Stone, Joshua I
  0 siblings, 0 replies; 17+ messages in thread
From: Stone, Joshua I @ 2006-05-15 21:09 UTC (permalink / raw)
  To: Li Guanglei; +Cc: systemtap

On Sunday, May 14, 2006 11:35 PM, Li Guanglei wrote:
> So I'd like to break LKET's tapsets into the following two layers:
> 
> <1> Generic Tapsets
> [...]
> <2> Tapsets Specific to Tracing

Great, this is exactly the model I had in mind.


Josh

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: [UPDATE] Linux Kernel Event Trace tool(LKET)
@ 2006-06-02  0:44 Stone, Joshua I
  0 siblings, 0 replies; 17+ messages in thread
From: Stone, Joshua I @ 2006-06-02  0:44 UTC (permalink / raw)
  To: Li Guanglei; +Cc: systemtap

On Sunday, May 28, 2006 11:27 PM, Li Guanglei wrote:
> Li Guanglei ??:
>> 
>> 
>> I don't have a x86_64 at hand. I tried
>> __switch_to(scheduler.ctxswitch in src/tapset/schedule.stp) and it
>> will cause kernel panic. I will take a further look at this and will
>> open a bug for this if needed. 
> 
> I tested again with 2.6.16.16 & 2.6.16-1.2211_FC6 on x86, _switch_to
> won't cause kernel panic any more. So I think this bug has been fixed
> in latest kernel.

Probes on __switch_to are disallowed on x86_64 -- see bug #2068.
http://sources.redhat.com/bugzilla/show_bug.cgi?id=2068


Josh

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: [UPDATE] Linux Kernel Event Trace tool(LKET)
@ 2006-06-02  0:48 Stone, Joshua I
  2006-06-02  1:56 ` Li Guanglei
  0 siblings, 1 reply; 17+ messages in thread
From: Stone, Joshua I @ 2006-06-02  0:48 UTC (permalink / raw)
  To: Guang Lei Li; +Cc: systemtap

On Friday, May 26, 2006 7:35 PM, Guang Lei Li wrote:
>> BTW, I checked in binary2ASCII converter yesterday. I once let
>> SystemTap build b2a converter by default, but after some considers I
>> deleted it from SystemTap's makefile system. The reason is that I
>> used a balanced binary search in b2a which comes from GLIB2. So now
>> b2a depends on glib2 & glib2-devel. I think maybe it's not good to
>> let SystemTap depends on a new package but I am not quite sure since
>> the functionalities provided by glib2 is really useful. Any ideas?
>> 
> 
> Added conditional build of lket-b2a. If glib2-devel is not installed,
> just skips and gives a warning.
> I will add man page of lket-b2a

Please note that b2a is generating several warnings on x86_64:

Making all in runtime/lket/b2a
make[2]: Entering directory
`/home/jistone/systemtap/src/runtime/lket/b2a'
if gcc -DHAVE_CONFIG_H -I. -I. -I../../..    -O2 -D_GNU_SOURCE -Wall
`pkg-config --cflags glib-2.0` -g -O2 -MT lket_b2a-lket_b2a.o -MD -MP
-MF ".deps/lket_b2a-lket_b2a.Tpo" -c -o lket_b2a-lket_b2a.o `test -f
'lket_b2a.c' || echo './'`lket_b2a.c; \
then mv -f ".deps/lket_b2a-lket_b2a.Tpo" ".deps/lket_b2a-lket_b2a.Po";
else rm -f ".deps/lket_b2a-lket_b2a.Tpo"; exit 1; fi
lket_b2a.c: In function 'register_appname':
lket_b2a.c:229: warning: cast to pointer from integer of different size
lket_b2a.c: In function 'compareFunc':
lket_b2a.c:235: warning: cast from pointer to integer of different size
lket_b2a.c:235: warning: cast from pointer to integer of different size
lket_b2a.c:236: warning: cast from pointer to integer of different size
lket_b2a.c:236: warning: cast from pointer to integer of different size
lket_b2a.c: In function 'print_pkt_header':
lket_b2a.c:405: warning: cast to pointer from integer of different size
lket_b2a.c: In function 'b2a_vsnprintf':
lket_b2a.c:526: warning: format '%lld' expects type 'long long int', but
argument 3 has type 'long int'
gcc  -g -O2   -o lket-b2a `pkg-config --libs glib-2.0`
lket_b2a-lket_b2a.o
make[2]: Leaving directory
`/home/jistone/systemtap/src/runtime/lket/b2a'


Josh

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2006-06-02  1:56 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-11  8:26 [UPDATE] Linux Kernel Event Trace tool(LKET) Li Guanglei
     [not found] ` <446A2BB6.4040700@lanl.gov>
2006-05-17  0:18   ` Li Guanglei
2006-05-12 22:34 Stone, Joshua I
2006-05-15  6:34 ` Li Guanglei
2006-05-19  4:09   ` Li Guanglei
2006-05-23 23:33     ` Li Guanglei
2006-05-24 15:27       ` William Cohen
2006-05-25  0:21         ` Li Guanglei
2006-05-27  2:35           ` Guang Lei Li
2006-05-25  8:23         ` Li Guanglei
2006-05-29  6:26           ` Li Guanglei
2006-05-24 15:43       ` Frank Ch. Eigler
2006-05-25 14:03         ` Li Guanglei
2006-05-15 21:09 Stone, Joshua I
2006-06-02  0:44 Stone, Joshua I
2006-06-02  0:48 Stone, Joshua I
2006-06-02  1:56 ` Li Guanglei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).