Bridge project update (Week of March 30th)
Kristof Provost
kp at FreeBSD.org
Sat Apr 4 09:31:07 UTC 2020
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
More information about the freebsd-current
mailing list