On Tue, Jul 8, 2014 at 12:54 PM, Ryota Ozaki <ozak...@iij.ad.jp> wrote: > Hi, > > A new patch has come: http://www.netbsd.org/~ozaki-r/mpsafe-bridge.diff
I confirmed the patch doesn't add new failures in both NET_MPSAFE and non-NET_MPSAFE cases. ozaki-r > > The patch makes bridge forwarding MPSAFE. As same as wm, > it introduces BRIDGE_MPSAFE to switch MPSAFE and non-MPSAFE > codes. However, in the case of bridge, some locking codes > are always enabled to reduce ifdef switches. I think it's > not a problem because the codes are not performance critical. > And also some splnet are still there for the same reason. > > Another note is about bif (bridge member list entry) object > reference counting. It enables fine-grain locking for bridge > member lists by allowing to not hold a lock during touching > a bif. In order to do so, bridge_release_member is added > to decrement the reference count and a condition variable > to do bridge_delete_member graceful. > > You can try the patch with MPSAFE enabled by defining > NET_MPSAFE in if.h or your kernel config file. If your > machine has Intel 1G NICs (wm), by applying a patch(*), > you can see bridge_forward running in parallel. > > (*) > https://github.com/ozaki-r/netbsd-src/commit/2879f184e336376574c7a07d9ab34d9d55449a7b > > Have fun, > ozaki-r