Date: Tue, 20 Jan 2004 19:54:10 +0100 From: Andre Oppermann <andre@freebsd.org> To: lambert@lambertfam.org Cc: konfer@mikulas.com Subject: Re: PANIC: sent too much Message-ID: <400D7952.3050103@freebsd.org>
next in thread | raw e-mail | index | archive | help
> On Tue, Jan 20, 2004 at 01:42:33PM +0100, Jiri Mikulas wrote: >> hello >> sometimes i got this panic >> with high load on network interfaces >> >> Panicstring: sent too much > > I've seen that panicstring with a Jan 12 kernel on my fxp using athlon > system. I didn't have crashdumps setup but I took digital pictures I > can trascribe if necessary. > > I don't think mine was associated too much with high network activity, > but I didn't check too close. It didn't stay up for more than 12 hours > at a time and the shortest uptime was probably 10 minutes. It's all new > hardware so I was suspecting hardware for a while. > > I think I'm running a Jan 14 or 15 kernel now with no panics (so I no > longer suspect the hardware). I can check the exact cvsup date when I > get to work. Wish I had Wi-Fi on the MTA North. Could you please try the attached patch. This is a fix by Jeffrey Hsu taken from DFBSD. The problem is insufficient updating of some internal tcp variables. This comes into play when there is packet loss on a connection which is quite common on wireless links. ;) -- Andre Index: tcp_input.c =================================================================== RCS file: /home/ncvs/src/sys/netinet/tcp_input.c,v retrieving revision 1.219 diff -u -p -r1.219 tcp_input.c --- tcp_input.c 8 Jan 2004 17:40:06 -0000 1.219 +++ tcp_input.c 20 Jan 2004 18:46:51 -0000 @@ -1859,13 +1859,12 @@ trimthenstep6: KASSERT(tp->t_dupacks == 1 || tp->t_dupacks == 2, ("dupacks not 1 or 2")); - if (tp->t_dupacks == 1) { + if (tp->t_dupacks == 1) tp->snd_limited = 0; - tp->snd_cwnd += tp->t_maxseg; - } else { - tp->snd_cwnd += - tp->t_maxseg * 2; - } + tp->snd_cwnd = + (tp->snd_nxt - tp->snd_una) + + (tp->t_dupacks - tp->snd_limited) * + tp->t_maxseg; (void) tcp_output(tp); sent = tp->snd_max - oldsndmax; if (sent > tp->t_maxseg) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?400D7952.3050103>