Hi Amit, On 1/20/2016 11:19 PM, Amit Tomer wrote: > Hello, > >> For this case, please use --single-file option because it creates much more >> than 8 fds, which can be handled by vhost-user sendmsg(). > Thanks, I'm able to verify it by sending ARP packet from container to > host on arm64. But sometimes, I do see following message while running > l2fwd in container(pointed by Rich). > > EAL: Master lcore 0 is ready (tid=8a7a3000;cpuset=[0]) > EAL: lcore 1 is ready (tid=89cdf050;cpuset=[1]) > Notice: odd number of ports in portmask. > Lcore 0: RX port 0 > Initializing port 0... PANIC in kick_all_vq(): > TUNSETVNETHDRSZ failed: Inappropriate ioctl for device > > How it could be avoided? > > Thanks, > Amit.
Thanks for pointing out this bug. Actually it's caused by one of my fault. So vhost-user cannot work well. Below change can help start vhost-user. diff --git a/drivers/net/virtio/vhost.c b/drivers/net/virtio/vhost.c index e423e02..dbca374 100644 --- a/drivers/net/virtio/vhost.c +++ b/drivers/net/virtio/vhost.c @@ -483,8 +483,9 @@ static void kick_all_vq(struct virtio_hw *hw) uint64_t features = hw->guest_features; features &= ~(1ull << VIRTIO_NET_F_MAC); vhost_call(hw, VHOST_MSG_SET_FEATURES, &features); - if (ioctl(hw->backfd, TUNSETVNETHDRSZ, &hw->vtnet_hdr_size) == -1) - rte_panic("TUNSETVNETHDRSZ failed: %s\n", strerror(errno)); + if (hw->type == VHOST_KERNEL) + if (ioctl(hw->backfd, TUNSETVNETHDRSZ, &hw->vtnet_hdr_size) == -1) + rte_panic("TUNSETVNETHDRSZ failed: %s\n", strerror(errno)); PMD_DRV_LOG(INFO, "set features:%"PRIx64"\n", features); Thanks, Jianfeng