[email protected] wrote:

The advice from most of the switch manufactures seems to be to disable flow 
control and let the protocols (udp,tcp) take care of the issue.

I work for a company that makes 10G NICs, and also switches.
Flow control *can* help performance by eliminating dropped packets.
A newer (per-priority) version of it t is actually required by
protocols like FCOE.  But flow control support is very, very
spotty, even in the 10G switch space.

This is because flow control is a fairly hard problem from a switch's
perspective.  If you're really strict about flow control, and don't
drop at all, you risk blocking the entire network as soon as a device
connected to one port fails to consume.  I've personally seen this
happen with a really cheap switch, an Intel 100Mb NIC and a
machine which crashed and failed to reboot with flow control enabled.

What we do (on both NICs and switches) is to send pause packets
up to a point.  If a host is not consuming, and has not consumed
for a "long time" (like the crashed host scenario above), our
NIC will start to drop packets and stop emitting pause frames.
Similarly with our switch.

Some switch vendors also implement flow control
in the other extreme. Rather than sending pause frames back to
the sender, they will always drop packets when they see a
pause frame from a receiver, and the sender will never see
a pause frame from them.  When they drop too aggressively,
this can lead more packet loss and to worse performance than
you'd see running without flow control.


Drew
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to