Re: race in skb_splice_bits?

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Octavian Purdila
Date: Wednesday, May 28, 2008 - 6:20 am

On Wednesday 28 May 2008, Evgeniy Polyakov wrote:


I think that tcp_collapse does this kind of aggregation when we have memory 
pressure: will create a new skb and move the data from the old skbs in the 
new one, freeing the old skb. Right?


Hmm, I didn't thought about this, but you are right, we could have other 
consumer sneaking in.


If the consumer didn't consume data, the seq number will not be updated, and 
seq-1 will correspond to a previous skb, which was already dequeued and 
processed. Thus tcp_recv_skb(seq-1) will return NULL.


If the skb was partially consumed then tcp_recv_skb(seq-1) will return the 
same skb and the offset +1 != skb->len, thus we will not free it.


I didn't get this part, shouldn't the entity which dequeues the packet also 
free it? 

Anyways, I am a newbie in this area, so if my logic doesn't make any sense 
please be patient with me :)

Thanks,
tavi

--
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:
race in skb_splice_bits?, Octavian Purdila, (Mon May 26, 5:25 pm)
Re: race in skb_splice_bits?, Ben Hutchings, (Mon May 26, 7:08 pm)
Re: race in skb_splice_bits?, Octavian Purdila, (Tue May 27, 3:41 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 4:01 am)
Re: race in skb_splice_bits?, Ben Hutchings, (Tue May 27, 4:08 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 4:52 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 4:56 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Tue May 27, 5:53 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 6:21 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 7:03 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Tue May 27, 7:39 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 8:09 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 8:12 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 8:22 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Tue May 27, 8:33 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 8:47 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Tue May 27, 10:28 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Tue May 27, 4:59 pm)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Wed May 28, 1:52 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Wed May 28, 6:20 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Wed May 28, 7:11 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Wed May 28, 8:20 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Wed May 28, 8:42 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Wed May 28, 10:08 am)
Re: race in skb_splice_bits?, Evgeniy Polyakov, (Wed May 28, 10:51 am)
Re: race in skb_splice_bits?, Octavian Purdila, (Wed May 28, 11:02 am)
Re: race in skb_splice_bits?, Jarek Poplawski, (Wed May 28, 1:01 pm)
Re: race in skb_splice_bits?, Octavian Purdila, (Wed May 28, 1:09 pm)
Re: race in skb_splice_bits?, Jarek Poplawski, (Wed May 28, 1:16 pm)