DragonFly commits List (threaded) for 2004-03
Re: cvs commit: src/sys/netinet ip_demux.c
: 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.
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().