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 <
step...@networkplumber.org>:

> On Fri, 26 Nov 2021 13:27:40 +0100
> Staffan Wiklund <staffan...@gmail.com> 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.
>

Reply via email to