Network programming 高流量下的用户空间不足

Network programming 高流量下的用户空间不足,network-programming,linux-device-driver,embedded-linux,Network Programming,Linux Device Driver,Embedded Linux,我正在linux网关设备上实现一个用户空间嵌入式configuration manager应用程序和一个网络设备驱动程序我们遇到了以下问题:在CPU负载~100%的高TCP流量下,管理器应用程序处于饥饿状态:它无法从用户空间向网络驱动程序发送管理命令-命令超时。要求能够发送命令,即使这会导致吞吐量降低。如何解决这个问题 以下是我们系统的一些细节:内核2.6.35,禁用抢占,网络驱动程序在中断上下文中处理传入的数据包您有两个选项,好的和不好的(我还没有考虑坏的): 1.将中断移动到线程- 2.中断

我正在linux网关设备上实现一个用户空间嵌入式configuration manager应用程序和一个网络设备驱动程序
我们遇到了以下问题:在CPU负载~100%的高TCP流量下,管理器应用程序处于饥饿状态:它无法从用户空间向网络驱动程序发送管理命令-命令超时。要求能够发送命令,即使这会导致吞吐量降低。如何解决这个问题

以下是我们系统的一些细节:内核2.6.35,禁用抢占,网络驱动程序在中断上下文中处理传入的数据包

您有两个选项,好的和不好的(我还没有考虑坏的): 1.将中断移动到线程-
2.中断速度调整

“管理器应用程序不足”-内存不足?当
malloc()
失败时,这些程序做什么?他们是否跛行循环以执行重试?或者在重试之前至少延迟或
sched_yield()
?当内存请求失败时,他们会报告吗?很明显,问题是CPU不足,而不是内存,除非你试图回答自己的想法。我指的是CPU不足,对不起:命令发送超时失败