1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-gazelle

 / Детали:

Инициализация пользовательского протокола Gazelle в стеке DPDK завершилась неудачей при запуске с...

Предстоит сделать
Владелец
Создано  
10.03.2025

использованием lstack.

Тестовая среда:
openeuler22.03_LTS_SP3 версия системы, тип сетевой карты X710

Шаги выполнения операций:
https://docs.openeuler.org/zh/docs/22.03_LTS_SP3/docs/Gazelle/Gazelle.html```python
dpdk_args=["-l", "0", "-a", "0000:af:00.0", "--socket-mem", "2048,0,0,0", "--huge-dir", "/mnt/hugepages-lstack", "--proc-type", "primary"]
stack_thread_mode="run-to-wakeup"

режим ltran требует добавления "--map-perfect" и "--legacy-mem" в dpdk_args

use_ltran=0
kni_switch=0
flow_bifurcation=0
low_power_mode=0

количество необходимых mbuff = tcp_conn_count * mbuf_count_per_conn

tcp_conn_count = 1500
mbuf_count_per_conn = 170

размер кольцевой очереди отправки, по умолчанию 32, максимум 2048

#if udp pktlen превышает 45952(32 * 1436)Байт, то send_ring_size должно быть как минимум 64.
send_ring_size = 32

размер кольцевой очереди приема, по умолчанию 128, максимум 2048

recv_ring_size = 128

параметры протокола стека потока на каждый цикл

чтение данных из протокола стека в recv_ring

read_connect_number = 4

обработка RPC сообщений

rpc_number = 4

количество пакетов NIC чтения

nic_read_number = 128
nic_rxqueue_size = 4096
nic_txqueue_size = 2048

на каждом ядре процессора запускается протокол стека потока.

num_cpus="0"

биндинг рабочего потока приложения к NUMA в epoll/poll.

app_bind_numa=1

установка аффинитета главного потока приложения DPDK.

main_thread_affinity=0
host_addr="200.0.0.110"
mask_addr="255.255.255.0"
gateway_addr="200.0.0.1"
devices="68:91:D0:66:BC:B0"

0: использовать правило RSS

1: использовать TCP кортеж правила для указания пакета в очередь NIC

tuple_filter=0

tuple_filter=1, ниже конфигурация действительна

num_process=1
process_numa="0,1"
process_idx=0

tuple_filter=0, ниже конфигурация действительна

listen_shadow=0

режим VLAN; поддерживается только от -1 до 4094, -1 выключен

nic_vlan_mode=-1

режим объединения; поддерживается только объединением 4 или 6, -1 выключен

bond_mode=-1


Перевод:

```python
dpdk_args=["-l", "0", "-a", "0000:af:00.0", "--socket-mem", "2048,0,0,0", "--huge-dir", "/mnt/hugepages-lstack", "--proc-type", "primary"]
stack_thread_mode="run-to-wakeup"
# режим ltran требует добавления "--map-perfect" и "--legacy-mem" в dpdk_args
use_ltran=0
kni_switch=0
flow_bifurcation=0
low_power_mode=0
# количество необходимых mbuff = tcp_conn_count * mbuf_count_per_conn
tcp_conn_count = 1500
mbuf_count_per_conn = 170
# размер кольцевой очереди отправки, по умолчанию 32, максимум 2048
# если udp pktlen превышает 45952(32 * 1436) Байт, то send_ring_size должно быть как минимум 64.
send_ring_size = 32
# размер кольцевой очереди приема, по умолчанию 128, максимум 2048
recv_ring_size = 128
# параметры протокола стека потока на каждый цикл
# чтение данных из протокола стека в recv_ring
read_connect_number = 4
# обработка RPC сообщений
rpc_number = 4
# количество пакетов NIC чтения
nic_read_number = 128
nic_rxqueue_size = 4096
nic_txqueue_size = 2048
# на каждом ядре процессора запускается протокол стека потока.
num_cpus="0"
# биндинг рабочего потока приложения к NUMA в epoll/poll.
app_bind_numa=1
# установка аффинитета главного потока приложения DPDK.
main_thread_affinity=0
host_addr="200.0.0.110"
mask_addr="255.255.255.0"
gateway_addr="200.0.0.1"
devices="68:91:D0:66:BC:B0"
# 0: использовать правило RSS
# 1: использовать TCP кортеж правила для указания пакета в очередь NIC
tuple_filter=0
# tuple_filter=1, ниже конфигурация действительна
num_process=1
process_numa="0,1"
process_idx=0
# tuple_filter=0, ниже конфигурация действительна
listen_shadow=0
# режим VLAN; поддерживается только от -1 до 4094, -1 выключен
nic_vlan_mode=-1
# режим объединения; поддерживается только объединением 4 или 6, -1 выключен
bond_mode=-1
```#MAC-адреса слейвов объединения, разделённые точкой с запятой, поддерживаются только два MAC-адреса
#bond_slave_mac="aa:bb:cc:dd:ee:ff;gg:hh:ii:jj:kk:ll"
#максимальное количество пулов памяти RPC
rpc_msg_max=4096
mbuf_pool_size=1024000
```Выполняемые команды: LD_PRELOAD=/usr/lib64/liblstack.so GAZELLE_BIND_PROCNAME=test ./test

**Полученный результат:**  
```shell
[root@localhost ~]# LD_PRELOAD=/usr/lib64/liblstack.so GAZELLE_BIND_PROCNAME=ttpd ./ttpd -i lo -d -c 64
dpdk argv: -l 0 -a 0000:af:00.0 --socket-mem 2048,0,0,0 --huge-dir /mnt/hugepages-lstack --proc-type primary --file-prefix 07 
LSTACK[63130]: cfg_init success
EAL: Обнаружено логических ядер процессора: 64
EAL: Обнаружено NUMA узлов: 2

Обнаружена проблема с конфигурацией RSS для сетевой карты x710. Как её можно решить?

Для решения этой проблемы следует проверить следующие аспекты:

  1. Конфигурация RSS: Убедитесь, что конфигурация RSS совместима с вашей сетевой картой x710. В частности, длина ключа RSS должна соответствовать требованиям устройства.

  2. Параметры конфигурации: Проверьте параметры конфигурации RSS, такие как размер ключа RSS и выбранные хэш-функции. Для сетевой карты x710 допустимый размер ключа RSS составляет 52 байта.

  3. Поддержка оборудования: Убедитесь, что используемые драйверы поддерживают вашу сетевую карту x710. Возможно, потребуется обновление драйверов или конфигурационных файлов.

Пример шагов по исправлению:

  • Измените размер ключа RSS до 52 байт.
  • Обновите конфигурацию RSS в соответствии с требованиями вашей сетевой карты x710.

Если проблема сохраняется, рекомендуется обратиться за помощью к производителю оборудования или специалистам по сетям.

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
sig/sig-high-perform
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openeuler-gazelle.git
git@api.gitlife.ru:oschina-mirror/openeuler-gazelle.git
oschina-mirror
openeuler-gazelle
openeuler-gazelle