DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Failed to hotplug add a device from secondary process
@ 2019-07-11 12:57 Ogawa Yasufumi
  0 siblings, 0 replies; only message in thread
From: Ogawa Yasufumi @ 2019-07-11 12:57 UTC (permalink / raw)
  To: dev

Hi all,

I have developed a multi-process app and am struggling to fix an error
while adding PMD from secondary process with hotplug feature. As we
reported in [1], I think it is because initializing hogplugged device is
changed to be done by primary first, then secondary. However,
initialization in secondary might work properly, so `rx_pkt_burst` and
`tx_pkt_burst` are NULL.

[1] https://bugs.dpdk.org/show_bug.cgi?id=194

It might happen other than vhost. I confirmed that ring and pcap PMD work
fine, but failed to run null PMD. I've got realized there is a bug in probe
function, such as rte_pmd_vhsot_probe() in
drivers/net/vhost/rte_eth_vhost.c, called from secondary.

I have fixed the issue in nullpmd by simply adding burst functions as
following. However, I'm not sure if it is correct way. In addition, cannot
fix for vhost because there are still some variables shold be setup in
secondary.

diff --git a/drivers/net/null/rte_eth_null.c
b/drivers/net/null/rte_eth_null.c
index 159c1c1fd..5e5b719c0 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -623,6 +623,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;


Could anyone help us for fixing the issue, or give us some advice?

Regards,
Yasufumi

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-07-11 12:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-11 12:57 [dpdk-dev] Failed to hotplug add a device from secondary process Ogawa Yasufumi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).