Turn on adaptive MPSAFE for network threads, MPSAFE for IP and ARP
Sepherosa Ziehau
sepherosa at gmail.com
Mon Mar 9 18:28:34 PDT 2009
On Tue, Mar 10, 2009 at 12:28 AM, Matthias Schmidt
<matthias at dragonflybsd.org> wrote:
> Hi Sephe,
>
> * Sepherosa Ziehau wrote:
>> Hi all,
>>
>> I plan to set following tunables by default:
>> net.netisr.mpsafe_thread="1"
>> net.inet.udp.mpsafe_thread="1"
>> net.inet.tcp.mpsafe_thread="1"
>> net.link.ether.inet.arp_mpsafe="1"
>> net.inet.ip.mpsafe="1"
>>
>> The first three enables adaptive MPSAFE for network threads.
>> The last two enable IP and ARP MPSAFE.
>>
>> This gives us BGL free ip forwarding path and BGL free bridge
>> forwarding path. pf is still under BGL though.
>
> Do you have any statistics regarding network performance? Is there a
> "visible" difference?
On my Phenom9550 (2GB memory) w/ dual port 82571EB, one direction
forwarding, packets even spreaded to each core. INVARIANTS is turned
on in the kernel config (I don't think it makes much sense to run a
system without INVARIANTS).
WIthout ipfw, BGL, ip forwarding:
~370Kpps - ~380Kpps
Without ipfw, BGL free, ip forwarding:
~600Kpps
With ipfw default pass rule, BGL free, ip/bridge forwarding:
~570Kpps
With ipfw 10 no matching rules + default pass rule, BGL free,
ip/bridge forwarding:
~530Kpps
Without ipfw, BGL free, ip fast forwarding (ipflow):
~650Kpps - ~670Kpps
Without ipfw, BGL free, bridging forwarding:
~650Kpps
For pure forwarding (i.e. no firewalling), the major bottle neck is on
transmit path (as I have measured, if you used spinlock on ifq, the
whole forwarding could be choked). Hopefully ongoing multi queue work
could make the situation much better.
Best Regards,
sephe
--
Live Free or Die
More information about the Kernel
mailing list