Hi Thomas,
On 4/7/2017 4:14 AM, Thomas Monjalon wrote:
Ping
2017-03-08 12:40, Thomas Monjalon:
2017-03-02 11:00, Ami Sabo:
The patchset fixes secondary process crash issue when it tries
to access virtio-user pmd (e.g. via rte_eth_rx_burst).
The crash happens because in virtio_user probing,
eth_dev_attach_secondary is not being called, as it does from
rte_eth_dev_pci_probe. Therefore, the device is not properly
initialized.
The patchset contains 2 patches:
1. Export rte_eth_dev_attach_secondary, so non-pci drivers will be
allowed to call it.
2. Fix the actual bug by calling the function during virtio_user probe.
I do not understand why nobody complains for other virtual devices.
We should have the same issue with pcap, tap, ring, af_packet, etc.
Yes, none of vdev except ring supports primary/secondary mode.
Probably that other drivers are broken in secondary processes.
Or should we make a fix to handle every secondary vdev in
rte_eth_dev_allocate() ?
Agreed. We can change the rte_eth_dev_allocate() like this:
if (primary)
allocate();
else
lookup(name);
Besides, we need each vdev to handle its private. For example, pcap
should share the selectable unix fd with secondary process; virtio-user
should share callfds and kickfds; tap should share the fd pointing to
/dev/tun.
Thanks,
Jianfeng