Skip site navigation (1)Skip section navigation (2)
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>