Subject: Re: Latency difference between fifo and pfifo_fast

From: Rick Jones <[email-masked]>
Date: Tue, 06 Dec 2011 10:20:57 -0800

On 12/06/2011 12:51 AM, Eric Dumazet wrote:
> Le mardi 06 décembre 2011 à 03:39 -0500, John A. Sullivan III a écrit :
>
>>> ifconfig eth2 txqueuelen 0
>>> tc qdisc add dev eth2 root pfifo
>>> tc qdisc del dev eth2 root
>>>
>>>
>>>
>>>
>> Really? I didn't know one could do that.  Thanks.  However, with no
>> queue length, do I have a significant risk of dropping packets? To
>> answer your other response's question, these are Intel quad port e1000
>> cards.  We are frequently pushing them to near line speed so
>> 1,000,000,000 / 1534 / 8 = 81,486 pps - John
>
> You can remove qdisc layer, since NIC itself has a TX ring queue
>
> (check exact value with ethtool -g ethX)
>
> # ethtool -g eth2
> Ring parameters for eth2:
> Pre-set maximums:
> RX:		4078
> RX Mini:	0
> RX Jumbo:	0
> TX:		4078
> Current hardware settings:
> RX:		254
> RX Mini:	0
> RX Jumbo:	0
> TX:		4078      ---- HERE ----

And while you are down at the NIC, if every microsecond is precious (no 
matter how close to epsilon compared to the latencies of spinning rust 
:) you might consider disabling interrupt coalescing via ethtool -C.

rick jones