Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Jul 2008 13:44:40 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        FreeBSD Net <freebsd-net@FreeBSD.org>, Andre Oppermann <andre@FreeBSD.org>, Ingo Flaschberger <if@xip.at>, Paul <paul@gtcomm.net>
Subject:   Re: Freebsd IP Forwarding performance (question, and some info) [7-stable, current, em, smp]
Message-ID:  <20080707134036.S63144@fledge.watson.org>
In-Reply-To: <20080707213356.G7572@besplex.bde.org>
References:  <4867420D.7090406@gtcomm.net> <ea7b9c170806302050p2a3a5480t29923a4ac2d7c852@mail.gmail.com> <4869ACFC.5020205@gtcomm.net> <4869B025.9080006@gtcomm.net> <486A7E45.3030902@gtcomm.net> <486A8F24.5010000@gtcomm.net> <486A9A0E.6060308@elischer.org> <486B41D5.3060609@gtcomm.net> <alpine.LFD.1.10.0807021052041.557@filebunker.xip.at> <486B4F11.6040906@gtcomm.net> <alpine.LFD.1.10.0807021155280.557@filebunker.xip.at> <486BC7F5.5070604@gtcomm.net> <20080703160540.W6369@delplex.bde.org> <486C7F93.7010308@gtcomm.net> <20080703195521.O6973@delplex.bde.org> <486D35A0.4000302@gtcomm.net> <alpine.LFD.1.10.0807041106591.19613@filebunker.xip.at> <486DF1A3.9000409@gtcomm.net> <alpine.LFD.1.10.0807041303490.20760@filebunker.xip.at> <486E65E6.3060301@gtcomm.net> <alpine.LFD.1.10.0807052356130.2145@filebunker.xip.at> <4871DB8E.5070903@freebsd.org> <20080707191918.B4703@besplex.bde.org> <4871FB66.1060406@freebsd.org> <20080707213356.G7572@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mon, 7 Jul 2008, Bruce Evans wrote:

> I use low-end memory, but on the machine that does 640 kpps it somehow has 
> latency almost 4 times as low as on new FreeBSD cluster machines (~42 nsec 
> instead of ~150).  perfmon (fixed for AXP and A64) and hwpmc report an 
> average of 11 k8-dc-misses per sendto() while sending via bge at 640 kpps. 
> 11 * 42 accounts for 442 nsec out of the 1562 per packet at this rate.  11 * 
> 150 = 1650 would probably make this rate unachievable despite the system 
> having 20 times as much CPU and bus.

Since you're doing fine-grained performance measurements of a code path that 
interests me a lot, could you compare the cost per-send on UDP for the 
following four cases:

(1) sendto() to a specific address and port on a socket that has been bound to
     INADDR_ANY and a specific port.

(2) sendto() on a specific address and port on a socket that has been bound to
     a specific IP address (not INADDR_ANY) and a specific port.

(3) send() on a socket that has been connect()'d to a specific IP address and
     a specific port, and bound to INADDR_ANY and a specific port.

(4) send() on a socket that has been connect()'d to a specific IP address
     and a specific port, and bound to a specific IP address (not INADDR_ANY)
     and a specific port.

The last of these should really be quite a bit faster than the first of these, 
but I'd be interested in seeing specific measurements for each if that's 
possible!

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080707134036.S63144>