Re: [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid breaking GSOed skbs when SACKed one-by-one

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: David Miller
Date: Tuesday, December 11, 2007 - 5:32 am

From: "Ilpo_Järvinen" <ilpo.jarvinen@helsinki.fi>
Date: Tue, 11 Dec 2007 13:59:16 +0200 (EET)


Interesting approach, but I think there is limited value to this
(arguably) complex form.

The core issue is that the data and the SACK state are maintained in
the same datastructure.  The complexity in all the state management
and fixups in your patch is purely because of this.

If we maintain SACK scoreboard information seperately, outside of
the SKB, then there are only two changes to make:

1) Every access to TCP_SKB_CB() SACK scoreboard is adjusted to
   new data structure.

2) Retransmit is adjusted so that it can retransmit an SKB
   constructed as a portion of an existing SKB.  Since TSO
   implies SG, this can be handled with simple offset and
   length arguments and suitable creation of a clone referencing
   the pages in the SG vector that contain the desired data.

I would envision this SACK state thing to reference into the
retransmit queue SKB's somehow.  Each SACK block could perhaps
look something like:

	struct sack_ref {
		struct sk_buff *start_skb;
		struct sk_buff *end_skb;
		unsigned int start_off;
		unsigned int len;
	};

Traditionally we've prioritized the design of the SKB and other
infrastructure to suit TCP optimally and I still think we should
operate that way.

Therefore, long term, it is time to make a formal data blob to assist
with all of the repetitive work we do in cases like this and horribly
inefficient places like clean_rtx_queue().

So I'm basically advocating a two-pronged approach to this, the
seperate SACK scoreboard datastructure and the data blob.  I
think we can work on the former right now, and take our time with
the data blob because it requires lots of thinking and we should
get it right as it might have network driver interface implications.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] tcp-illinois: incorrect beta usage, Stephen Hemminger, (Wed Nov 28, 4:47 pm)
Re: [PATCH] tcp-illinois: incorrect beta usage, Lachlan Andrew, (Wed Nov 28, 5:25 pm)
Re: [PATCH] tcp-illinois: incorrect beta usage, Stephen Hemminger, (Wed Nov 28, 5:43 pm)
RE: [PATCH] tcp-illinois: incorrect beta usage, Shao Liu, (Wed Nov 28, 10:26 pm)
Re: [PATCH] tcp-illinois: incorrect beta usage, Herbert Xu, (Thu Nov 29, 7:12 am)
[RFC] TCP illinois max rtt aging, Stephen Hemminger, (Mon Dec 3, 3:52 pm)
Re: [RFC] TCP illinois max rtt aging, Lachlan Andrew, (Mon Dec 3, 4:06 pm)
RE: [RFC] TCP illinois max rtt aging, Shao Liu, (Mon Dec 3, 4:59 pm)
Re: [RFC] TCP illinois max rtt aging, Stephen Hemminger, (Mon Dec 3, 5:32 pm)
Re: [RFC] TCP illinois max rtt aging, Lachlan Andrew, (Mon Dec 3, 6:23 pm)
Re: [RFC] TCP illinois max rtt aging, Ilpo Järvinen, (Tue Dec 4, 1:37 am)
Re: [RFC] TCP illinois max rtt aging, Lachlan Andrew, (Thu Dec 6, 8:27 pm)
Re: [RFC] TCP illinois max rtt aging, Ilpo Järvinen, (Fri Dec 7, 4:05 am)
Re: [RFC] TCP illinois max rtt aging, David Miller, (Fri Dec 7, 5:41 am)
Re: [RFC] TCP illinois max rtt aging, Ilpo Järvinen, (Fri Dec 7, 6:05 am)
Re: [RFC] TCP illinois max rtt aging, Ilpo Järvinen, (Fri Dec 7, 11:27 am)
Re: [RFC] TCP illinois max rtt aging, David Miller, (Fri Dec 7, 6:32 pm)
Re: [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid break ..., David Miller, (Tue Dec 11, 5:32 am)
Re: [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid break ..., Stephen Hemminger, (Wed Dec 12, 5:00 pm)
Re: SACK scoreboard, David Miller, (Tue Jan 8, 12:36 am)
Re: SACK scoreboard, Ilpo Järvinen, (Tue Jan 8, 5:12 am)
Re: SACK scoreboard, John Heffner, (Tue Jan 8, 9:51 am)
Re: SACK scoreboard, David Miller, (Tue Jan 8, 3:44 pm)
Re: SACK scoreboard, Lachlan Andrew, (Tue Jan 8, 6:34 pm)
Re: SACK scoreboard, Andi Kleen, (Tue Jan 8, 7:25 pm)
Re: SACK scoreboard, John Heffner, (Tue Jan 8, 9:27 pm)
Re: SACK scoreboard, David Miller, (Tue Jan 8, 11:35 pm)
Re: SACK scoreboard, David Miller, (Tue Jan 8, 11:39 pm)
Re: SACK scoreboard, David Miller, (Tue Jan 8, 11:41 pm)
Re: SACK scoreboard, Andi Kleen, (Wed Jan 9, 12:03 am)
Re: SACK scoreboard, David Miller, (Wed Jan 9, 12:16 am)
Re: SACK scoreboard, David Miller, (Wed Jan 9, 12:58 am)
Re: SACK scoreboard, Evgeniy Polyakov, (Wed Jan 9, 2:47 am)
Re: SACK scoreboard, Ilpo Järvinen, (Wed Jan 9, 5:55 am)
Re: SACK scoreboard, Andi Kleen, (Wed Jan 9, 7:02 am)
Re: SACK scoreboard, John Heffner, (Wed Jan 9, 7:56 am)
Re: SACK scoreboard, SANGTAE HA, (Wed Jan 9, 11:14 am)
Re: SACK scoreboard, John Heffner, (Wed Jan 9, 11:23 am)