mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mel Gorman <mel@csn.ul.ie>
To: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Cc: "Luis R. Rodriguez" <mcgrof@gmail.com>, Tso Ted <tytso@mit.edu>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	Zhu Yi <yi.zhu@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Kernel Testers List <kernel-testers@vger.kernel.org>,
	Mel Gorman <mel@skynet.ie>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	James Ketrenos <jketreno@linux.intel.com>,
	"Chatre, Reinette" <reinette.chatre@intel.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"ipw2100-devel@lists.sourceforge.net" 
	<ipw2100-devel@lists.sourceforge.net>
Subject: Re: ipw2200: firmware DMA loading rework
Date: Mon, 21 Sep 2009 12:02:53 +0100	[thread overview]
Message-ID: <20090921110253.GM12726@csn.ul.ie> (raw)
In-Reply-To: <200909211246.34774.bzolnier@gmail.com>

On Mon, Sep 21, 2009 at 12:46:34PM +0200, Bartlomiej Zolnierkiewicz wrote:
> > > > > <SNIP>
> > > > >
> > > > > This time it is an order-6 page allocation failure for rt2870sta
> > > > > (w/ upcoming driver changes) and Linus' tree from few days ago..
> > > > > 
> > > > 
> > > > It's another high-order atomic allocation which is difficult to grant.
> > > > I didn't look closely, but is this the same type of thing - large allocation
> > > > failure during firmware loading? If so, is this during resume or is the
> > > > device being reloaded for some other reason?
> > > 
> > > Just modprobing the driver on a system running for some time.
> > > 
> > 
> > Was this a common situation before?
> 
> Yes, just like firmware restarts with ipw2200.
> 
> > > > I suspect that there are going to be a few of these bugs cropping up
> > > > every so often where network devices are assuming large atomic
> > > > allocations will succeed because the "only time they happen" is during
> > > > boot but these days are happening at runtime for other reasons.
> > > 
> > > I wouldn't go so far as calling a normal order-6 (256kB) allocation on
> > > 512MB machine with 1024MB swap a bug.  Moreover such failures just never
> > > happened before 2.6.31-rc1.
> > 
> > It's not that normal, it's an allocation that cannot sleep and cannot
> > reclaim. Why is something like firmware loading allocating memory like
> 
> OK.
> 
> > that? Is this use of GFP_ATOMIC relatively recent or has it always been
> > that way?
> 
> It has always been like that.
> 

Nuts, why is firmware loading depending on GFP_ATOMIC?

> > > I don't know why people don't see it but for me it has a memory management
> > > regression and reliability issue written all over it.
> > > 
> > 
> > Possibly but drivers that reload their firmware as a response to an
> > error condition is relatively new and loading network drivers while the
> > system is already up and running a long time does not strike me as
> > typical system behaviour.
> 
> Loading drivers after boot is a typical desktop/laptop behavior, please
> think about hotplug (the hardware in question is an USB dongle).
> 

In that case, how reproducible is this problem so it can be
bisected? Basically, there are no guarantees that GFP_ATOMIC allocations
of this order will succeed although you can improve the odds by increasing
min_free_kbytes. Network drivers should never have been depending on GFP_ATOMIC
succeeding like this but the hole has been dug now.

If it's happening more frequently now than it used to then either

1. The allocations are occuring more frequently where as previously a
   pool might have been reused or the memory not freed for the lifetime of
   the system.

2. Something has changed in the allocator. I'm not aware of recent
   changes that could cause this though in such a recent time-frame.

3. Something has changed recently with respect to reclaim. There have
   been changes made recently to lumpy reclaim and that might be impacting
   kswapd's efforts at keeping large contiguous regions free.

4. Hotplug events that involve driver loads are more common now than they
   were previously for some reason. You mention that this is a USB dongle for
   example. Was it a case before that the driver loaded early and remained
   resident but only active after a hotplug event? If that was the case,
   the memory would be allocated once at boot. However, if an optimisation
   made recently unloads those unused drivers and re-loads them later, there
   would be more order-6 allocations than they were previously and manifest
   as these bug reports. Is this a possibility?

The ideal would be that network drivers not make allocations like this
in the first place by, for example, DMAing the firmware across in
page-size chunks instead of one contiguous lump :/

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

  parent reply	other threads:[~2009-09-21 11:02 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-25 20:00 2.6.31-rc7-git2: Reported regressions from 2.6.30 Rafael J. Wysocki
2009-08-25 20:00 ` [Bug #13645] NULL pointer dereference at (null) (level2_spare_pgt) Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13809] oprofile: possible circular locking dependency detected Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13740] X server crashes with 2.6.31-rc2 when options are changed Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13733] 2.6.31-rc2: irq 16: nobody cared Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13819] system freeze when switching to console Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13848] iwlwifi (4965) regression since 2.6.30 Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13836] suspend script fails, related to stdout? Rafael J. Wysocki
2009-08-26 11:10   ` Tomas M.
2009-08-26 20:56     ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13906] Huawei E169 GPRS connection causes Ooops Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13935] 2.6.31-rcX breaks Apple MightyMouse (Bluetooth version) Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13869] Radeon framebuffer (w/o KMS) corruption at boot Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13940] iwlagn and sky2 stopped working, ACPI-related Rafael J. Wysocki
2009-08-26  0:00   ` Ricardo Jorge da Fonseca Marques Ferreira
2009-08-26 20:58     ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13942] Troubles with AoE and uninitialized object Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13941] x86 Geode issue Rafael J. Wysocki
2009-08-25 23:37   ` Martin-Éric Racine
2009-08-26 20:59     ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13943] WARNING: at net/mac80211/mlme.c:2292 with ath5k Rafael J. Wysocki
2009-08-26  6:39   ` Fabio Comolli
2009-08-26 21:00     ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13950] Oops when USB Serial disconnected while in use Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13960] rtl8187 not connect to wifi Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13948] ath5k broken after suspend-to-ram Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13947] Libertas: Association request to the driver failed Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #13987] Received NMI interrupt at resume Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14012] latest git fried my x86_64 imac Rafael J. Wysocki
2009-08-26  0:28   ` Justin P. Mattock
2009-08-26 21:06     ` Rafael J. Wysocki
2009-08-26 21:58       ` Justin P. Mattock
2009-08-27 18:01       ` Justin P. Mattock
2009-08-27 19:45         ` Rafael J. Wysocki
2009-08-27 20:47           ` Randy Dunlap
2009-08-27 21:01             ` Justin P. Mattock
2009-08-25 20:34 ` [Bug #14011] Kernel paging request failed in kmem_cache_alloc Rafael J. Wysocki
2009-08-26  6:17   ` Pekka Enberg
2009-08-26 14:01     ` Matthias Dahl
2009-08-26 14:59       ` Pekka Enberg
2009-08-26 15:08         ` Eric Paris
2009-08-26 21:03         ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14015] pty regressed again, breaking expect and gcc's testsuite Rafael J. Wysocki
2009-08-27 19:54   ` Mikael Pettersson
2009-08-28 18:56     ` Rafael J. Wysocki
2009-08-28 20:23       ` Mikael Pettersson
2009-08-29 14:16         ` Mikael Pettersson
2009-08-29 19:01           ` Rafael J. Wysocki
2009-08-31 13:22             ` Mikael Pettersson
2009-09-01  1:34               ` Mikael Pettersson
2009-09-01 18:42                 ` Rafael J. Wysocki
2009-09-03  1:23                   ` Linus Torvalds
2009-09-03 11:29                     ` OGAWA Hirofumi
2009-09-03 21:00                       ` Mikael Pettersson
2009-09-04  0:01                       ` Linus Torvalds
2009-09-04  1:41                         ` OGAWA Hirofumi
2009-09-04  1:52                           ` Linus Torvalds
2009-09-04 15:28                         ` Alan Cox
2009-09-04 17:33                           ` Linus Torvalds
2009-09-03 20:27                     ` Mikael Pettersson
2009-09-04 13:23                     ` Mikael Pettersson
2009-09-04 17:30                       ` Linus Torvalds
2009-09-04 17:53                         ` Linus Torvalds
2009-09-04 17:55                           ` Linus Torvalds
2009-09-04 18:11                             ` Linus Torvalds
2009-09-04 19:11                               ` Linus Torvalds
2009-09-04 19:19                                 ` Linus Torvalds
2009-09-05 10:46                                   ` Mikael Pettersson
2009-09-05 20:29                                     ` Linus Torvalds
2009-09-05 22:42                                       ` Mikael Pettersson
2009-09-05 17:00                                 ` OGAWA Hirofumi
2009-09-05 18:06                                   ` Linus Torvalds
2009-09-05 18:56                                     ` OGAWA Hirofumi
2009-09-05 21:56                                   ` Alan Cox
2009-09-05 22:46                                     ` OGAWA Hirofumi
2009-09-04 21:12                               ` Alan Cox
2009-08-25 20:34 ` [Bug #14016] mm/ipw2200 regression Rafael J. Wysocki
2009-08-26  6:09   ` Pekka Enberg
2009-08-26  8:27     ` Johannes Weiner
2009-08-26  9:37       ` Mel Gorman
2009-08-26 14:44         ` Andrew Morton
2009-08-27  9:11           ` Zhu Yi
2009-08-27  9:45             ` Mel Gorman
2009-08-28  3:42           ` ipw2200: firmware DMA loading rework Zhu Yi
2009-08-30 12:37             ` Bartlomiej Zolnierkiewicz
2009-09-02 17:48               ` Bartlomiej Zolnierkiewicz
2009-09-02 18:02                 ` Luis R. Rodriguez
2009-09-02 18:26                   ` Bartlomiej Zolnierkiewicz
2009-09-19 13:25                     ` Bartlomiej Zolnierkiewicz
2009-09-21  8:58                       ` Mel Gorman
2009-09-21  9:59                         ` Bartlomiej Zolnierkiewicz
2009-09-21 10:08                           ` Mel Gorman
2009-09-21 10:46                             ` Bartlomiej Zolnierkiewicz
2009-09-21 10:56                               ` Pekka Enberg
2009-09-21 13:12                                 ` Bartlomiej Zolnierkiewicz
2009-09-21 13:37                                   ` Mel Gorman
2009-09-21 11:02                               ` Mel Gorman [this message]
2009-09-03 12:49                   ` Mel Gorman
2009-09-05 14:28                     ` Theodore Tso
2009-09-08 11:00                       ` Mel Gorman
2009-09-08 20:39                         ` Simon Kitching
2009-08-26  9:51       ` [Bug #14016] mm/ipw2200 regression Johannes Weiner
2009-08-25 20:34 ` [Bug #14013] hd don't show up Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14017] _end symbol missing from Symbol.map Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14018] kernel freezes, inotify problem Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14030] Kernel NULL pointer dereference at 0000000000000008, pty-related Rafael J. Wysocki
2009-08-26  0:16   ` Linus Torvalds
2009-08-26 21:11     ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14057] Strange network timeouts w/ e100 Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14031] dvb_usb_af9015: Oops on hotplugging Rafael J. Wysocki
2009-08-25 23:57   ` Stefan Lippers-Hollmann
2009-08-26  0:03     ` Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14060] oops: sysfs_remove_link and i915 Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14058] Oops in fsnotify Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14061] Crash due to buggy flat_phys_pkg_id Rafael J. Wysocki
2009-08-25 20:34 ` [Bug #14062] Failure to boot as xen guest Rafael J. Wysocki
2009-09-01 19:47   ` Jeremy Fitzhardinge

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=20090921110253.GM12726@csn.ul.ie \
    --to=mel@csn.ul.ie \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=bzolnier@gmail.com \
    --cc=hannes@cmpxchg.org \
    --cc=ipw2100-devel@lists.sourceforge.net \
    --cc=jketreno@linux.intel.com \
    --cc=kernel-testers@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mcgrof@gmail.com \
    --cc=mel@skynet.ie \
    --cc=netdev@vger.kernel.org \
    --cc=penberg@cs.helsinki.fi \
    --cc=reinette.chatre@intel.com \
    --cc=rjw@sisk.pl \
    --cc=tytso@mit.edu \
    --cc=yi.zhu@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

Powered by JetHome