我正在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频道没有被使用呢?
答案 0 :(得分:0)