是否可以限制内核USB驱动程序中的数据流量?

时间:2015-06-11 08:10:36

标签: linux linux-kernel kernel usb driver

我正在使用基于Linux 2.6.32版的设备 该设备包括一个通过USB与设备处理器通信的模块。

我在lte网络中的远程设备和通过以太网或USB连接到我的设备的PC之间运行繁重的tcp / udp双向iperf流量。

设备的CPU达到100%。 irq + sirq达到90%以上。 由于设备一直忙于数据,因此任何正在运行的任务几乎都没有机会获得CPU时间。

过了一段时间,在几分钟到几个小时之间,iperf卡住了,交通停止了。 当PC通过USB而不是以太网连接到设备时,问题主要发生。 而且当使用TCP流量而不是UDP时。

我尝试了几项限制流量或改善行为的方法,包括:

  • tc(交通管制申请)
  • 在内核中设置CONFIG_MUSB_PIO_ONLY
  • ethtool,但硬件不支持

他们都没有给出显着的结果。

我目前的调查是更改内核USB驱动程序的代码,以限制流量和免费资源。 当给定标准发生时,方法是丢弃数据包:即CPU或中断数达到给定阈值。

更改将在使用的标准USB驱动程序中完成

  • 用于与kernel / drivers / usb / host
  • 中的lte模块进行通信
  • 用于与kernel / drivers / net / usb中的PC通信

这个选项看起来可行吗?我对内核USB驱动程序知之甚少,如果您有任何帮助或建议,我将不胜感激。

0 个答案:

没有答案
相关问题