\boot\kernel\lib\Kconfig.debug
修改config DEBUG_KMEMLEAK_EARLY_LOG_SIZE中default 400为4000,因为400会泄漏,kernel调用log_early刚好401次,刚刚把400次耗光,导致log_early中满足crt_early_log >= ARRAY_SIZE(early_log)进而kmemleak_disable()。
CONFIG_DEBUG_KMEMLEAK=y // 改为y
#CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF //注释掉
如果要显示所有可能内存泄漏的细节,需要挂载debugfs(mount debugfs):
# mount -t debugfs nodev /sys/kernel/debug
# cat /sys/kernel/debug/kmemleak
如果要立即触发内存扫描,请使用以下命令:
# echo scan > /sys/kernel/debug/kmemleak
如果想清除当前内存泄漏列表,请使用以下命令:
# echo clear > /sys/kernel/debug/kmemleak
kmemleak在启动时可以被Disable(通过传递"kmemleak=0ff"给kernel command line)
如果想查看ION Leak文件描述符,请使用以下命令:
cat /d/ion/check_leaked_fds
修改config DEBUG_KMEMLEAK_EARLY_LOG_SIZE中default 400为4000,因为400会泄漏,kernel调用log_early刚好401次,刚刚把400次耗光,导致log_early中满足crt_early_log >= ARRAY_SIZE(early_log)进而kmemleak_disable()。
CONFIG_DEBUG_KMEMLEAK=y // 改为y
#CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF //注释掉
如果要显示所有可能内存泄漏的细节,需要挂载debugfs(mount debugfs):
# mount -t debugfs nodev /sys/kernel/debug
# cat /sys/kernel/debug/kmemleak
如果要立即触发内存扫描,请使用以下命令:
# echo scan > /sys/kernel/debug/kmemleak
如果想清除当前内存泄漏列表,请使用以下命令:
# echo clear > /sys/kernel/debug/kmemleak
kmemleak在启动时可以被Disable(通过传递"kmemleak=0ff"给kernel command line)
如果想查看ION Leak文件描述符,请使用以下命令:
cat /d/ion/check_leaked_fds