tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

virtio net device stuck for UDP burst transmission



Hi,

When I try UDP burst transmission with vioif driver on KVM,
all network connections stuck.

I'm using kernel source from NetBSD current.
Base system is installed by iso image of NetBSD7.

GUEST < NetBSD >

% uname -a
NetBSD  7.99.29 NetBSD 7.99.29 (MYKERNEL) #6: Tue May 10 10:14:30 JST
2016  root@:/usr/src/sys/arch/amd64/compile/MYKERNEL amd64

** MYKERNEL is just a copy of GENERIC

HOST < Ubuntu >
% uname -a
Linux N-1183 4.4.0-22-generic #39-Ubuntu SMP Thu May 5 16:53:32 UTC
2016 x86_64 x86_64 x86_64 GNU/Linux

VMM < QEMU/KVM >
QEMU version v2.6.0-rc0

( Command )
qemu-system-x86_64
    -enable-kvm \
    -curses \
    -m 4096 \
    -drive file=./nbsdvd.img \
    -net nic,model=virtio -net
tap,ifname=tap0,script=qemu-ifup,downscript=qemu-ifdown

% cat qemu-ifup
#!/bin/bash
echo "Bringing up $1 for bridged mode..."
ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to virbr0..."
brctl addif virbr0 $1
exit 0

% cat qemu-ifdown
#!/bin/bash
echo "Removing $1 to virbr0..."
brctl delif virbr0 $1
echo "Shutting down $1..."
ifconfig $1 down
exit 0


Initially, we faced this problem when we run UDP benchmarks with iperf3.

We expect this C program can reproduce the issue in your environments.
This is much simpler and good to clarify the problem.
https://gist.github.com/jmmlmendes/aaea56a8b7044487595ef7a6782fc018

When I run this program, whole network connections stuck.
The error message is "errno 55 - No buffer space available".
(If it works without any problem, could you try increased number of TX
packets "PACKETS_TO_SEND"?)

If I change the driver model to e1000, it works correctly.

Do you have any idea?

Thanks,
Kenichi


Home | Main Index | Thread Index | Old Index