【问题标题】:IOATDMA is not being used by network drivers网络驱动程序未使用 IOATDMA
【发布时间】:2017-12-07 09:00:03
【问题描述】:

我正在 x86_64 英特尔至强板上测试水晶海滩 dma。我想用水晶海滩 dma 测试 e1000e 和 ixgbe 驱动程序。

我已经为水晶海滩 dma 修补了 ioatdma 驱动程序(pci.c 和 hw.h 文件)。现在我面临两个驱动程序根本不使用此通道的问题。 bytes_transferred 和 memcpy_count 始终为零。

以下是配置-

我使用的内核是 2.6.32.431

[root@hvtxrs82 dma]# pwd

/sys/class/dma

[root@hvtxrs82 dma]# ls

dma0chan0   dma12chan0  dma15chan0  dma3chan0  dma6chan0  dma9chan0

dma10chan0  dma13chan0  dma1chan0   dma4chan0  dma7chan0

dma11chan0  dma14chan0  dma2chan0   dma5chan0  dma8chan0

我已经插入了 e1000e 和 ixgbe 驱动程序。 dmachannels 显示了这一点。

[root@hvtxrs82 dma]# cat /sys/class/dma/dma0chan0/in_use
4

lspci 输出 -

80:04.0 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 0 (rev 04)

80:04.1 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 1 (rev 04)

80:04.2 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 2 (rev 04)

80:04.3 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 3 (rev 04)

80:04.4 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 4 (rev 04)

80:04.5 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 5 (rev 04)

80:04.6 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 6 (rev 04)

80:04.7 System peripheral: Intel Corporation Ivytown Crystal Beach DMA Channel 7 (rev 04)

我已将堆栈设置更改为sysctl net.ipv4.tcp_dma_copybreak=1

[root@hvtxrs82 dma]# cat /sys/class/dma/dma0chan0/bytes_transferred

0

所有频道都一样。但是 ethtool 显示接收到的流量和数据包。那么为什么没有使用 dma 通道呢?

【问题讨论】:

    标签: linux-kernel linux-device-driver


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-27
      • 2020-05-15
      • 1970-01-01
      • 2020-11-27
      • 2018-10-20
      • 2011-07-11
      • 1970-01-01
      相关资源
      最近更新 更多