[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (muc
From: |
Marcus Brinkmann |
Subject: |
Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case) |
Date: |
Fri, 8 Jun 2001 22:47:07 +0200 |
User-agent: |
Mutt/1.3.18i |
On Thu, Jun 07, 2001 at 05:29:58PM -0400, Roland McGrath wrote:
> > Are there timers responsible to flush the queue once in a while? Maybe the
> > timer emulation code is broken?
>
> That seems like a decent bet. There are indeed various timers used by the
> TCP transmit code (see tcp_timer.c). You should look into the
> tcp_reset_xmit_timer calls and see if things looks reasonable.
Yow! I fixed it. The packets were hold because a delayed ack was not
transmitted. This was because the delayed ack timer was set to expire at
tp->ato (2) + jiffies + jiffies. It turns out that callers use add_timer
with delta + jiffies as argument, and add_timer in timer_emul.c adds
jiffies, too. In linux/kernel/timer.c, it is clear that jiffies are not
added by add_timer, so the emulation code was wrong. Patched, compiled,
tried, works fine, case closed (picked up a lot about tcp on the way, more
than I ever wanted to know ;)
I have not tried it extensively. It will be interesting to find out if
other problems with pfinet were a side effect. But this was certainly the
worst problem currently.
Thanks,
Marcus
2001-06-08 Marcus Brinkmann <marcus@gnu.org>
* timer-emul.c (add_timer): Don't add jiffies to EXPIRES, it is
the responsibility of the caller to do this.
--
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de
- pfinet & ftp & hang, round two (much simpler case), Marcus Brinkmann, 2001/06/06
- Re: pfinet & ftp & hang, round two (much simpler case), Marcus Brinkmann, 2001/06/06
- packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case), Marcus Brinkmann, 2001/06/07
- Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case), Roland McGrath, 2001/06/07
- Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case),
Marcus Brinkmann <=
- Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case), Roland McGrath, 2001/06/08
- Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case), Mark Kettenis, 2001/06/10
- Re: packets stuck in queue (was: Re: pfinet & ftp & hang, round two (much simpler case), Marcus Brinkmann, 2001/06/10