2

Я пытаюсь изменить настройки NIC (Intel 10G NIC) с помощью ethtool, но не могу этого сделать.

Я старался

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

Почему я не могу изменить настройки?

1 ответ1

4

Контроллер может обрабатывать только 4096 записей в каждом кольце. NIC фактически нуждается в адресе DMA каждого доступного слота в каждом кольцевом буфере. Он имеет только 4096 слотов в каждом направлении. (И больше не очень поможет.)

Кольцо работает так (я расскажу только о приеме, потому что это проще, но концепция та же):

  1. Драйвер выделяет определенное количество приемных буферов в основной памяти DMAable.

  2. Драйвер сообщает NIC базовые адреса этих буферов.

  3. Когда NIC получает пакеты, он направляет их в эти буферы.

  4. Драйвер спрашивает NIC, сколько пакетов он DMAed в основной памяти.

  5. Драйвер обрабатывает эти пакеты.

  6. Драйвер выделяет новые приемные буферы для пополнения кольца.

  7. Драйвер регистрирует базовые адреса новых буферов с NIC.

Таким образом, сетевая карта должна знать физический адрес каждого буфера в кольце. Этот NIC имеет только 4096 слотов в каждом направлении для этих физических адресов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .