On a DUP packet problem
This is a DUP packet problem, occuring on one machine running FreeBSD 6.3 (RELENG_6_3).

A.B.C.X$ ping A.B.C.D
PING A.B.C.D (A.B.C.D): 56 data bytes
64 bytes from A.B.C.D: icmp_seq=0 ttl=64 time=0.272 ms
64 bytes from A.B.C.D: icmp_seq=0 ttl=255 time=0.391 ms (DUP!)
64 bytes from A.B.C.D: icmp_seq=1 ttl=64 time=0.144 ms
64 bytes from A.B.C.D: icmp_seq=1 ttl=255 time=0.449 ms (DUP!)
64 bytes from A.B.C.D: icmp_seq=2 ttl=64 time=0.248 ms
64 bytes from A.B.C.D: icmp_seq=2 ttl=255 time=0.367 ms (DUP!)
--- A.B.C.D ping statistics ---
3 packets transmitted, 3 packets received, 3 duplicates, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.144/0.311/0.449/0.104 ms
Curiously, no duplicates are seen if the packet size is increased to 1481 (1473 data bytes):
A.B.C.X$ ping -s 1473 A.B.C.D
PING  A.B.C.D (A.B.C.D): 1473 data bytes
1481 bytes from A.B.C.D: icmp_seq=0 ttl=64 time=0.781 ms
1481 bytes from A.B.C.D: icmp_seq=1 ttl=64 time=0.630 ms
1481 bytes from A.B.C.D: icmp_seq=2 ttl=64 time=0.646 ms

Jeremy Chadwick suggested to disable MSI/MSI-X by setting
hw.pci.enable_msi="0"
hw.pci.enable_msix="0"
in loader.conf and this solved the problem.

Reading Baldwin's paper on PCI interrupts mentions the mptable command. Its output can be found here: The dmesg output goes here: dmesg.out


page updated Apr 11, 2008