Skip to contentSkip to conversation

vhost pmd has become unusable from secondary processes.

Bug 194 [email protected] 1 participant 1 message Jan 21, 2019

lore
Share & tools
lore
#0 lore raw

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

            Bug ID: 194
           Summary: vhost pmd has become unusable from secondary
                    processes.
           Product: DPDK
           Version: 18.11
          Hardware: All
                OS: All
            Status: CONFIRMED
          Severity: critical
          Priority: Normal
         Component: vhost/virtio
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

This problem was discovered when trying to migrate the base of SPP(http://git.dpdk.org/apps/spp/) from DPDK v18.08 to v18.11.
In SPP, secondary processes attach (rte_eal_hotplug_add) and use vhost pmd (ex.
devargs: "eth_vhost0,iface=/tmp/sock0,queues=1,client=1").
It was no problem under DPDK v18.08 but secondary processes crash under v18.11.

As a result of some investigations, it was found that the direct cause of crash is because no value is set (i.e. null pointer) for [rt]x_pkt_burst member of rte_eth_dev of vhost.
Certainly there is no place to set on the code.
(Is this comment related to something?
https://github.com/DPDK/dpdk/blob/master/drivers/net/vhost/rte_eth_vhost.c#L1352
)

In addition, even if the value is set, it will not work.
This is because eth_vhost_[rt]x refers to vid which is the index of vhsot_devices
(https://github.com/DPDK/dpdk/blob/master/lib/librte_vhost/vhost.c#L28).
vhost_devices is per process data (i.e. not shared data) and the primary process only uses vhost_devices under v18.11 (unlike v18.08) and it is not accessed from
secondary processes.
Perhaps some fix, such as making vhost_devices a shared data, is necessary.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.