Subject: Re: Low performance Intel 10GE NIC (3.2.10) on 2.6.38 Kernel

From: Alexander Duyck <[email-masked]>
Date: Thu, 14 Apr 2011 09:42:25 -0700

On 4/13/2011 11:58 PM, Wei Gu wrote:
> I did the single flow test, it shows no rx error with 300kpps. While I was start multiple flow with same 300Kpps traffic, then it looks really bad with high rx_missing_error.
>
> Multiple Flow:
> SUM: 191925 ETH8: 0  ETH10: 191925 ETH6: 0 ETH4: 0
> SUM: 214634 ETH8: 0  ETH10: 214634 ETH6: 0 ETH4: 0
> SUM: 237600 ETH8: 0  ETH10: 237600 ETH6: 0 ETH4: 0
> SUM: 198925 ETH8: 0  ETH10: 198925 ETH6: 0 ETH4: 0
> SUM: 249290 ETH8: 0  ETH10: 249290 ETH6: 0 ETH4: 0
>
> Single Flow:
> SUM: 302018 ETH8: 0  ETH10: 302018 ETH6: 0 ETH4: 0
> SUM: 301849 ETH8: 0  ETH10: 301849 ETH6: 0 ETH4: 0
> SUM: 302163 ETH8: 0  ETH10: 302163 ETH6: 0 ETH4: 0
>
> Thanks
> WeiGu
> -----Original Message-----
> From: Eric Dumazet [mailto:[email-masked]]
> Sent: Thursday, April 14, 2011 2:34 PM
> To: Wei Gu
> Cc: Alexander Duyck; Peter Zijlstra; netdev; Kirsher, Jeffrey T
> Subject: RE: Low performance Intel 10GE NIC (3.2.10) on 2.6.38 Kernel
>
> Le jeudi 14 avril 2011 à 08:07 +0200, Eric Dumazet a écrit :
>> Le jeudi 14 avril 2011 à 13:42 +0800, Wei Gu a écrit :
>>> Hi guys,
>>> Do you think it was a bug in the kernel from 2.6.35.2 with Intel 10GE ixgbe driver?
>>> If so shall I issue a Bug on the bugzilla, and which category? Cause I'm not sure it was driver problem Or sched problem.
>>
>> This makes no sense to me.
>>
>> What is the maximum throughput you can get in pps before having packet
>> drops ?
>>
>> Please try with a single flow (to hit one queue, one cpu)
>>
>> Thanks
>>
>
> Also, please try to check if using smaller or bigger packets makes any change in this max throughput
>
>

The only issue I have found so far with the ixgbe driver is the fact 
that apparently rx_no_buffer_count is apparently always going to be 0 on 
82599, and that isn't so much a driver problem as a hardware limitation 
as the HW counter was removed in 82599.  However since the hardware was 
capable of going faster on the other kernels what this likely means is 
that the rx_missed_errors are due to the driver not providing Rx buffers 
fast enough.

I'm doing some more digging into this now.  One thought that occurred to 
me is that if the patch you mention is having some sort of effect this 
could be a sign of perhaps a kernel timer or scheduling problem.

Thanks,

Alex