问题在于,这些函数用__init和__devinit注释,这些函数在ftrace函数跟踪器中列出为黑色。
为什么?因为作为模块初始化函数(或内核初始化函数),它们在初始化期间被加载,并在初始化完成时被删除。ftrace跟踪的每个函数都保存在一个特殊的紧凑表中。当前,没有办法告诉ftrace这些函数已被删除(释放),并且ftrace应该将其从表中删除。如果我们只是忽略这一点,那么在启用函数跟踪时,ftrace将尝试修改不再存在的位置,并且可能导致各种问题(还记得e1000e错误吗?)。
如果您确实要跟踪它们,请删除那些注释。然后它们应该出现在要跟踪的功能列表中。



