Re: WARNING: at net/ipv4/tcp_input.c:2054 tcp_mark_head_lost()

From: Bill Fink
Date: Thu Feb 28 2008 - 23:35:47 EST


On Thu, 28 Feb 2008, Andrew Morton wrote:

> On Thu, 28 Feb 2008 10:22:27 +0200 (EET) "Ilpo Järvinen" <ilpo.jarvinen@xxxxxxxxxxx> wrote:
>
> > [PATCH] TCP debug S+L (for 2.6.25-rcs, incompatible with 2.6.24.y)
> >
> > ---
> > include/net/tcp.h | 9 +++-
> > net/ipv4/tcp_input.c | 18 +++++++-
> > net/ipv4/tcp_ipv4.c | 127 +++++++++++++++++++++++++++++++++++++++++++++++++
> > net/ipv4/tcp_output.c | 23 +++++++--
>
> I'll put this in -mm, see if we can flush anything out. Please let me know
> if/when it's obsolete, updated, etc.
>
> What is "S+L"?

I'll let Ilpo give the definitive answer. But to test if I'm starting
to grasp this, I'll give my understanding. I believe 'S' means that a
transmitted TCP skb has been acknowledged by a SACK, while 'L' means
that a transmitted SKB is believed lost. Since the 'S' state implies
that the packet has actually been successfully received, it should not be
possible for it to be considered lost ('L' state). Thus an "S+L" state
for a TCP skb is an internally inconsistent state and an indication of
a TCP bug.

Anyone feel free to correct me if I'm way off base in my understanding.

-Bill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/