为什么Linux进程太忙而无法连接(ptrace或其他)?

为什么Linux进程太忙而无法连接(ptrace或其他)?,linux,debugging,ptrace,pstack,Linux,Debugging,Ptrace,Pstack,在多核RHEL6上,死环中有一个FIFO实时进程,因此它占用了内核上的所有CPU资源(进程绑定到内核)。但是,其他内核都很好 此时,deadloop中进程的pstack无法打印任何内容。同时,任何其他进程的pstack都可以很好地工作 谁能告诉我为什么 谢谢 用这种方法尝试,将debuger命令放在一个带有taskset-c corenumber/path/command的空闲内核中,然后尝试使用chrt命令在调试过程的fifo中更改调度类 我认为您发现了这个问题,因为正常进程无法停止fifo进

在多核RHEL6上,死环中有一个FIFO实时进程,因此它占用了内核上的所有CPU资源(进程绑定到内核)。但是,其他内核都很好

此时,deadloop中进程的pstack无法打印任何内容。同时,任何其他进程的pstack都可以很好地工作

谁能告诉我为什么


谢谢

用这种方法尝试,将debuger命令放在一个带有taskset-c corenumber/path/command的空闲内核中,然后尝试使用chrt命令在调试过程的fifo中更改调度类


我认为您发现了这个问题,因为正常进程无法停止fifo进程

请尝试以这种方式,使用taskset-c corenumber/path/command将debuger命令放在空闲内核中,然后尝试使用chrt命令更改调试进程fifo中的调度类


我认为您发现了这个问题,因为正常进程无法停止fifo进程

正如您所说,但调试器似乎仍然无法捕获堆栈跟踪。我的“测试”程序是FIFO优先级1。我的调试器是FIFO优先级99。结果似乎是一样的。然而,当我试图将shell锁定到自由内核时,它似乎正在工作——即使没有提高调试器的优先级也是如此。:-)现在的问题是,为什么“锁定”内核会阻止浮动进程?真的很奇怪,因为自由核心使用了0%的CPU。谢谢正如您所说的那样尝试过,但调试器似乎仍然无法捕获堆栈跟踪。我的“测试”程序是FIFO优先级1。我的调试器是FIFO优先级99。结果似乎是一样的。然而,当我试图将shell锁定到自由内核时,它似乎正在工作——即使没有提高调试器的优先级也是如此。:-)现在的问题是,为什么“锁定”内核会阻止浮动进程?真的很奇怪,因为自由核心使用了0%的CPU。谢谢