SMPable version of EM driver

Vladimir Ivanov wawa at yandex-team.ru
Sun Oct 14 09:14:29 PDT 2007


Hi,

Mike Tancsa wrote:
> On Wed, 01 Aug 2007 18:26:10 +0400, in sentex.lists.freebsd.net you
> wrote:
>
>   
>> Bill Marquette wrote:
>>     
>>> [skip]
>>> What type of performance differences are you seeing with these
>>> changes?  Is this with FreeBSD acting as a router/firewall, or purely
>>>   
>>>       
>> RX queue is being processed w/more than one thread.
>> TX queue thread isn't locked with RX anymore.
>>
>> Extra CPU time can be used by e.g. IPFW firewall or routing and so on.
>>
>>     
>
> Hi,
> 	I am interested in trying your version of the em driver.  On
> one of my routers, I am seeing
>
> kernel: em2: Missed Packets = 953
> kernel: em2: Receive No Buffers = 128
> kernel: em2: RX overruns = 7
> kernel: em2: Good Packets Rcvd = 62453961
> kernel: em2: Good Packets Xmtd = 31935910
>
> This is with the em driver currently in the RELENG_6 tree (version
> 6.6.6)..  Previous versions were the same.
> I notice that you have some different defaults as well
>
> dev.em.0.rx_int_delay: 0
> dev.em.0.tx_int_delay: 67108
> dev.em.0.rx_abs_int_delay: 1000
> dev.em.0.tx_abs_int_delay: 67108
>
> vs
>
> dev.em.1.rx_int_delay: 0
> dev.em.1.tx_int_delay: 66
> dev.em.1.rx_abs_int_delay: 66
> dev.em.1.tx_abs_int_delay: 66
> dev.em.1.rx_processing_limit: 100
>
> What are these tuned for ?  Hi pps ?  Low latency ?
>   
We've both problems and even more:
we need low latency, we've huge pps, we've to run firewall and so on

Tuning can not solve them.

Actually our rx/tx timeout defaults mostly are meaningless because:
1) we do not use TX interrupts et all
2) we use explicit SYSCTL (see dev.em.N.rx_kthread_priority) for tuning
RX threads' priority instead of rx_processing_limit.
3) we mask rx interrupts if aren't ready to catch that's why we do not
need interrupt pending/throttling.
> Thanks for any info,
>
> 	---Mike
>
>   
>> Also:
>> + RX and TX use different priority value. System seems to be more stable 
>> if RX scheduled w/less priority.
>> + RX/TX stay masked if there is no thread ready to catch interrupt.
>>
>>     
>>> as a server?  Any chance you are using the pf filtering engine (which
>>> I believe is still under giant in releng_6) with this?  Thanks
>>>   
>>>       
>> I have been talked that GIANT is a big problem for pf driver and they 
>> can not fix it easy.
>>
>> Regards,
>> -- 
>>     

[skip]

WBR,
PS: your personal e-mail doesn't work

-- 
Vladimir Ivanov
Network Operations Center
OOO "Yandex"
t: +7 495 739-7000
f: +7 495 739-7070
@: noc at yandex.net (corporate)
   wawa at yandex-team.ru (personal)
www: www.yandex.ru
-- 



More information about the freebsd-net mailing list