Date: Fri, 08 Mar 2013 13:06:16 -0500 From: Lowell Gilbert <freebsd-lists@be-well.ilk.org> To: <dteske@freebsd.org> Cc: 'Wojciech Puchar' <wojtek@wojtek.tensor.gdynia.pl>, devin.teske@fisglobal.com, freebsd-hackers@freebsd.org Subject: Re: lots of network interfaces Message-ID: <44y5dx3gx3.fsf@lowell-desk.lan> In-Reply-To: <031201ce1b91$841b90d0$8c52b270$@freebsd.org> (dteske@freebsd.org's message of "Thu, 7 Mar 2013 16:11:37 -0800") References: <alpine.BSF.2.00.1303071222550.10489@wojtek.tensor.gdynia.pl> <031201ce1b91$841b90d0$8c52b270$@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
<dteske@freebsd.org> writes: > I decided to stress-test the netgraph(4) subsystem one day and was able to > create 65530 interfaces before it produced an error, refusing to create another. > > At that point, the system was still usable, but... > > It took over an hour for ifconfig to list all the interfaces. Simply typing > "ifconfig" with no arguments and pressing ENTER would start spewing information > on-screen for over an hour before it finished. (so I'd say that there could be > some optimizations made; but nonetheless impressive that the system was still > very usable at that point, ifconfig aside). The interfaces are a linked list, plus there's a separate kernel dive for each interface. The list (as opposed to individual interfaces) is really only accessed from userland, so optimizing these operations would need a really good use case to be worthwhile. The current implementation is not just very well known, it's good for hundreds to thousands of interfaces..For the output of ifconfig alone, it might be possible to grab more information in the original getifaddrs() (which makes a copy of the interface list), but that would make other operations with that function more expensive.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44y5dx3gx3.fsf>