Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jan 2020 14:32:54 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 243392] vmx driver input buffer corruption
Message-ID:  <bug-243392-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D243392

            Bug ID: 243392
           Summary: vmx driver input buffer corruption
           Product: Base System
           Version: 12.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: alexandr.oleynikov@gmail.com

Tested on 12.1-Release, 12.1-Release-p1 and with patch regarding tso from
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D236999

All VM running on the same host with VMware ESXi, 6.7.0, 15160138=20
 1 VM - FreeBSD 12.1
 2 VM - Any OS (tested with different, second one is irellevant)

After some network load packets in the interface queue being to get stuck

Reproduce in differents enviroment with different netowrk load
Easiest way to reproduce - copy large file from second VM to FreeBSD using
samba or ftp.
Some output examples:
172.31.255.2 - FreeBSD
172.31.255.3 - second VM

Ping:
8008 bytes from 172.31.255.3: icmp_seq=3D321 ttl=3D128 time=3D0.375 ms
8008 bytes from 172.31.255.3: icmp_seq=3D322 ttl=3D128 time=3D0.229 ms
8008 bytes from 172.31.255.3: icmp_seq=3D323 ttl=3D128 time=3D0.179 ms
8008 bytes from 172.31.255.3: icmp_seq=3D324 ttl=3D128 time=3D0.203 ms
8008 bytes from 172.31.255.3: icmp_seq=3D325 ttl=3D128 time=3D0.278 ms
8008 bytes from 172.31.255.3: icmp_seq=3D326 ttl=3D128 time=3D0.178 ms
8008 bytes from 172.31.255.3: icmp_seq=3D327 ttl=3D128 time=3D2.204 ms
8008 bytes from 172.31.255.3: icmp_seq=3D328 ttl=3D128 time=3D0.226 ms
8008 bytes from 172.31.255.3: icmp_seq=3D329 ttl=3D128 time=3D0.221 ms
8008 bytes from 172.31.255.3: icmp_seq=3D330 ttl=3D128 time=3D0.466 ms
8008 bytes from 172.31.255.3: icmp_seq=3D331 ttl=3D128 time=3D0.253 ms=20=
=20=20
8008 bytes from 172.31.255.3: icmp_seq=3D350 ttl=3D128 time=3D1020.494 ms  =
<-- start
file copy
8008 bytes from 172.31.255.3: icmp_seq=3D362 ttl=3D128 time=3D1037.839 ms
8008 bytes from 172.31.255.3: icmp_seq=3D381 ttl=3D128 time=3D4162.085 ms
8008 bytes from 172.31.255.3: icmp_seq=3D382 ttl=3D128 time=3D5202.940 ms
8008 bytes from 172.31.255.3: icmp_seq=3D383 ttl=3D128 time=3D6200.121 ms
8008 bytes from 172.31.255.3: icmp_seq=3D385 ttl=3D128 time=3D7261.939 ms
8008 bytes from 172.31.255.3: icmp_seq=3D386 ttl=3D128 time=3D7200.745 ms
8008 bytes from 172.31.255.3: icmp_seq=3D390 ttl=3D128 time=3D4100.259 ms


tcpdump after propblem appear:

# tcpdump -i vmx1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vmx1, link-type EN10MB (Ethernet), capture size 262144 bytes
16:09:41.700833 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 0, length 8008
16:09:42.727307 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 1, length 8008
16:09:43.761866 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 2, length 8008
16:09:43.762117 IP 172.31.255.3 > 172.31.255.2: ICMP echo reply, id 23149, =
seq
0, length 8008
16:09:44.771901 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 3, length 8008
16:09:44.978178 IP truncated-ip - 7810 bytes missing! 172.31.255.3 >
172.31.255.2: ICMP echo reply, id 23149, seq 1, length 8008
16:09:45.788996 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 4, length 8008
16:09:46.039983 IP truncated-ip - 7928 bytes missing! 172.31.255.3 >
172.31.255.2: ICMP echo reply, id 23149, seq 2, length 8008
16:09:46.290583 IP truncated-ip - 7928 bytes missing! 172.31.255.3 >
172.31.255.2: ICMP echo reply, id 23149, seq 3, length 8008
16:09:46.801911 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 5, length 8008
16:09:47.861870 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 6, length 8008
16:09:48.071886 IP truncated-ip - 7822 bytes missing! 172.31.255.3 >
172.31.255.2: ICMP echo reply, id 23149, seq 4, length 8008
16:09:48.871905 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 7, length 8008
16:09:49.802033 IP truncated-ip - 7928 bytes missing! 172.31.255.3 >
172.31.255.2: ICMP echo reply, id 23149, seq 5, length 8008
16:09:49.891036 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 8, length 8008
16:09:50.802001 IP truncated-ip - 7928 bytes missing! 172.31.255.3 >
172.31.255.2: ICMP echo reply, id 23149, seq 6, length 8008
16:09:50.901923 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 9, length 8008
16:09:51.961848 IP 172.31.255.2 > 172.31.255.3: ICMP echo request, id 23149,
seq 10, length 8008

Seems like new arrived packets pushed out old packets from the queue

After some time even more than 40 seconds gap can exist between sending and
receiving packet.

tcpdump running on the same time on second VM shows sending a response
immediately after receiving request.

Disabling/enabling any driver features like tso, csum, etc, changing mtu
irrelevant to the problem.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-243392-227>