Hello Stephen, thanks for your answer. >Which of the rte_eth_xxx functions are you asking about? I wonder if the following rte_eth_xxx functions can be used in secondary processes: rte_eth_rx_burst rte_eth_tx_burst rte_eth_stats_reset rte_eth_xstats_get rte_eth_rx_queue_setup rte_eth_tx_queue_setup rte_eth_macaddr_getueue_setup rte_eth_dev_set_mtu rte_eth_dev_rx_queue_stop rte_eth_dev_tx_queue_stop rte_eth_dev_info_get rte_eth_dev_get_name_by_port rte_eth_dev_start rte_eth_dev_socket_id rte_eth_dev_configure rte_eth_dev_count_avail I also would like to ask if a secondary process can create and free memory pools using for example the following functions: rte_pktmbuf_pool_create rte_mempool_create rte_mempool_create_empty rte_mempool_set_ops_byname rte_mempool_populate_default rte_mempool_free The applications I would like to use for shared memory using the DPDK multi-process use these rte_eth_xxx and rte memory pool functions for handling Ethernet devices and memory pools so I wonder if these applications need to be modified in order to be used as secondary processes. The NICs I plan to use are Intel 700 series (XL710 40GbE, XXV710 25 GbE) and Mellanox ConnectX-4 Lx 25GbE, ConnectX-5 100 GbE and ConnectX-6 100 GbE. Can these be used from both the primary and the secondary processes? Regards Staffan Den fre 26 nov. 2021 kl 18:22 skrev Stephen Hemminger < stephen@networkplumber.org>: > On Fri, 26 Nov 2021 13:27:40 +0100 > Staffan Wiklund wrote: > > > Hello > > > > I wonder if you please can help me with some questions regarding the DPDK > > multi-process feature? > > > > If a primary process and the secondary processes all execute on different > > CPU cores, > > what limitations are there on the secondary processes when using DPDK > > functions > > for initialization of EAL and for handling ethernet devices? > > > > That is, is a secondary process allowed to call the rte_eal_init function > > or any of > > the rte_eth_xxx functions? > > > Secondary process has to call rte_eal_init() with secondary (or auto flag). > Which of the rte_eth_xxx functions are you asking about? > > > What will happen if a secondary process calls any of these DPDK > functions? > > > > The reason for these questions is that I would like to execute 3-4 DPDK > > applications that > > now executes as stand-alone applications as one primary process and the > > other > > applications as secondary processes. All these processes will share > memory > > which > > shall be used to improve the speed of communication between the > > applications. > > Several applications do this. > > > The applications currently use DPDK for Ethernet based communication and > I > > would > > like to learn what needs to be modified in order to be able to execute > them > > as a > > primary and secondary processes using DPDK shared memory. > > > > Best regards > > Staffan > > To be honest, my experience is that not all functions work on all drivers > with the multi-process model. The documentation mostly covers the ones that > don't but you have to be careful and test with particular drivers and use > cases. >