On Mon, 2018-02-05 at 07:52 -0800, Eric Dumazet wrote: > On Mon, 2018-02-05 at 17:11 +0200, Ilya Lesokhin wrote: > > Avoid SKB coalescing if eor bit is set in one of the relevant > > SKBs. > > > > Fixes: c134ecb87817 ("tcp: Make use of MSG_EOR in tcp_sendmsg") > > Signed-off-by: Ilya Lesokhin <il...@mellanox.com> > > --- > > Reviewed-by: Eric Dumazet <eduma...@google.com> > > Thanks.
I am taking this approval back. You missed an eor propagation if it is in the last skb that is copied to the new skb. Something like this added to your patch : diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index e9f985e42405a38fc95980da5debb7ac8b51fbb5..87c2ff458f7528ee3cd3e5e1154375a906c1bc67 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -2134,6 +2134,7 @@ static int tcp_mtu_probe(struct sock *sk) /* We've eaten all the data from this skb. * Throw it away. */ TCP_SKB_CB(nskb)->tcp_flags |= TCP_SKB_CB(skb)->tcp_flags; + TCP_SKB_CB(nskb)->eor = TCP_SKB_CB(skb)->eor; tcp_unlink_write_queue(skb, sk); sk_wmem_free_skb(sk, skb); } else {