netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: Holger Kiehl <Holger.Kiehl@dwd.de>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-net <linux-net@vger.kernel.org>,
	netdev@vger.kernel.org
Subject: Re: 2.6.1[78] page allocation failure. order:3, mode:0x20
Date: Fri, 22 Sep 2006 16:12:28 +0400	[thread overview]
Message-ID: <20060922121228.GA25849@2ka.mipt.ru> (raw)
In-Reply-To: <Pine.LNX.4.64.0609221149560.13396@diagnostix.dwd.de>

On Fri, Sep 22, 2006 at 12:03:11PM +0000, Holger Kiehl (Holger.Kiehl@dwd.de) wrote:
> >This is going to cause an 9000-byte MTU to use a 16384-byte allocation.
> >e1000_alloc_rx_buffers() adds two bytes to that, so we do kmalloc(16386),
> >which causes the slab allocator to request 32768 bytes.  All for a 9kbyte 
> >skb.
> >
> I searched the list, which I should have done before asking (I was not sure
> if this was due to the e1000) and found this
> 
>    http://www.ussg.iu.edu/hypermail/linux/kernel/0608.0/0942.html
> 
> discusion from 3rd August. As a summary I read that people are trying to 
> find
> a solution, in the meantime one should set /proc/sys/vm/min_free_kbytes to
> 65000 or higher, to ensure that the driver gets enough unfragmented memory.

There is no solution (although e1000 memory management problem is one of
the reasons I created memory tree allocator) yet, only workarounds, one
of which you described above.

e1000 hardware does not support setting of the maximum transfer size, it
only allows power of two (and about 1500), so it does require 16k of
memory for 9k frame (plus network skb allocation path adds a little which
is transformed into 32k request due to power of two problem).

Intel folks were suggested to either use fragments in one skb (or wait
until network developers invent something new), but there are no patches
from them (hopefully yet).

It is not e1000 only problem - expect even 8k-12k allocation not on
startup is definitely a wrong way.

> Holger

-- 
	Evgeniy Polyakov

  reply	other threads:[~2006-09-22 12:12 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.64.0609220655550.13396@diagnostix.dwd.de>
2006-09-22  7:42 ` 2.6.1[78] page allocation failure. order:3, mode:0x20 Andrew Morton
2006-09-22 12:03   ` Holger Kiehl
2006-09-22 12:12     ` Evgeniy Polyakov [this message]
2006-09-22 17:10   ` Auke Kok
2006-09-23  4:50     ` Andrew Morton
2006-09-23  5:25       ` David Miller
2006-09-23  5:33         ` Andrew Morton
2006-09-23 18:50           ` Auke Kok
2006-09-23 20:03             ` David Miller
2006-09-24 15:26           ` Evgeniy Polyakov
2006-09-24 21:15             ` Auke Kok

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=20060922121228.GA25849@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=Holger.Kiehl@dwd.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-net@vger.kernel.org \
    --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).