Network stack cloning / virtualization patches

Peter Jeremy peterjeremy at optushome.com.au
Tue Jun 3 02:11:27 PDT 2003


On Mon, Jun 02, 2003 at 11:58:25PM +0200, Marko Zec wrote:
>There are two major possible causes for overhead increase. First, each IP
>protocol related tunable variable and most of the global symbols involved in
>network processing have been virtualized. [...]  And second, many kernel
>functions have been extended with an additional argument, typically a pointer
>to a struct vimage,

A third issue on the x86 is a lack of registers:  There are only 6
"general purpose" registers (and each of them actually has a specific
purpose).  Eating one of these registers to maintain a pointer to
a struct vimage will be a noticable performance hit.

> However, a couple of percents in overhead increase that can be
>observed only in worst case loopback tests do not present a problem
>in any real-life scenario.

Agreed.  It would be useful to get some real-world figures.

>> Julian, am I safe in assuming that you have an interest in this work?
>> If not, I may setup a p4 branch to work with and to merge these bits
>> into -CURRENT if no one else is interested.  -sc
>
>I would be really honored to see the cloning code merged in -CURRENT one day.
>However, at the moment I'm strongly opposed to such a proposal, since the code
>is simply not mature enough.

My understanding is that the p4 tree is specifically intended for this
sort of thing.  It provides a controlled environment where the code
could be nursed from its current "immature" form into something that
can be safely merged into the main CVS tree.

Peter


More information about the freebsd-hackers mailing list