Freebsd IP Forwarding performance (question, and some info) [7-stable, current, em, smp]

Ingo Flaschberger if at xip.at
Wed Jul 2 10:05:52 UTC 2008


Dear Paul,

> I still don't like the huge hit ipfw and lagg take :/

I think, you can't use fastforward with with lagg.

> ** I tried polling in UP mode and I got some VERY interesting results..
> CPU is 44% idle (idle polling isn't on)  but I'm getting errors!  It's doing 
> 530kpps with ipfw loaded, which without polling uses 100% cpu but now it says 
> my cpu is 44% idle? that makes no sense.. If it was idle why am I getting 
> errors?  I only get errors when em taskq was eating 100% cpu..
> Idle polling on/off makes no difference.
> user_frac is set to 5 ..

what are your values:
kern.polling.reg_frac=
kern.polling.user_frac=
kern.polling.burst_max=

I use:
kern.polling.reg_frac=20
kern.polling.user_frac=20
kern.polling.burst_max=512

if you need more than 1000, you need to change the code:
src/sys/kern/kern_poll.c
#define MAX_POLL_BURST_MAX      1000

> So my maximum without polling is close to 800kpps but if I push that it 
> starts locking me from doing things, or

how many kpps do you want to achieve?

> HZ=2000 for this test (512/512 descriptors)

you mean:
hw.em.rxd=512
hw.em.txd=512
?

can you try with polling:
hw.em.rxd=4096
hw.em.txd=4096

Kind regards,
 	Ingo Flaschberger



More information about the freebsd-net mailing list