forcedeth ipv6 mcast packet loss

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

 



I have two identical systems (actually netbooting the same kernel and using the initrd as rootfs) based on the nvidia ion platform (MCP79) that I plan to use as HTPC platform. My reception is IP-based (not DVB-IPTV complaint) using IPv6 multicast streams.

However when using the builtin NIC with forcedeth I experience significant packet loss resulting in dropped audio/video. To exclude other sources of the problem I've attached a USB based NIC (asix/usbnet) to one of the systems. It doesn't matter which one I use, the one with forcedeth shows packet loss, the one with the USB nic works fine (there is also some packet loss but only about 50% from the forcedeth).

I do not see significant drops on the eth layer, ethtool -S shows:
# ethtool -S eth0 |grep rx_
    rx_frame_error: 0
    rx_extra_byte: 0
    rx_late_collision: 0
    rx_runt: 0
    rx_frame_too_long: 0
    rx_over_errors: 1
    rx_crc_errors: 0
    rx_frame_align_error: 0
    rx_length_error: 0
    rx_unicast: 14350
    rx_multicast: 926438
    rx_broadcast: 31
    rx_packets: 940819
    rx_errors_total: 1
    rx_bytes: 1286386044
    rx_pause: 0
    rx_drop_frame: 46

46 drops, 1 over error... this is not that much.

Looking at "netstat -6 -w -s" now:
forcedeth:
Ip6:
   566654 total packets received
   0 incoming packets discarded
   524936 incoming packets delivered
   0 forwarded
   5490 requests sent out
   678 reassemblies required
   339 packets reassembled ok
   566654 incoming multicast packets
   10972 outgoing multicast packets
   Ip6InOctets: 503997755
   Ip6OutOctets: 680876
   Ip6InMcastOctets: 503997755
   Ip6OutMcastOctets: 1361288

usbnet:
Ip6:
   566056 total packets received
   0 incoming packets discarded
   541982 incoming packets delivered
   0 forwarded
   5606 requests sent out
   696 reassemblies required
   348 packets reassembled ok
   566056 incoming multicast packets
   11204 outgoing multicast packets
   Ip6InOctets: 514952632
   Ip6OutOctets: 699312
   Ip6InMcastOctets: 514949470
   Ip6OutMcastOctets: 1398160



So while I have 7,3% packet loss on the forcedeth, usbnet is only losing 4,25%. For the actual application this makes a huge difference, using the usbnet I have smooth audio and video while having stuttering and interruptions using forcedeth.


I already tried disabling msi and raise the "max_interrupt_work" parameter and there are also no interrupt conflicts:
# cat /proc/interrupts
          CPU0
 0:      22834   IO-APIC-edge      timer
 1:         10   IO-APIC-edge      i8042
 4:          0   IO-APIC-edge      lirc_serial
 7:          1   IO-APIC-edge
 8:          1   IO-APIC-edge      rtc0
 9:          0   IO-APIC-fasteoi   acpi
20:          0   IO-APIC-fasteoi   ehci_hcd:usb2
21:     111990   IO-APIC-fasteoi   ehci_hcd:usb1, nvidia
22:    1235164   IO-APIC-fasteoi   eth0
23:      34722   IO-APIC-fasteoi   HDA Intel
NMI:          0   Non-maskable interrupts
LOC:    2234080   Local timer interrupts
SPU:          0   Spurious interrupts
CNT:          0   Performance counter interrupts
PND:          0   Performance pending work
TRM:          0   Thermal event interrupts
THR:          0   Threshold APIC interrupts
MCE:          0   Machine check exceptions
MCP:          6   Machine check polls
ERR:          1
MIS:          0


Some more info:

00:0a.0 Ethernet controller: nVidia Corporation MCP79 Ethernet (rev b1)
       Subsystem: ZOTAC International (MCO) Ltd. Device a108
       Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
       Memory at fae7c000 (32-bit, non-prefetchable) [size=4K]
       I/O ports at d080 [size=8]
       Memory at fae7e400 (32-bit, non-prefetchable) [size=256]
       Memory at fae7e000 (32-bit, non-prefetchable) [size=16]
       Capabilities: [44] Power Management version 2
       Capabilities: [50] MSI: Enable- Count=1/16 Maskable+ 64bit+
       Kernel driver in use: forcedeth


# cat /proc/net/snmp6
Ip6InReceives                           1709202
Ip6InHdrErrors                          0
Ip6InTooBigErrors                       0
Ip6InNoRoutes                           0
Ip6InAddrErrors                         0
Ip6InUnknownProtos                      0
Ip6InTruncatedPkts                      0
Ip6InDiscards                           0
Ip6InDelivers                           1583454
Ip6OutForwDatagrams                     0
Ip6OutRequests                          16761
Ip6OutDiscards                          0
Ip6OutNoRoutes                          0
Ip6ReasmTimeout                         0
Ip6ReasmReqds                           2044
Ip6ReasmOKs                             1022
Ip6ReasmFails                           0
Ip6FragOKs                              0
Ip6FragFails                            0
Ip6FragCreates                          0
Ip6InMcastPkts                          1709202
Ip6OutMcastPkts                         33514
Ip6InOctets                             1523633882
Ip6OutOctets                            2095092
Ip6InMcastOctets                        1523633882
Ip6OutMcastOctets                       4189720
Ip6InBcastOctets                        0
Ip6OutBcastOctets                       0

# netstat -V
net-tools 1.60
netstat 1.42 (2001-04-15)
Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang, Brian Micek and others
+NEW_ADDRT +RTF_IRTT +RTF_REJECT +FW_MASQUERADE +I18N
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE
HW: +ETHER +ARC +SLIP +PPP +TUNNEL +TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB +EUI64


I can reproduce this behaviour on (x86-32) vanilla 2.6.29, 2.6.30 and 2.6.31. I have no clue what to do next, I assume there is a problem with the forcedeth driver...

Any ideas?


Thanks,
  Christian
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux