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?
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; }
_______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"