From owner-freebsd-current@FreeBSD.ORG Sat Sep 18 21:23:06 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EC94B16A4CE; Sat, 18 Sep 2004 21:23:06 +0000 (GMT) Received: from odin.ac.hmc.edu (Odin.AC.HMC.Edu [134.173.32.75]) by mx1.FreeBSD.org (Postfix) with ESMTP id BE92C43D48; Sat, 18 Sep 2004 21:23:02 +0000 (GMT) (envelope-from brdavis@odin.ac.hmc.edu) Received: from odin.ac.hmc.edu (localhost.localdomain [127.0.0.1]) by odin.ac.hmc.edu (8.13.0/8.13.0) with ESMTP id i8ILOgrZ024429; Sat, 18 Sep 2004 14:24:42 -0700 Received: (from brdavis@localhost) by odin.ac.hmc.edu (8.13.0/8.13.0/Submit) id i8ILOfDP024428; Sat, 18 Sep 2004 14:24:41 -0700 Date: Sat, 18 Sep 2004 14:24:41 -0700 From: Brooks Davis To: Robert Watson Message-ID: <20040918212441.GA22566@odin.ac.hmc.edu> References: <20040918171216.GA27533@odin.ac.hmc.edu> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ew6BAiZeqk4r7MaW" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-Virus-Scanned: by amavisd-new X-Spam-Status: No, hits=0.0 required=8.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on odin.ac.hmc.edu cc: Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= cc: re@FreeBSD.org cc: current@FreeBSD.org Subject: Re: 5.3-RELEASE TODO X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Sep 2004 21:23:07 -0000 --ew6BAiZeqk4r7MaW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Sep 18, 2004 at 01:42:24PM -0400, Robert Watson wrote: >=20 > On Sat, 18 Sep 2004, Brooks Davis wrote: >=20 > > > Have you tried seeing just how many addresses you can add before > > > getifaddrs() fails to return the complete list? 128k seems like a lo= t, > > > but I instrumente ifconf() locally a couple of weeks ago when I first > > > became aware of this problem, and discovered that even on my notebook > > > (which has a wireless card with one IP, and an unused ethernet card) = that > > > I see moderately large buffers being read from user space: > > >=20 > > > ifconf: 16384 space > >=20 > > Those allocations don't seem to make any sense. The actual space > > required is quite small. All you do is copy one struct ifreq out for > > each address, plus one for each interface with no addresses. The base > > size of a struct ifreq is 32 bytes and it extends to 34 for IPv6 > > addresses. The maximum size allowed by the data types is 273 (for a 255 > > byte address). Since I think IPv6 are the largest addresses used in > > practice, MAXPHYS is probably not too bad, though it does put a new cap > > on the number of interfaces at ~4k.=20 > >=20 > > If we want to keep kernel allocations small and allow all the itnerfaces > > to be reliably reported, we probably need to go back to my origional > > plan where we loop repeatidly. I might do it differently by allocating > > up to MAXPHYS and only reallocating if we overflow. That would avoid > > doing it twice (or more) on normal machines while still being correct.= =20 >=20 > I'm not too worried about theory, mostly about practice. I.e., if you add > a few thousand IP addresses to a tap device, does all go happily? After adding the missing sbuf_delete(), I was able to create 2000 aliases on a vlan. I think the current practical limit is ~4090. I'm working on a new version that initially caps the allocation at MAXPHYS and then retries if it doesn't have enough space. -- Brooks --=20 Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 --ew6BAiZeqk4r7MaW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFBTKeYXY6L6fI4GtQRAvqbAKCvG89aJbqr4eVviwwt8C6gGHpVTACgzZ0R iH1SPAj3HMgUUMsyfU3nMT8= =dJDW -----END PGP SIGNATURE----- --ew6BAiZeqk4r7MaW--