Ftrace:
It is mainly used for kernel function traces and also used for kernel memory tracking.
CONFIGS to be enabled
1. CONFIG_FUNCTION_TRACER=y
2. CONFIG_DYNAMIC_FTRACE=y
It needs /sys/kernel/debug file system to be mounted
It traces memory allocation using events for below api calls
1. kmalloc()
2. kfree()
3. kmem_cache_alloc()
4. kmem_cache_free()
In the events, for each mem alloc call, we get who is the caller, what is requested size, what is allocated size.
Enable ftrace
echo 1 > /sys/kernel/debug/tracing_enabled
Disable
echo 0 > /sys/kernel/debug/tracing_enabled
How to access
/sys/kernel/debug/tracing
Kernel parameter :
trace_event=kmem:kmalloc, kmem:kmem_cache_alloc, kmem:kfree,kmem:kmem_cache_free
Avoiding event buffer over commit:
trace_buf_size=1000000
Enable events:
cd /sys/kernel/debug/tracing
echo "kmem:kmalloc" > set_events
echo "kmem:kmem_cache_alloc >> set_events
echo "kmem:kfree" >> set_events
echo "kmem:kmem_cache_free" >> set_events
Function Filtering:
It is mainly used for kernel function traces and also used for kernel memory tracking.
CONFIGS to be enabled
1. CONFIG_FUNCTION_TRACER=y
2. CONFIG_DYNAMIC_FTRACE=y
It needs /sys/kernel/debug file system to be mounted
It traces memory allocation using events for below api calls
1. kmalloc()
2. kfree()
3. kmem_cache_alloc()
4. kmem_cache_free()
In the events, for each mem alloc call, we get who is the caller, what is requested size, what is allocated size.
Enable ftrace
echo 1 > /sys/kernel/debug/tracing_enabled
Disable
echo 0 > /sys/kernel/debug/tracing_enabled
How to access
/sys/kernel/debug/tracing
Kernel parameter :
trace_event=kmem:kmalloc, kmem:kmem_cache_alloc, kmem:kfree,kmem:kmem_cache_free
Avoiding event buffer over commit:
trace_buf_size=1000000
Enable events:
cd /sys/kernel/debug/tracing
echo "kmem:kmalloc" > set_events
echo "kmem:kmem_cache_alloc >> set_events
echo "kmem:kfree" >> set_events
echo "kmem:kmem_cache_free" >> set_events
Function Filtering:
echo <function name> set_ftrace_filter
Trace only apis of kernel module <MODULE>
echo ':<MODULE>:tg3' > set_ftrace_filter
No comments:
Post a Comment