It occurred to me that I should add a couple of qualifications to the
previous statements. 1.6Mpps is line rate for GigE and I only know of
it to be achievable by igb hardware. The most I've seen em hardware
achieve is 1.1Mpps. Furthermore, in order to achieve that you would
have to enable IFNET_MULTIQUEUE in the driver, because by default the
driver uses the traditional (slow) IFQ as opposed overloading
if_transmit and doing its own queueing when needed. Support for
efficient multi-queue software queueing is provided by buf_ring, a
lock-free multi-producer ring buffer written just for this purpose.
Thus, the fairly low transmit rate may be attributable to driver locking.
Currently the quad core hardware is in production, I can only test with
the single core 1,2ghz pentiumM.
Also no igb cards.
em cards, 82541GI, with polling
8.2 i386 with patch rmlock-copy, 400k /32 routes, 64byte packets:
fastfw standard flowtable
1 dest: 85607pps 57189pps 57216pps
rand. dest: 83945pps 54976pps 55007pps
standard routing seems to be as fast as flowtable.
flowtable does not support fastforward, rmlock-copy-patch supports
fastforward.
8.2 i386 w/o patch, 400k /32 routes, 64byte packets:
fastfw standard flowtable
1 dest: 84792pps 55357pps 55515pps
rand. dest: 80156pps 52320pps 52300pps
so even on a single cpu system less locking improve performance, but as
you mentioned above, the bottlenecks of this system are the "desktop"
pci network cards.
I would really like to see some compareable tests with 10gbe hardware.
Kind regards,
Ingo Flaschberger
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"