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
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to