linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Stezenbach <js@sig21.net>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Igor Plyatov <plyatov@gmail.com>, linux-wireless@vger.kernel.org
Subject: Re: rt2800usb: page allocation failure
Date: Tue, 12 Apr 2011 23:22:36 +0200	[thread overview]
Message-ID: <20110412212236.GA8877@sig21.net> (raw)
In-Reply-To: <4DA49332.8000403@lwfinger.net>

On Tue, Apr 12, 2011 at 01:00:18PM -0500, Larry Finger wrote:
> On 04/12/2011 10:38 AM, Igor Plyatov wrote:
> 
> >kworker/u:1: page allocation failure. order:1, mode:0x20

mode:0x20 corresponds with GFP_ATOMIC

> >[<c0279450>] (dev_alloc_skb+0x0/0x44) from [<c0226698>]
> >(rt2x00queue_alloc_rxskb+0x4c/0xc4)
> >[<c022664c>] (rt2x00queue_alloc_rxskb+0x0/0xc4) from [<c0223480>]
> >(rt2x00lib_rxdone+0x44/0x298)
> 
> --snip--
> 
> >Normal: 403*4kB 2*8kB 2*16kB 2*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB
> >0*2048kB 0*4096kB = 1724kB
> 
> Your system is failing to get a receive buffer of size 8kB
> (order:1). If we look at the last line above, you have quite a bit
> of memory free, but it is highly fragmented - almost all of it is in
> 4kB pieces. This condition is not fatal, but it can be avoided by
> changing the NIC parameters so that each RX buffer fits in 4k.
> 
> If you look at the ifconfig output for this device, the MTU is
> likely 1500. By reducing this, you should be able to get all buffers
> to be of order 0. I would start with 1400 to see if it makes the
> problem go away. Reducing this quantity has the potential to slow
> the network transfers, but you won't see it as the default block
> size for dd is 512. Any such slowdown will be much less severe than
> the delay causes by missing a buffer allocation.

I don't think the allocation uses the MTU, rather rt2x00queue_alloc_rxskb()
uses some hw specific constants.  No idea if these can be reduced,
but multi-page GFP_ATOMIC allocations can easily fail.

However, I'm not sure why an 8kB allocation fails if the oom dump
says 2*8kB are available.  I guess it has something to do with
the GFP_ATOMIC.


Johannes

  reply	other threads:[~2011-04-12 21:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-12 15:38 rt2800usb: page allocation failure Igor Plyatov
2011-04-12 18:00 ` Larry Finger
2011-04-12 21:22   ` Johannes Stezenbach [this message]
2011-04-13  1:38     ` Larry Finger
2011-04-13  7:54       ` Helmut Schaa
2011-04-13  7:55       ` Johannes Stezenbach

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=20110412212236.GA8877@sig21.net \
    --to=js@sig21.net \
    --cc=Larry.Finger@lwfinger.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=plyatov@gmail.com \
    /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).