| From: |
| Adam Litke <agl@us.ibm.com> |
| To: |
| agl@us.ibm.com |
| Subject: |
| [Lse-tech] Kernel call graphing |
| Date: |
| 31 Oct 2003 15:40:16 -0800 |
| Cc: |
| lse-tech@lists.sourceforge.net |
Hello,
I have written a tool to generate deterministic function call graphs.
For each function profiled, its callers are listed above (along with
call counts) and its callees (and counts) below. This is useful for
things like lightweight code coverage analysis and finding out exactly
who's calling expensive functions, etc.
The tool has both a kernel patch and a user-space utility. Both are
located in the files section of the LSE project at Sourceforge
www.sf.net/projects/lse. Direct links to the latest releases follow:
http://osdn.dl.sourceforge.net/sourceforge/lse/kcg-2.6.0-test9-2.patch
http://osdn.dl.sourceforge.net/sourceforge/lse/readcg-0.3.tar.gz
I have tested this latest release on IBM pSeries and Intel. Please give
it a try. Comments, suggestions, flames? welcomed :)
Here is some sample output taken during a kernel build (on pSeries) for
the curious:
==================================================
2675523 .do_anonymous_page
103048 .do_wp_page
68635 .do_no_page
20233 .generic_file_aio_write_nolock
12209 .do_page_cache_readahead
10328 .__get_free_pages
6892 .copy_strings
2194 .find_or_create_page
849 .copy_strings32
194 .do_generic_mapping_read
.__alloc_pages
2900105 .buffered_rmqueue
==================================================
21436 do_work
19769 .cpu_idle
11371 .pipe_wait
6283 .io_schedule
6046 .do_exit
5187 .sys_wait4
2266 .worker_thread
1186 .schedule_timeout
419 .unmap_vmas
272 .__down
134 .do_generic_mapping_read
131 .schedule_timeout
127 .interruptible_sleep_on
100 .do_get_write_access
97 .ksoftirqd
65 .kjournald
45 .generic_file_aio_write_nolock
25 .__pdflush
18 .truncate_inode_pages
17 .journal_commit_transaction
15 .link_path_walk
8 .link_path_walk
5 .wait_for_completion
4 .migration_thread
2 .journal_commit_transaction
2 .journal_stop
2 .log_wait_commit
.schedule
75292 .sched_clock
67071 .__switch_to
23200 .load_balance
20292 .recalc_task_prio
6002 .__mmdrop
6 .__put_task_struct
6 .free_task
==================================================
--
Adam Litke (agl at us.ibm.com)
IBM Linux Technology Center
(503) 578 - 3283 t/l 775 - 3283
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Lse-tech mailing list
Lse-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lse-tech