netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Savchenko <bircoph@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: netdev@vger.kernel.org
Subject: Re: [BUG] Kernel recieves DNS reply, but doesn't deliver it to a waiting application
Date: Mon, 4 Feb 2013 17:39:32 +0400	[thread overview]
Message-ID: <20130204173932.bad780bc.bircoph@gmail.com> (raw)
In-Reply-To: <20130116203644.8eb2a16f.bircoph@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 1480 bytes --]

Hello,

On Wed, 16 Jan 2013 20:36:44 +0400 Andrew Savchenko wrote:
> On Fri, 28 Dec 2012 10:11:03 -0800 Eric Dumazet wrote:
[...]
> > Thanks a lot !
> > 
> > I see strange drops in dev_hard_start_xmit()
> > 
> > l2tp needs some care.
> > 
> > Please try the following patch, as skb_cow_head() API
> > doesnt really ease skb->truesize exact tracking anyway, better not mess
> > with it. 
> 
> Sorry for the delay, but I was able to reboot kernel only today.
> Your patch is applied on top of the 3.7.2 vanilla kernel.
> 
> l2tp works fine and /proc/net/udp tx_queue values are normal now, see
> attached /prot/net/udp output. This is a good hint that problem is
> probably solved, but we need to wait at least several weeks to be
> sure.

With 16-days uptime system works fine.

Also I was able to reproduce this bug on another box: an embedded
system running openwrt with 3.7.5 kernel with openl2tpd client and
dnsmasq server. Due to limited memory resources this bug happened to
be easily reproducible: several thousands of dns queries were
sufficient to reproduce this bug. Full debug on embedded box was not
possible due to constrained resources, but bug appearance was the same
and /proc/net/udp is apparently broken (see attached log).

I applied your patch on openwrt's 3.7.5 kernel and it fixed the bug
on this box too.

So we've found a solution and I'm looking forward for it in the main
kernel :)

Best regards,
Andrew Savchenko

[-- Attachment #1.2: proc.net.udp --]
[-- Type: application/octet-stream, Size: 1794 bytes --]

# cat /proc/net/udp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops             
   42: 00000000:7B2A 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6239 2 816bb760 1                  
   53: 00000000:0035 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 1476 2 81b6e440 0                  
   67: 00000000:0043 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 1471 2 81b6e220 0                  
   76: 00000000:1B4C 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6225 2 816bacc0 1                  
   95: 00000000:165F 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6221 2 816ba880 1                  
  101: 0A34182E:AE65 0A320014:06A5 01 00000000:00000000 00:00000000 00000000     0        0 1538 4 81b6ecc0 0                  
  123: 00000000:007B 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 1530 2 81b6e880 0                  
  126: 00000000:847E 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6223 2 816baaa0 1                  
  153: 00000000:CF99 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6233 2 816bb540 1                  
  163: 00000000:09A3 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6227 2 816baee0 1                  
  165: 00000000:06A5 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 1523 2 81b6e660 0                  
  184: 00000000:70B8 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6231 2 816bb320 1                  
  226: 00000000:CCE2 00000000:0000 07 FFFFFFB0:00000000 00:00000000 00000000 65534        0 6229 2 816bb100 1

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

  reply	other threads:[~2013-02-04 13:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-03 19:25 Kernel recieves DNS reply, but doesn't deliver it to a waiting application Andrew Savchenko
2012-10-13 12:36 ` [BUG] " Andrew Savchenko
2012-10-13 13:44   ` Eric Dumazet
2012-10-13 23:11     ` Andrew Savchenko
2012-10-20 23:25       ` Andrew Savchenko
2012-10-21 12:52         ` Eric Dumazet
2012-10-22  3:36           ` Andrew Savchenko
2012-10-22  6:48             ` Eric Dumazet
2012-10-22 21:27               ` Andrew Savchenko
2012-12-12  8:27                 ` Andrew Savchenko
2012-12-23 11:06                   ` Andrew Savchenko
2012-12-28 18:11                     ` Eric Dumazet
2013-01-16 16:36                       ` Andrew Savchenko
2013-02-04 13:39                         ` Andrew Savchenko [this message]
2013-02-04 15:21                           ` Eric Dumazet
2012-11-23  7:45         ` Andrew Savchenko

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=20130204173932.bad780bc.bircoph@gmail.com \
    --to=bircoph@gmail.com \
    --cc=eric.dumazet@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).