Bridge project update (Week of March 30th)

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Sat, 04 Apr 2020 11:30:53 +0200
Hi,

A productive week!

I’ve posted the main body of the patch for review:

  - https://reviews.freebsd.org/D24249

    A preparatory patch. Mostly a mechanical substitution of LIST -> 
CK_LIST

  - https://reviews.freebsd.org/D24250

    The main work. This changes the bridge data path to be mostly 
lockless (the only exception is when we have to add or update an rtnode.

  - https://reviews.freebsd.org/D24251

    Another test case, for PR 216510. That bug was fixed more or less by 
accident during this work.

I’ve also run performance testing with these patches, and I’m pretty 
happy with the results. The test shows an increase in throughput from 
3.7Mpps to 18.6Mpps.

The flame graphs also clearly show we’re no longer contending on the 
bridge mutex:

  - before: https://people.freebsd.org/~kp/if_bridge/unmodified.svg
  - after: https://people.freebsd.org/~kp/if_bridge/unicast.svg

I’ll give D245250 another week or two for reviews. It’s a relatively 
small patch, considering, but it’s complex and important.
I also intend to add another test case for a cleanup issue that’s 
since been fixed in D245250.

Best regards,
Kristof Provost
Received on Sat Apr 04 2020 - 07:31:07 UTC

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