From owner-freebsd-virtualization@FreeBSD.ORG Sat Nov 22 13:52:16 2008 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FE6A1065673 for ; Sat, 22 Nov 2008 13:52:16 +0000 (UTC) (envelope-from jason.fines@gmail.com) Received: from mail-gx0-f22.google.com (mail-gx0-f22.google.com [209.85.217.22]) by mx1.freebsd.org (Postfix) with ESMTP id 198F68FC0A for ; Sat, 22 Nov 2008 13:52:15 +0000 (UTC) (envelope-from jason.fines@gmail.com) Received: by gxk3 with SMTP id 3so750286gxk.19 for ; Sat, 22 Nov 2008 05:52:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type:references; bh=dGbcIrsuyjl2MoYC20BBBN60fzRPTTH04XNvfEON0U0=; b=g3TDNc2pyG0Buw1epwAvPuy12KGetUTWL1nr3HpG6avNpo3RzScU86y+MXZJNOtTTw SmqT4Yi30j91josN3rdwbvPZCJDq97F5O0OjvR0XENrAuHvlymeO0M27XLXtIbr7sVj0 Fi8FoP/NQC3GhESm72drF3fgD3axbLXv7SirI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=ErR14bNEbnkHP+wKU4VJYw8CFrDoDSeSaxsB6Ymnarcv31UWL9rGVw7gSQzDThImRq t0Uu9QABs5tJhajnWqUjGVYVxArzkWrjMo6EpxkEEw6nydSlOt8wVNE9+8yztkVp54+1 BK+q1S5A+vE8DbSA4twQ00M7m+JvXUm9LdqK0= Received: by 10.100.32.6 with SMTP id f6mr708932anf.90.1227361934215; Sat, 22 Nov 2008 05:52:14 -0800 (PST) Received: by 10.100.6.18 with HTTP; Sat, 22 Nov 2008 05:52:14 -0800 (PST) Message-ID: <5e6025b70811220552g48e139d6h8269babccc3254a8@mail.gmail.com> Date: Sat, 22 Nov 2008 08:52:14 -0500 From: "Jason Fines" To: "Julian Elischer" In-Reply-To: <4927DAF2.5040709@elischer.org> MIME-Version: 1.0 References: <5e6025b70811212019h64feb7dcrd02ab78ba1b558c3@mail.gmail.com> <4927DAF2.5040709@elischer.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-virtualization@freebsd.org Subject: Re: Question About TCP Reassembly Inside VImages X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2008 13:52:16 -0000 Thanks Julian, I suspect you are correct as nmbclusters is a system wide sysctl variable set at boot time and although V_tcp_reass_maxseg is set per vimage it is the result of a constant operation done on nmbclusters (nmbclusters / 16). What I've described is what I suspect is the root of my problem. The manifestation of this problem is that TCP packets passing through my vimage(s) are not reassembled when they are out of order and I get an exceptionally high value reported by netstat -m stating that packets were dropped due to "insufficient memory". Posts I've found on the net point to the reassembly queue length, which in the vimages is zero for some reason. Perhaps this additional information will help clarify my exact problem. Thanks, Jason On Sat, Nov 22, 2008 at 5:12 AM, Julian Elischer wrote: > Jason Fines wrote: > >> Hello all, >> >> I've got a question about setting the sysctl variable >> net.inet.tcp.reass.maxsegments to a non-zero value inside my vimages. I'm >> currently running the FreeBSD 7 with the VIMAGE package available at >> http://imunes.tel.fer.hr/virtnet/vimage_7-20081015.tgz. >> >> My problem is with TCP reassembly support inside of the vimages, namely >> with >> the tcp.reass.maxsegments sysctl variable. I've tracked down where in the >> code the variable is set to line 122 in tcp_reass_init() of >> netinet/tcp_reass.c: "V_tcp_reass_maxseg = nmbclusters / 16;". The line >> clearly reads that maxsegments should be set to "nmbclusters /16", in the >> main OS (not in any vimage) the value is correctly set to 1/16 of what my >> nmbclusters sysctl variable is set to. However, inside all my vimages >> nmbclusters is set correctly, while reass.maxsegments is incorrectly set >> to >> zero!!! >> > > V_tcp_reass_maxseg is a macro that hides the fact that > tcp_reass_maxseg is a PER Vimage variable. > > Part of the patch > is to make some sysctls be per-vimage. I do not know exactly > about that one.. I suspect it is actually a read-only > whole-system value, and not per vimage. > > > > > >> Is it possible that nmbclusters when read on line 122 of >> netinet/tcp_reass.c >> is zero? Has anyone else experienced this problem? Is TCP reassembly not >> supported/tested inside vimages? >> >> Any help in this area would be greatly appreciated. >> >> Thanks, >> Jason >> >> P.S. This technology is phenomenal, and thanks to everyone who is involved >> developing it. >> _______________________________________________ >> freebsd-virtualization@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization >> To unsubscribe, send any mail to " >> freebsd-virtualization-unsubscribe@freebsd.org" >> > >