On 4/10/2015 8:06 AM, Ian Jackson wrote:
(I switched to a different test box "elbling1" with the same symptoms:
~25% packet loss in ping under 64-bit Xen with 32-bit x86 Linux; 100%
loss Linux x86 32-bit baremetal with `iommu=soft swiotlb=force'. In
each case I had disabled the bridge setup so was just using eth0.)
Once again, tcpdumping eth0 with machine booted baremetal with the
`iommu...' boot options shows corrupted packets on the receive path:
Full transcript below. The non-corrupted packets (ARP requests) in
the tcpdump are outgoing: 172.16.144.31 is elbling1.
I think the packets are being dropped by the non-tg3 part of the
kernel due to their protocol field having been corrupted.
Also:
root@elbling1:~# ethtool -S eth0 | grep -v ': 0$'
NIC statistics:
rx_octets: 352487
rx_ucast_packets: 250
rx_mcast_packets: 1165
rx_bcast_packets: 1806
tx_octets: 15848
tx_mcast_packets: 8
tx_bcast_packets: 237
root@elbling1:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr b0:83:fe:db:b6:69
inet addr:172.16.144.31 Bcast:172.16.147.255
Mask:255.255.252.0
inet6 addr: fe80::b283:feff:fedb:b669/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3245 errors:0 dropped:223 overruns:0 frame:0
TX packets:245 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:355364 (347.0 KiB) TX bytes:15848 (15.4 KiB)
Interrupt:16
root@elbling1:~#
Thanks for the detailed info, looking at the logs it appears sometimes
the descriptor itself is corrupted(drop count going up due to error bits
getting set in the descriptor) and some instances the RX data buffer is
getting corrupted (as seen in the tcpdump).
I tried to reproduce the problem on 32 bit 3.14.34 stable kernel
baremetal, with iommu=soft swiotlb=force but no luck, no drops or
errors. I did not try with Xen 64 bit yet. Btw I need a pcie analyzer
trace to confirm the problem. Is it feasible to capture at your end ?
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel