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"

Reply via email to