У меня есть приложение c ++ (Linux), которое использует нашу собственную реализацию Queue. Здесь поток «Thread1» читает из интерфейса NI C и записывает в очередь, а другой поток «Thread2» в очередь из очереди. Это было реализовано с помощью механизма блокировки. Чтобы ускорить постановку / снятие очереди, я хотел реализовать только очередь DPDK в своем приложении. Я выполнил ПО C и обнаружил, что производительность улучшается.
Проблема, с которой я сталкиваюсь, заключается в том, что как только я инициализирую свой код с помощью "rte_eal_init", все ядра ЦП попадают под контроль потоков DPDK. (если я передаю 1 ядро, используя аргумент командной строки, то беру только это ядро). Я хочу избежать взятия ядер DPDK. Я просто хочу использовать очередь DPDK как любую другую библиотеку.
Другая проблема заключается в том, что если я не использую API DPDK для вращения потоков, то все потоки появляются после того, как "rte_eal_init" появляется на главном ЦП. (cpu0). Я ожидаю, что планировщик будет свободно планировать потоки в любом из ядер.
Может кто-нибудь дать какую-либо идею, если это возможно, или есть какой-то другой способ сделать это.