Current-Users archive

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

Using NET_MPSAFE



	hello.  I'm excited to see the development of the MP-safe network
stack in NetBSD.  Now that some progress has been made in that regard and
there are MP-safe drivers and  stack components to use, I have some
questions.  I'm interested in using options NET_MPSAFE in NetBSD-8.0_BETA
and the eventual netbsd-8 release.  Here are my questions.  I apologize if
some of them seem obvious, but I don't want to make any assumptions when
trying this new stuff.

1.  If I enable NET_MPSAFE in the kernel, will non-MP-ify'd components work
in that kernel using the kernel lock?  In other words, if I enable
NET_MPSAFE and use the wm(4) driver, I'll get MP performance out of the
network stack.  However, what if I try to use a non-MP-ify'd component on
that same machine, i.e. agr(4) or pf(4)?  It looks to me like things should
work, but traffic through the non-MP-ify'd components will be single
threaded.  Is this correct?

2.  Am I correct that when NET_MPSAFE is turned on, the network stack is
runing as an LWP inside the kernel?  And, am I correct that this means that
even if a particular network component is single-threaded, it's able to
execute on any CPU, thus reducing CPU congestion on CPU0 as happens on the
stock NetBSD kernels?

3.  How stable  is the NET_MPSAFE stack?  Is anyone using it in any sort of
production environment?
the BSDCAN paper I read suggests it's pretty stable, but I'm wondering if
anyone can report their experience.

-thanks
-Brian




Home | Main Index | Thread Index | Old Index