Hi,
Is it possible for two or more processes to share the same mbuf_pool in SR-IOV with single rx/tx queue? char *eal_argv[] = {"fakeelf", "-c2", "-n4", "--proc-type=primary",}; int ret = rte_eal_init(4, eal_argv); And for secondary, we are passing --proc-type=secondary and adjust -c option according to the core number (1 << core_num). rte_pktmbuf_pool_create(mbuf_pool_name, NB_MBUFS, MBUF_CACHE_SIZE, 0, RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id()); We have seen that it does not work. However, with PCI pass through of whole NIC, we can easily share same mbuf_pool with many processes. What are the limitations with SR-IOV and DPDK? If we create one primary and don't create any secondary proc-type, then that seems to work with SR-IOV. However, the moment we add a secondary process, rte_mempool_lookup() returns NULL. Note that we see only 1 queue for rx and tx and multi-queue gets disabled the moment we enable VFs. [683877.050219] ixgbe 0000:06:00.0: *Multi*queue Disabled: Rx Queue count = 1, Tx Queue count = 1 [683879.799872] ixgbe 0000:06:00.1: *Multi*queue Disabled: Rx Queue count = 1, Tx Queue count = 1 The device is question is as follows: 06:00.0 *Ether*net controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 06:00.1 *Ether*net controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 06:10.0 *Ether*net controller: Intel Corporation 82599 *Ether*net Controller Virtual Function (rev 01) 06:10.1 *Ether*net controller: Intel Corporation 82599 *Ether*net Controller Virtual Function (rev 01) 06:10.2 *Ether*net controller: Intel Corporation 82599 *Ether*net Controller Virtual Function (rev 01) 06:10.3 *Ether*net controller: Intel Corporation 82599 *Ether*net Controller Virtual Function (rev 01) Thanks, /Saurabh