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