#dpdk
#dpdk
Вопрос:
Возможно ли реализовать кольцевой буфер в DPDK, в котором один объект, поставленный в очередь одним производителем, может быть удален из очереди несколькими потребителями (скажем, 4 потребителями)?. т. е. .. Является ли объект, удаляемый из очереди 1-м потребителем в кольцевом буфере, доступным для других потребителей?
Ответ №1:
Кольца DPDK — это просто указатели на буферы, операции постановки в очередь / удаления из очереди довольно дешевы. Итак, лучшее решение, которое приходит на ум, — создать 4 очереди и поставить один и тот же объект в очередь 4 раза в 4 разных очереди.
Могут возникнуть проблемы с освобождением этого объекта. Взгляните на счетчик ссылок mbuf.
И могут возникнуть проблемы с одновременным изменением объекта. Взгляните на блокировки или другие механизмы синхронизации.