cvs commit: src/sys/netinet ip_demux.c
Matthew Dillon
dillon at apollo.backplane.com
Wed Mar 31 21:13:46 PST 2004
:
: Have you dudes had a chance to run some numbers to see how this scheme
: performs (hashing into cpu port based on src, sport, dst, dport)?
: This is a neat trick and I'm curious (not necessarily related to above
: commit) if it has measurable benefits.
:
:--
:Bosko Milekic
:bmilekic at xxxxxxxxxxxxxxxx
:bmilekic at xxxxxxxxxxx
Well, I ran some numbers to make sure it didn't make things *worse*.
The main benefit from all this work is not going to be realized until
we start removing Giant from the network path. The whole idea of
partitioning things this way is to (a) allow the protocol stack to run
without any locks, mutexes, tokens, etc... without any of that stuff,
and (b) get much better code and data locality of reference within
each thread, especially on SMP boxes (each cpu caches a different
set of protocol related data and so should scale much better).
Intermixed with Jeff's threading work are other things that have
improved performance. For example, Jeff fixed the UDP code so when
you do a sendto() on a udp socket without a connect (which is common
for things like the name server and NFS), the network stack no longer
wastes time creating a temporary connection just for that one sendto().
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Commits
mailing list