After finally being able to reproduce the issue while getting a switch
level pcap it turns out that under high traffic loads when the cpu idle
% is low the card/driver starts to lose packets due to either the
packets being overwritten or corrupted when new packets are received.
The drop out is caused when a high traffic tcp connection detects a
failed receive and retransmits. The retransmit occurs when the inbound
network packets are already being dropped/corrupted, so a cascade effect
occurs.

This effect can also be seen if you write a little C app that sends udp
packets to a listening app on the server. If you have each udp packet
include an incrementing counter, when the cpu idle % drops below ~50%
there will be loss(in my case between 3-5% loss) and as the cpu idle
reaches as low as 30% the loss rate increases(40% or higher loss, not
out of order but completely lost between the NIC and the app). If you
change the app to use a tcp connection for the same test the tcp
retransmission rate grows roughly in line with the udp loss rate when
graphed against the cpu idle percent.

When tested using an Intel NIC with an e1000e driver there is no such
loss until the cpu idle drops below single digits.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/347711

Title:
  Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller Unstable
  on Jaunty

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/347711/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to