From owner-freebsd-net@FreeBSD.ORG Fri Jan 15 12:49:44 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D82BB1065672 for ; Fri, 15 Jan 2010 12:49:44 +0000 (UTC) (envelope-from is@rambler-co.ru) Received: from mailrelay1.rambler.ru (mailrelay1.rambler.ru [81.19.66.239]) by mx1.freebsd.org (Postfix) with ESMTP id 4F1668FC1E for ; Fri, 15 Jan 2010 12:49:43 +0000 (UTC) Received: from kas30pipe.localhost (localhost [127.0.0.1]) by mailrelay1.rambler.ru (Postfix) with ESMTP id D0C96130C64; Fri, 15 Jan 2010 15:49:42 +0300 (MSK) Received: from localhost (sysoev.ru [81.19.68.137]) by mailrelay1.rambler.ru (Postfix) with ESMTP id 334E8130C44; Fri, 15 Jan 2010 15:49:42 +0300 (MSK) Date: Fri, 15 Jan 2010 15:49:42 +0300 From: Igor Sysoev To: Pyun YongHyeon Message-ID: <20100115124942.GN84494@rambler-co.ru> References: <20091204075440.GH14822@rambler-co.ru> <20091204173243.GC16491@michelle.cdnetworks.com> <20091204191114.GB76992@rambler-co.ru> <20091204195140.GH16491@michelle.cdnetworks.com> <20091204201303.GD76992@rambler-co.ru> <20091204202213.GI16491@michelle.cdnetworks.com> <20100114160333.GC16657@rambler-co.ru> <20100114181031.GX1228@michelle.cdnetworks.com> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <20100114181031.GX1228@michelle.cdnetworks.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Anti-Virus: Kaspersky Anti-Virus for MailServers 5.5.33/RELEASE, bases: 02092009 #2738642, status: clean X-SpamTest-Envelope-From: is@rambler-co.ru X-SpamTest-Group-ID: 00000000 X-SpamTest-Info: Profiles 9536 [Sen 02 2009] X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: none X-SpamTest-Rate: 10 X-SpamTest-SPF: pass X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0284], KAS30/Release Cc: freebsd-net@freebsd.org Subject: Re: hw.bge.forced_collapse X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2010 12:49:45 -0000 On Thu, Jan 14, 2010 at 10:10:31AM -0800, Pyun YongHyeon wrote: > On Thu, Jan 14, 2010 at 07:03:33PM +0300, Igor Sysoev wrote: > > On Fri, Dec 04, 2009 at 12:22:13PM -0800, Pyun YongHyeon wrote: > > > > > On Fri, Dec 04, 2009 at 11:13:03PM +0300, Igor Sysoev wrote: > > > > On Fri, Dec 04, 2009 at 11:51:40AM -0800, Pyun YongHyeon wrote: > > > > > > > > > On Fri, Dec 04, 2009 at 10:11:14PM +0300, Igor Sysoev wrote: > > > > > > On Fri, Dec 04, 2009 at 09:32:43AM -0800, Pyun YongHyeon wrote: > > > > > > > > > > > > > On Fri, Dec 04, 2009 at 10:54:40AM +0300, Igor Sysoev wrote: > > > > > > > > I saw commit introducing hw.bge.forced_collapse loader tunable. > > > > > > > > Just intresting, why it can not be a sysctl ? > > > > > > > > > > > > > > I didn't think the sysctl variable would be frequently changed > > > > > > > in runtime except debugging driver so I took simple path. > > > > > > > > > > > > I do not think it's worth to reboot server just to look how various > > > > > > values affect on bandwidth and CPU usage, expecially in production. > > > > > > > > > > > > As I understand the change is trivial: > > > > > > > > > > > > - CTLFLAG_RD > > > > > > + CTLFLAG_RW > > > > > > > > > > > > since bge_forced_collapse is used atomically. > > > > > > > > > > > > > > > > I have no problem changing it to RW but that case I may have to > > > > > create actual sysctl node(e.g. dev.bge.0.forced_collapse) instead > > > > > of hw.bge.forced_collapse which may affect all bge(4) controllers > > > > > on system. Attached patch may be what you want. You can change the > > > > > value at any time. > > > > > > > > Thank you for the patch. Can it be installed on 8-STABLE ? > > > > > > > > > > bge(4) in HEAD has many fixes which were not MFCed to stable/8 so > > > I'm not sure that patch could be applied cleanly. But I guess you > > > can manually patch it. > > > I'll wait a couple of days for wider testing/review and commit the > > > patch. > > > > Sorry for the late response. We've tested bge.forced_collapse in December > > on HEAD and found that values >1 froze connections with big data amount, > > for example, "top -Ss1" output. Connection with small data amount such as > > short ssh commands worked OK. Now I've tested modern 7.2-STABLE and found > > that forced_collapse >1 freezes it too. > > > > Thanks for reporting! It seems I've incorrectly dropped mbuf chains > when collapsing fails. Would you try attached patch? BTW, it's strange that collapsing fails too often. > Index: sys/dev/bge/if_bge.c > =================================================================== > --- sys/dev/bge/if_bge.c (revision 202268) > +++ sys/dev/bge/if_bge.c (working copy) > @@ -3940,11 +3940,8 @@ > m = m_defrag(m, M_DONTWAIT); > else > m = m_collapse(m, M_DONTWAIT, sc->bge_forced_collapse); > - if (m == NULL) { > - m_freem(*m_head); > - *m_head = NULL; > - return (ENOBUFS); > - } > + if (m == NULL) > + m = *m_head; > *m_head = m; > } > -- Igor Sysoev http://sysoev.ru/en/