网络驱动程序未使用IOATDMA

时间:2014-11-13 11:20:33

标签: linux-kernel linux-device-driver

我正在x86_64 Intel xeon主板上测试水晶沙滩dma。我想用水晶沙滩dma测试e1000e和ixgbe驱动程序。

我修补了ioatdma驱动程序(pci.c和hw.h文件)for crystal beach dma。现在我面临的问题是两个司机根本不使用这个频道。 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 ouput -

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频道没有被使用呢?

1 个答案:

答案 0 :(得分:0)