tech-kern 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)



No comment or objection? Then, I'll commit the patch tomorrow.

  ozaki-r

On Wed, Jul 9, 2014 at 12:55 PM, Ryota Ozaki <ozaki-r%iij.ad.jp@localhost> 
wrote:
> On Tue, Jul 8, 2014 at 12:54 PM, Ryota Ozaki <ozaki-r%iij.ad.jp@localhost> 
> 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


Home | Main Index | Thread Index | Old Index