在Linux中显示进程的内核堆栈使用情况

我试图确定服务器上的进程正在使用多less内核堆栈。 我发现一个文档 ,指出来自sysrq-t的输出显示了进程名称的第四行中未使用堆栈的数量。 问题是,除了旧的,32位的CentOS 5盒子,我运行sysrq-t的每台机器总是有0这个字段。 有另一种方法来确定堆栈使用情况吗?

为了填充该值,必须使用CONFIG_DEBUG_STACK_USAGE编译内核。 我怀疑大多数生产内核不设置它。

 # RHEL5 $ grep CONFIG_DEBUG_STACK_USAGE /boot/config-`uname -r` # CONFIG_DEBUG_STACK_USAGE is not set # Lucid $ grep CONFIG_DEBUG_STACK_USAGE /boot/config-`uname -r` # CONFIG_DEBUG_STACK_USAGE is not set # Precise $ grep CONFIG_DEBUG_STACK_USAGE /boot/config-`uname -r` # CONFIG_DEBUG_STACK_USAGE is not set