Hi,
On Fri, Mar 30, 2018 at 02:58:31PM +0800, Junjie Chen wrote:
When creating vdev dynamically, vhost pmd driver starts directly without
checking TX/RX queues are ready or not, and thus causes segmentation fault
when vhost library accesses queues. This patch adds a flag to check whether
queues are setup or not, and adds queues setup into dev_start function to
allow user to start them after setting up.
for me, with this patch vhost enqueue/dequeue code is never called because
if (unlikely(rte_atomic32_read(&r->allow_queuing) == 0))
this check in eth_vhost_rx() is always true.
When I revert this patch it works as usual.
My testpmd cmdline is:
gdb --args $RTE_SDK/install/bin/testpmd -l 0,2,3,4,5 --socket-mem=1024 -n 4 \
--vdev 'net_vhost0,iface=/tmp/vhost-user1' \
--vdev 'net_vhost1,iface=/tmp/vhost-user2' -- \
--portmask=f --rxq=1 --txq=1 \
--nb-cores=4 --forward-mode=io -i
After starting testpmd I issue commands "set portlist 0,2,1,3", start
my guest and start another testpmd issue in the guest.
Another problem I see: Before this patch I could start testpmd, issue
the portlist command and type "start". If I do this now I get an infinite
loop of "VHOST CONFIG device not found" messages.
regards,
Jens