Проблемы с дистрибьютором DPDK - не выдаются рабочие пакеты - PullRequest
1 голос
/ 10 апреля 2019

У меня есть кое-что работающее, которое модифицировано из примера распространителя DPDK.

Распределитель (d) настроен на ядре и получает mbuf, которые передаются через цикл со следующими функциями:

rte_distributor_process(d, mbufs, nb_rx);
rte_distributor_returned_pkts(d, mbufs, 4*BURST_SIZE);

Рабочие просто звонят:

num = rte_distributor_get_pkt(d, id, mbuf, mbuf, num);

При работающем ядре мониторинга (из примера) это показывает, что если я передаю разные идентификаторы различным ядрам, только одному работнику даются задания (дажеесли этот работник не может идти в ногу).Если я установлю их идентификаторы одинаковыми (небезопасно, я знаю), то они будут распределены каждому работнику должным образом, например:

num = rte_distributor_get_pkt(d, 0, mbuf, mbuf, num);

В основном, rte_distributor_get_pkt Функция блокирует все остальные идентификаторы после того, как один идентификатор получает пакет.

В настройке должно быть что-то, что я делаю неправильно.Есть идеи?

Я запускаю это на AWS F1 Instance с амазонкой версией DPDK, ветка от v18.05, кажется.Из различий похоже, что они добавили драйвер для ПЛИС.

...