[dpdk-dev] [PATCH] net/null: fix multi-process rx and tx

Ferruh Yigit ferruh.yigit at intel.com
Tue Oct 1 18:00:21 CEST 2019


On 9/29/2019 3:41 AM, Yasufumi Ogawa wrote:
> Packet processing in secondary process cannot work because rx_pkt_burst
> and tx_pkt_burst in eth_dev are not initialized while probing device.
> This patch is to the initialization.
> 
> Signed-off-by: Yasufumi Ogawa <yasufum.o at gmail.com>
> ---
>  drivers/net/null/rte_eth_null.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
> index 0c60d241a..5a2010e3e 100644
> --- a/drivers/net/null/rte_eth_null.c
> +++ b/drivers/net/null/rte_eth_null.c
> @@ -586,6 +586,13 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)
>  		/* TODO: request info from primary to set up Rx and Tx */
>  		eth_dev->dev_ops = &ops;
>  		eth_dev->device = &dev->device;
> +		if (packet_copy) {
> +			eth_dev->rx_pkt_burst = eth_null_copy_rx;
> +			eth_dev->tx_pkt_burst = eth_null_copy_tx;
> +		} else {
> +			eth_dev->rx_pkt_burst = eth_null_rx;
> +			eth_dev->tx_pkt_burst = eth_null_tx;
> +		}
>  		rte_eth_dev_probing_finish(eth_dev);
>  		return 0;
>  	}
> 


Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>

But this seems the issue for other virtual PMDs too, @Yasufumi, can you please
check others too if you have any bandwidth for it?


I assume this is missing for a long time because there is not easy way to test
them in secondary process, testpmd doesn't support the multi process. cc'ed
testpmd and multi process maintainers, what do you think about adding multi
process support to testpmd?


I tested with "examples/multi_process/symmetric_mp" sample app, it required
fixing with null pmd:
1- Requested offload config was not supported by null pmd
2- promics_enable dev_ops was not implemented in null pmd

We should fix sample app / virtual pmds too so they can work together...


More information about the dev mailing list