All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Miller <davem@davemloft.net>,
	netdev <netdev@vger.kernel.org>,
	Neal Cardwell <ncardwell@google.com>,
	Joseph Salisbury <joseph.salisbury@canonical.com>
Subject: Re: [PATCH] net: skb_fclone_busy() needs to detect orphaned skb
Date: Thu, 13 Nov 2014 22:32:41 +0000	[thread overview]
Message-ID: <20141113223241.GA4867@hercules> (raw)
In-Reply-To: <1415913622.17262.24.camel@edumazet-glaptop2.roam.corp.google.com>

On Thu, Nov 13, 2014 at 01:20:22PM -0800, Eric Dumazet wrote:
> On Thu, 2014-11-13 at 19:15 +0000, Luis Henriques wrote:
> > Hi Eric,
> > 
> > On Thu, Oct 30, 2014 at 10:32:34AM -0700, Eric Dumazet wrote:
> > > From: Eric Dumazet <edumazet@google.com>
> > > 
> > > Some drivers are unable to perform TX completions in a bound time.
> > > They instead call skb_orphan()
> > > 
> > > Problem is skb_fclone_busy() has to detect this case, otherwise
> > > we block TCP retransmits and can freeze unlucky tcp sessions on
> > > mostly idle hosts.
> > > 
> > > Signed-off-by: Eric Dumazet <edumazet@google.com>
> > > Fixes: 1f3279ae0c13 ("tcp: avoid retransmits of TCP packets hanging in host queues")
> > > ---
> > >  This is a stable candidate.
> > >  This problem is known to hurt users of linux-3.16 kernels used by guests kernels.
> > >  David, I can provide backports if you want.
> > >  Thanks !
> > > 
> > 
> > We got a bug report[0] where a backport for 3.16 was provided.  Since
> > I couldn't find the original backport post, I'm not sure who's the
> > actual author.  Could you please confirm if this backport is correct?
> > (I'm copying the patch below).
> > 
> > [0] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1390604
> > 
> > Cheers,
> > --
> > Luís
> > 
> > 
> 
> Sure ! I provided this patch indeed, I am 'The Google engineer'
> mentioned in this bug report ;)
> 

Awesome, Thanks!  I'll queue it for the 3.16 kernel.  Since I couldn't
find the original patch, I could only guess who 'The Google engineer'
was :-)

Cheers,
--
Luís

> Signed-off-by: Eric Dumazet <edumazet@google.com>
> 
> 
> Thanks !
> 
> > diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
> > index 4e4932b5079b..a8794367cd20 100644
> > --- a/net/ipv4/tcp_output.c
> > +++ b/net/ipv4/tcp_output.c
> > @@ -2082,7 +2082,8 @@ static bool skb_still_in_host_queue(const struct sock *sk,
> >  	const struct sk_buff *fclone = skb + 1;
> >  
> >  	if (unlikely(skb->fclone == SKB_FCLONE_ORIG &&
> > -		     fclone->fclone == SKB_FCLONE_CLONE)) {
> > +		     fclone->fclone == SKB_FCLONE_CLONE &&
> > +		     fclone->sk == sk)) {
> >  		NET_INC_STATS_BH(sock_net(sk),
> >  				 LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES);
> >  		return true;
> 
> 
> 
> 

      reply	other threads:[~2014-11-13 22:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-30 17:32 [PATCH] net: skb_fclone_busy() needs to detect orphaned skb Eric Dumazet
2014-10-30 23:59 ` David Miller
2014-11-13 19:15 ` Luis Henriques
2014-11-13 21:20   ` Eric Dumazet
2014-11-13 22:32     ` Luis Henriques [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141113223241.GA4867@hercules \
    --to=luis.henriques@canonical.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=joseph.salisbury@canonical.com \
    --cc=ncardwell@google.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.