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



On Sat, Jun 21, 2014 at 10:00 AM, Matt Thomas <matt%3am-software.com@localhost> 
wrote:
>
>
> On Jun 20, 2014, at 5:57 AM, Ryota Ozaki <ozaki-r%iij.ad.jp@localhost> wrote:
>
> > Hi,
> >
> > I've prepared a trial patch of MPSAFE networking.
> >
> >  http://www.netbsd.org/~ozaki-r/mpsafe-wm.diff
> >
>
> The kmutex_t in ifqueue, etc. should be pointers and not in the structure 
> themselves.
> That can simply the macros to test for a NULL pointer for the locks in the 
> non-WM case.
>
> Consider using mutex_obj_alloc to get mutexes instead of the embedding them 
> in the
> structures.

Well...do you mean that the macros should be like these?

#define WM_LOCK(_sc)   if ((_sc)->sc_txrx_lock) mutex_enter((_sc)->sc_txrx_lock)
#define WM_UNLOCK(_sc) if ((_sc)->sc_txrx_lock) mutex_exit((_sc)->sc_txrx_lock)

>
>
> Some of your macros are missing 'do's :)

Sure :)

Thanks!
  ozaki-r

>
> > It enables the interrupt handler of if_wm to run without
> > KERNEL_LOCK; an interrupt context and a LWP context (e.g.,
> > wm_start) run in parallel safely.
> >
> > You can try it by applying the patch to -current
> > and commenting in NET_MPSAFE in sys/net/if.h.
> >
> > A complete patch of my work can be found at usual places:
> > - http://www.netbsd.org/~ozaki-r/mpsafe-bridge-wm-vioif.diff
> > - 
> > https://github.com/ozaki-r/netbsd-src/tree/experimental/mpsafe-bridge-wm-vioif
> >
> >  ozaki-r
>


Home | Main Index | Thread Index | Old Index