From owner-freebsd-net@FreeBSD.ORG Thu Nov 8 21:39:28 2012 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9D276CE3 for ; Thu, 8 Nov 2012 21:39:28 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mail.ipfw.ru (unknown [IPv6:2a01:4f8:120:6141::2]) by mx1.freebsd.org (Postfix) with ESMTP id 328D88FC14 for ; Thu, 8 Nov 2012 21:39:28 +0000 (UTC) Received: from v6.mpls.in ([2a02:978:2::5] helo=ws.su29.net) by mail.ipfw.ru with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76 (FreeBSD)) (envelope-from ) id 1TWZsF-0003Mq-Bp; Fri, 09 Nov 2012 01:42:55 +0400 Message-ID: <509C2681.9020303@FreeBSD.org> Date: Fri, 09 Nov 2012 01:39:13 +0400 From: "Alexander V. Chernikov" User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120121 Thunderbird/9.0 MIME-Version: 1.0 To: Andre Oppermann Subject: Re: arp/ndp default hash size References: <509AE539.5050102@FreeBSD.org> <509B86D5.6090401@networx.ch> In-Reply-To: <509B86D5.6090401@networx.ch> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@FreeBSD.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Nov 2012 21:39:28 -0000 On 08.11.2012 14:17, Andre Oppermann wrote: > On 07.11.2012 23:48, Alexander V. Chernikov wrote: >> Hello list! >> >> Currently size of arp/ndp hash is the following: >> #define LLTBL_HASHTBL_SIZE 32 /* default 32 ? */ >> >> This may be OK for end hosts, but this is definitely not enough for >> router howadays. Especially >> given that IPv6 hosts generate 2 ndp records. >> >> Output from 2 random v4 / v6 routers from my $job: >> 2:23 [0] m@matisse arp -an | wc -l >> 1494 >> 2:24 [0] m@singapore ndp -an | wc -l >> 3999 >> >> Given that LIST_HEAD is just a pointer, and we currently have single >> global (actually per-VNET) >> instance for every l3 proto, bumping hash to, say, at least 4096 >> should do no harm. > > A small list per hash bucket isn't bad. The hash should be about 1/4 > of the expected table size. > > One problem here may be the memory consumption on smaller systems. A > very large hash table size may hurt and isn't needed for a few entries. I was afraid of proposing too small hash size. 4k costs 16kbytes which is not much nowadays :) > > For a compromise I'd say the default hash table size should be 256 or 512. For me, 512 seems to be quite good default for generic box. >