Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: RFC: mpsafe bridge and NIC drivers (vioif and wm)



Hi,

A new patch has come: http://www.netbsd.org/~ozaki-r/mpsafe-bridge.diff

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


Home | Main Index | Thread Index | Old Index