'allie' uses kprobe which is a built-in feature in RHEL4 or later.
If you want to know call trees of a particular in-kernel function such as 'ip6_xmit()' but don't want to recompile the entire kernel, 'allie' will help you very much.
It's available here under GPL2 as usual. :)
When you want to know function call graphs of a particular in-kernel function, for example, 'mpage_bio_submit', then you can see them by installing 'allie' with insmod parameters like the following:
# insmod allie.ko symbol= mpage_bio_submit count=3
Here are several notes.
- Lines in red below are kprobe and allie origin trace entries.
- Under Linux(x86 and x86_64) environment, we often see actually unrelated function call entries because of Linux linkage convention as I wrote here. Don't be confused.
- count=3 means to show only 3 stack traces because in-kernel functions are usually called very frequently and your /var/log/messages could be full.
- kprobe uses 'int3', thus we cannot catch function calls under interrupt disabled state.
-----
Apr 19 20:06:59 rhel5 syslogd 1.4.1: restart.
[snip]
Apr 19 20:47:14 rhel5 kernel: allie_init: called
Apr 19 20:47:14 rhel5 kernel: allie_init: flags=00000000, action=1, count=3, verbose=0
Apr 19 20:47:14 rhel5 kernel: allie_init: symbol=mpage_bio_submit
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:42 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
Apr 19 20:47:43 rhel5 kernel: [
(Updated slightly on April 29, 2007)
No comments:
Post a Comment