network performance

Kris Kennaway kris at FreeBSD.org
Wed Feb 6 12:07:50 PST 2008


Stefan Lambrev wrote:
> Greetings,
> 
> Kris Kennaway wrote:
>> Yes, it is gone with 8.0.  Disable the module builds because some of 
>> them like this one probably need compile fixes.  If you need a subset 
>> of modules use MODULES_OVERRIDE=list (in /etc/make.conf)
>>
> Yes, kernel builds.
> I'm still playing with it, but the first results shows that new kernel 
> can handle 800k incoming packets (well may be more but I have not enough 
> power right now to generate more packets).
> It still answer only to 250K-260K. I guess I'm hitting the limitation of 
> syncache/syncookies ?

Yes, it could be.  You may need to tune the net.inet.tcp.syncache 
parameters to get better performance.  That is good news though.

> Anyway this netisr2 looks like huge improvement :)

Actually I forgot to mention: you probably want to set net.isr2.direct=1.

> I can't build kernel without option LOCK_PROFILING with your sources:
> 
> make -V CFILES -V SYSTEM_CFILES -V GEN_CFILES |  MKDEP_CPP="cc -E" 
> CC="cc" xargs mkdep -a -f .newdep -O2 -frename-registers -pipe 
> -fno-strict-aliasing -march=nocona -std=c99 -g -Wall -Wredundant-decls 
> -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes 
> -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign 
> -fformat-extensions -nostdinc  -I. -I/usr/src/sys 
> -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter 
> -I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath 
> -I/usr/src/sys/contrib/ngatm -I/usr/src/sys/dev/twa 
> -I/usr/src/sys/gnu/fs/xfs/FreeBSD 
> -I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs 
> -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common 
> -finline-limit=8000 --param inline-unit-growth=100 --param 
> large-function-growth=1000  -mcmodel=kernel -mno-red-zone  -mfpmath=387 
> -mno-sse -mno-sse2 -mno-mmx -mno-3dnow  -msoft-float 
> -fno-asynchronous-unwind-tables -ffreestanding
> In file included from /usr/src/sys/netinet/ip_output.c:47:
> /usr/src/sys/sys/rwlock.h:153:2: error: #error LOCK_DEBUG not defined, 
> include <sys/lock.h> before <sys/rwlock.h>
> mkdep: compile failed
> *** Error code 1
> 
> So I added #include <sys/lock.h>, rebuild kernel and tested again w/o 
> LOCK_PROFILING, but results are the same.

Thanks, I think I forgot to check in another fix.  As you found though, 
LOCK_PROFILING does not have a large performance impact when compiled in 
but not active.

> I'll use again hwpmc and LOCK_PROFILING to see what's going on.
> And will try the same benchmark on quad core processor as now numbers of 
> cores/cpus matter :)

That will certainly be interesting to test!

Kris



More information about the freebsd-performance mailing list