[dpdk-users] docker container, EAL: failed to initialize virtio_user0 device

Neeraj Tandon (netandon) netandon at cisco.com
Tue May 23 22:21:53 CEST 2017


Check the  /var/run/usvhost . Do you have the socket created there ?   Is that visible from docker.

Sometime back when I used a container, I passed a mac address for DPDK Parameters when starting the dpdk test_pmd application in container.

Regards,
Neeraj


On 5/20/17, 8:53 PM, "users on behalf of Wu, Xiaoban" <users-bounces at dpdk.org on behalf of Xiaoban_Wu at student.uml.edu> wrote:

    Hi DPDK Users,
    
    
    I am trying to use docker container and ovs(2.6.0)-dpdk(16.07) to setup a test. I want to setup two docker containers, each of them will use a virtual device (socket) created by the ovs-dpdk. The final purpose would let the two containers talk to each other.
    
    
    Setup ovs-dpdk
    
      1.  ovsdb-tool create $ovs-dir/etc/openvswitch/conf.db $ovs-dir/share/openvswitch/vswitch.ovsschema
      2.  ovsdb-server --remote=punix:$ovs-dir/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
      3.  ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
      4.  ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="512,512"
      5.  ovs-vswitchd  unix:$ovs-dir/var/run/openvswitch/db.sock --pidfile --detach  --log-file=$ovs-dir/temp.log
    
    Setup bridge and ports
    
      1.  ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
      2.  ovs-vsctl add-port br0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser ofport_request=1
      3.  ovs-vsctl add-port br0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser ofport_request=2
      4.  ovs-ofctl add-flow br0 priority=1000,in_port=1,actions=output:2
      5.  ovs-ofctl add-flow br0 priority=1000,in_port=2,actions=output:1
    
    Run the docker container
    
      1.  docker run -it --privileged -v $ovs-dir/var/run/openvswitch/vhost-user1:/var/run/usvhost -v /mnt/huge/:/dev/hugepages/ $docker-image bash
    
    Run the dpdk application in the docker container
    
      1.  $dpdk-app -c 0x01 --socket-mem=128,0 --vdev=virtio_user0,path=/var/run/usvhost --file-prefix="docker1"
    
    However, I encountered this error
    PMD: vhost_user_setup(): connect error, Connection refused
    PMD: virtio_user_dev_init(): backend set up fails
    PMD: virtio_user_pmd_devinit(): virtio_user_dev_init fails
    EAL: failed to initialize virtio_user0 device
    
    It seems like the application in the docker container cannot connect the socket created by the ovs-dpdk.
    
    Can anybody please help me and point out some possible solutions? Looking forward to your reply. Thanks very much for your help.
    
    Best wishes,
    Xiaoban
    
    



More information about the users mailing list