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