无法使用ethtool更改NIC设置


2

我正在尝试使用ethtool更改我的NIC(Intel 10G NIC)设置,但似乎无法做到这一点。

我试过了

ethtool -G xge0 rx 32768 tx 32768

然后尝试查看设置是否已更改使用

ethtool -g xge0

但我看到了输出

Ring parameters for xge0: 
Pre-set maximums: 
RX:        4096 
RX Mini:   0 
RX Jumbo:  0 
TX:        4096 
Current hardware settings: 
RX:        4096 
RX Mini:   0 
RX Jumbo:  0 
TX:        4096

为什么我不能更改设置?

Answers:


4

控制器每个环只能处理4,096个环项。 NIC实际上需要每个环形缓冲区中每个可用插槽的DMA地址。每个方向只有4,096个插槽。 (无论如何,更多的事情并不会真正有用。)

戒指就像这样(我只会接受,因为它更简单,但概念是相同的):

  1. 驱动程序在DMAable主存储器中分配一定数量的接收缓冲区。

  2. 驱动程序告诉NIC这些缓冲区的基地址。

  3. 当NIC接收数据包时,它会将它们DMA到这些缓冲区。

  4. 驱动程序询问NIC已将DMA数据包分配到主内存中。

  5. 驱动程序处理这些数据包。

  6. 驱动程序分配新的接收缓冲区以重新填充环。

  7. 驱动程序使用NIC注册新缓冲区的基址。

因此,NIC必须知道环中每个缓冲区的物理地址。对于这些物理地址,此NIC在每个方向上只有4,096个插槽。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.