Re: CFT: if_bridge performance improvements

From: k simon <moremore2_at_outlook.com>
Date: Wed, 22 Apr 2020 01:06:48 +0800
Hi,
   Interesting, maybe ng_eiface + if_bridge is a good idea .

Simon
20200422

On 4/21/20 8:51 PM, Jan Bramkamp wrote:
> On 16.04.20 08:34, Pavel Timofeev wrote:
> 
>> вт, 14 апр. 2020 г., 12:51 Kristof Provost <kp_at_freebsd.org>:
>>
>>> Hi,
>>>
>>> Thanks to support from The FreeBSD Foundation I’ve been able to work
>>> on improving the throughput of if_bridge.
>>> It changes the (data path) locking to use the NET_EPOCH infrastructure.
>>> Benchmarking shows substantial improvements (x5 in test setups).
>>>
>>> This work is ready for wider testing now.
>>>
>>> It’s under review here: https://reviews.freebsd.org/D24250
>>>
>>> Patch for CURRENT: https://reviews.freebsd.org/D24250?download=true
>>> Patches for stable/12:
>>> https://people.freebsd.org/~kp/if_bridge/stable_12/
>>>
>>> I’m not currently aware of any panics or issues resulting from these
>>> patches.
>>>
>>> Do note that if you run a Bhyve + tap on bridges setup the tap code
>>> suffers from a similar bottleneck and you will likely not see major
>>> improvements in single VM to host throughput. I would expect, but have
>>> not tested, improvements in overall throughput (i.e. when multiple VMs
>>> send traffic at the same time).
>>>
>>> Best regards,
>>> Kristof
>>>
>> Hi!
>> Thank you for your work!
>> Do you know if epair suffers from the same issue as tap?
> 
> As Kirstof Provost said if_epair locks has per CPU locks, but a problem 
> exists a layer about the epair driver. At leas on FreeBSD 12.0 and 12.1 
> all the packet processing happens in a single netisr thread that becomes 
> CPU bound and limits how fast useful traffic can move through epair 
> interfaces. Afaik TCP doesn't benifit from multiple netisr threads, but 
> unorderer protocols (e.g. UDP) could profit from multiple threads.
> 
> 
> I have only tested with iperf (using multiple connections) between the 
> FreeBSD 12.x host and a vnet enabled jail connected via an epair 
> interface and maxed out at about 1-2Gb/s depending on the CPUs single 
> threaded throughput.
> 
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Tue Apr 21 2020 - 15:07:10 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:23 UTC