From: Stanislaw Gruszka <sgruszka@redhat.com>
To: Mel Gorman <mgorman@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Pavel Machek <pavel@ucw.cz>, David Rientjes <rientjes@google.com>,
linux-wireless@vger.kernel.org, johannes.berg@intel.com,
wey-yi.w.guy@intel.com, ilw@linux.intel.com,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: iwl3945: order 5 allocation during ifconfig up; vm problem?
Date: Wed, 3 Oct 2012 13:37:00 +0200 [thread overview]
Message-ID: <20121003113659.GD2259@redhat.com> (raw)
In-Reply-To: <20120912101826.GL11266@suse.de>
On Wed, Sep 12, 2012 at 11:18:26AM +0100, Mel Gorman wrote:
> On Tue, Sep 11, 2012 at 04:25:36PM -0700, Andrew Morton wrote:
> > On Mon, 10 Sep 2012 13:11:13 +0200
> > Pavel Machek <pavel@ucw.cz> wrote:
> >
> > > On Sun 2012-09-09 15:40:55, David Rientjes wrote:
> > > > On Sun, 9 Sep 2012, Pavel Machek wrote:
> > > >
> > > > > On 3.6.0-rc2+, I tried to turn on the wireless, but got
> > > > >
> > > > > root@amd:~# ifconfig wlan0 10.0.0.6 up
> > > > > SIOCSIFFLAGS: Cannot allocate memory
> > > > > SIOCSIFFLAGS: Cannot allocate memory
> > > > > root@amd:~#
> > > > >
> > > > > It looks like it uses "a bit too big" allocations to allocate
> > > > > firmware...? Order five allocation....
> > > > >
> > > > > Hmm... then I did "echo 3 > /proc/sys/vm/drop_caches" and now the
> > > > > network works. Is it VM problem that it failed to allocate memory when
> > > > > it was freeable?
> > > > >
> > > >
> > > > Do you have CONFIG_COMPACTION enabled?
> > >
> > > Yes:
> > >
> > > pavel@amd:/data/l/linux-good$ zgrep CONFIG_COMPACTION /proc/config.gz
> > > CONFIG_COMPACTION=y
> >
> > Asking for a 256k allocation is pretty crazy - this is an operating
> > system kernel, not a userspace application.
> >
> > I'm wondering if this is due to a recent change, but I'm having trouble
> > working out where the allocation call site is.
>
> It may be indirectly due to a recent change and this was somewhat
> deliberate. Order-5 is larger than PAGE_ALLOC_COSTLY_ORDER and I doubt
> __GFP_REPEAT was set so it is treated as something that can fail in
> preference to aggressively reclaiming pages to satisfy the allocation. In
> older kernels with lumpy reclaim and an aggressive kswapd it would have
> probably succeeded but now it errs on the side of failing early instead
> assuming that the caller can recover. Drivers that depend on order-5
> allocations to succeed for correct operation are somewhat frowned upon.
So, can this problem be solved like on below patch, or I should rather
split firmware loading into chunks similar like was already iwlwifi did?
diff --git a/drivers/net/wireless/iwlegacy/common.h b/drivers/net/wireless/iwlegacy/common.h
index 5f50177..1b58222 100644
--- a/drivers/net/wireless/iwlegacy/common.h
+++ b/drivers/net/wireless/iwlegacy/common.h
@@ -2247,7 +2247,7 @@ il_alloc_fw_desc(struct pci_dev *pci_dev, struct fw_desc *desc)
desc->v_addr =
dma_alloc_coherent(&pci_dev->dev, desc->len, &desc->p_addr,
- GFP_KERNEL);
+ GFP_KERNEL | __GFP_REPEAT);
return (desc->v_addr != NULL) ? 0 : -ENOMEM;
}
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-10-03 11:37 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-09 21:32 Pavel Machek
2012-09-09 22:40 ` David Rientjes
2012-09-10 11:11 ` Pavel Machek
2012-09-11 23:25 ` Andrew Morton
2012-09-12 5:16 ` Eric Dumazet
2012-09-12 5:57 ` Marc MERLIN
2012-09-12 6:54 ` Johannes Berg
2012-09-24 9:03 ` Dan Carpenter
2012-09-24 9:14 ` Johannes Berg
2012-09-12 9:22 ` Stanislaw Gruszka
2012-09-12 10:18 ` Mel Gorman
2012-10-03 11:37 ` Stanislaw Gruszka [this message]
2012-10-03 18:07 ` David Rientjes
2012-10-05 8:37 ` Stanislaw Gruszka
2012-10-06 12:08 ` Pavel Machek
2012-10-08 15:38 ` Stanislaw Gruszka
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=20121003113659.GD2259@redhat.com \
--to=sgruszka@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=ilw@linux.intel.com \
--cc=johannes.berg@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-wireless@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=pavel@ucw.cz \
--cc=rientjes@google.com \
--cc=wey-yi.w.guy@intel.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