Date: Sat, 8 Sep 2007 17:17:56 +0200 From: Olivier Warin <daffy@xview.net> To: Fabien THOMAS <fabien.thomas@netasq.com> Cc: freebsd-net@freebsd.org, Suphathorn RAMABUTR <suphathorn.ramabutr@student.uclouvain.be>, Luigi Rizzo <rizzo@icir.org> Subject: Re: new version of polling for FreeBSD 6.x Message-ID: <89A69741-1961-431D-A102-4AC89411A40B@xview.net> In-Reply-To: <ADC3B5D6-ED91-4079-8D1F-5D66BAD52716@netasq.com> References: <ADC3B5D6-ED91-4079-8D1F-5D66BAD52716@netasq.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Le 6 sept. 07 =E0 15:12, Fabien THOMAS a =E9crit : > Hi, > > After many years of good services we will stop using FreeBSD 4.x :) > During my performance regression tests under FreeBSD 6.2 i've found =20= > that polling has lower performance than interrupt. > To solve that issue i've rewritten the core of polling to be more =20 > SMP ready. > > You can find a summary of all my tests and the source code at the =20 > following address: > http://www.netasq.com/opensource/pollng-rev1-freebsd.tgz > > Feel free to ask more detailed information if necessary and report =20 > any bugs / comments. Hello Fabien, 1- I have noticed you are not using GENERIC config file, can you =20 provide us more information on how your KERNCONF differs from =20 GENERIC ? I am pretty sure you have removed all the debug OPTIONs =20 from the kernel, isn't it ? 2- Did you get a chance to try Jumbo Frames and evaluate jumbo mbufs =20 (I never success to make them work for me, did someone had more =20 chance ?). In any cases, PPS values are important for such tests. Andre is right, with Fast Forward you get the best perfs for such test. 3- Did you monitor the DUT to see where CPU cycles were spend in each =20= test ? 4- Have you considered measuring the time it takes for an interrupt =20 to be handled and processed by the kernel Bottom/Top Half and ISR ? [1] 5- When I have performed some test using a Spirent SmartBits =20 (SmartFlow) last summer I got the following results [2]. (For =20 comparison purposes) 6- In the test with Spirent Avalanche, you are using Lighttpd as =20 webserver, did you enable kqueue ? how many workers ? You are using HTTP 1.0 wo Keep-Alive, what was your net.inet.tcp.msl =20 MIB's value ? 7- Polling is known to introduce higher latency, I would expect its =20 benefits to be less in 7-CURRENT compared to 6.x since (Scott ?) a =20 FAST INTR Handler has been introduced around a year ago. Nonetheless, =20= what you report sounds like a perf regression... Have you filled a =20 PR ? Luigi might have a good explaination here. :-D 8- Lock profiling information were obtanied through KTR ? 9- I was wondering if you have explored Intr CPU affinity [3] and IRQ =20= Swizzling [4] ? Thanks for your efforts and your valuable contribution, best regards, /Olivier [1] http://xview.net/papers/interrupt_latency_scheduler/ (WARNING: =20 Never find the time to finish that doc and publish it) && http://xview.net/research/RTBench/ [2] http://xview.net/papers/jumbo_mbufs_freebsd/ [3] http://www.intel.com/cd/ids/developer/asmo-na/eng/188935.htm?prn=3DY [4] http://download.intel.com/design/chipsets/applnots/31433702.pdf -- Olivier Warin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?89A69741-1961-431D-A102-4AC89411A40B>