From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: David Rientjes <rientjes@google.com>
Cc: Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
Matthew Wilcox <matthew@wil.cx>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Michal Hocko <mhocko@suse.cz>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
linux-parisc@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
x86 maintainers <x86@kernel.org>,
linux-arch@vger.kernel.org, Mel Gorman <mel@csn.ul.ie>
Subject: Re: [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards
Date: Thu, 21 Apr 2011 11:06:36 -0500 [thread overview]
Message-ID: <1303401997.4025.8.camel@mulgrave.site> (raw)
In-Reply-To: <alpine.DEB.2.00.1104201437180.31768@chino.kir.corp.google.com>
On Wed, 2011-04-20 at 14:42 -0700, David Rientjes wrote:
> On Wed, 20 Apr 2011, Christoph Lameter wrote:
>
> > There is barely any testing going on at all of this since we have had this
> > issue for more than 5 years and have not noticed it. The absence of bug
> > reports therefore proves nothing. Code inspection of the VM shows
> > that this is an issue that arises in multiple subsystems and that we have
> > VM_BUG_ONs in the page allocator that should trigger for these situations.
> >
> > Usage of DISCONTIGMEM and !NUMA is not safe and should be flagged as such.
> >
>
> We don't actually have any bug reports in front of us that show anything
> else in the VM other than slub has issues with this configuration, so
> marking them as broken is probably premature. The parisc config that
> triggered this debugging enables CONFIG_SLAB by default, so it probably
> has gone unnoticed just because nobody other than James has actually tried
> it on hppa64.
>
> Let's see if KOSAKI-san's fixes to Kconfig (even though I'd prefer the
> simpler and implicit "config NUMA def_bool ARCH_DISCONTIGMEM_ENABLE" over
> his config NUMA) and my fix to parisc to set the bit in N_NORMAL_MEMORY
> so that CONFIG_SLUB initializes kmem_cache_node correctly works and then
> address issues in the core VM as they arise. Presumably someone has been
> running DISCONTIGMEM on hppa64 in the past five years without issues with
> defconfig, so the issue here may just be slub.
Actually, we can fix slub. As far as all my memory hammer tests go, the
one liner below is the actual fix (it just forces slub get_node() to
return the zero node always on !NUMA). That, as far as a code
inspection goes, seems to make SLUB as good as SLAB ... as long as
no-one uses hugepages or VM DEBUG, which, I think we've demonstrated, is
the case for all the current DISCONTIGMEM users.
I think either the above or just marking slub broken in DISCONTIGMEM & !
NUMA is sufficient for stable. The fix is getting urgent, because
debian (which is what most of our users are running) has made SLUB the
default allocator, which is why we're now starting to run into these
panic reports.
The set memory range fix looks good for a backport too ... at least the
page cache is now no-longer reluctant to use my upper 1GB ...
I worry a bit more about backporting the selection of NUMA as a -stable
fix because it's a larger change (and requires changes to all the
architectures, since NUMA is an arch local Kconfig variable)
James
----
diff --git a/mm/slub.c b/mm/slub.c
index 94d2a33..243bd9c 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -235,7 +235,11 @@ int slab_is_available(void)
static inline struct kmem_cache_node *get_node(struct kmem_cache *s, int node)
{
+#ifdef CONFIG_NUMA
return s->node[node];
+#else
+ return s->node[0];
+#endif
}
/* Verify that a pointer has an address that is valid within a slab page */
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-04-21 16:06 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-15 13:51 [PATCH] mm: make expand_downwards symmetrical to expand_upwards Michal Hocko
2011-04-18 3:00 ` Hugh Dickins
2011-04-18 10:01 ` [PATCH v2] " Michal Hocko
2011-04-18 20:56 ` Andrew Morton
[not found] ` <20110419091022.GA21689@tiehlicka.suse.cz>
2011-04-19 11:09 ` [PATCH followup] mm: get rid of CONFIG_STACK_GROWSUP || CONFIG_IA64 Michal Hocko
2011-04-20 0:33 ` KOSAKI Motohiro
2011-04-20 6:59 ` Michal Hocko
2011-04-20 7:08 ` KOSAKI Motohiro
2011-04-26 7:59 ` Michal Hocko
2011-04-19 11:10 ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards Michal Hocko
2011-04-19 15:46 ` James Bottomley
2011-04-19 16:06 ` [PATCH v3] mm: make expand_downwards symmetrical to John David Anglin
2011-04-19 16:59 ` James Bottomley
2011-04-19 16:07 ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards James Bottomley
2011-04-19 17:05 ` Pekka Enberg
2011-04-19 17:11 ` James Bottomley
2011-04-19 17:15 ` Christoph Lameter
2011-04-19 17:48 ` James Bottomley
2011-04-19 18:10 ` Christoph Lameter
2011-04-19 18:20 ` James Bottomley
2011-04-19 18:35 ` Christoph Lameter
2011-04-19 19:49 ` James Bottomley
2011-04-19 20:56 ` Christoph Lameter
2011-04-19 21:21 ` James Bottomley
2011-04-19 21:39 ` Christoph Lameter
2011-04-19 21:48 ` James Bottomley
2011-04-19 21:58 ` Christoph Lameter
2011-04-20 1:23 ` KOSAKI Motohiro
2011-04-20 2:48 ` James Bottomley
2011-04-20 2:57 ` KOSAKI Motohiro
2011-04-20 13:50 ` Christoph Lameter
2011-04-21 13:32 ` Tejun Heo
2011-04-20 5:53 ` Pekka Enberg
2011-04-20 7:15 ` KOSAKI Motohiro
2011-04-20 7:34 ` Pekka Enberg
2011-04-20 8:40 ` KOSAKI Motohiro
2011-04-20 16:32 ` James Bottomley
2011-04-20 16:50 ` Christoph Lameter
2011-04-20 18:09 ` James Bottomley
2011-04-20 21:18 ` David Rientjes
2011-04-20 22:15 ` James Bottomley
2011-04-20 23:12 ` David Rientjes
2011-04-21 13:16 ` KOSAKI Motohiro
2011-04-21 16:37 ` James Bottomley
2011-04-21 18:33 ` Christoph Lameter
2011-04-21 18:45 ` Dave Hansen
2011-04-22 18:19 ` James Bottomley
2011-04-22 20:24 ` Dave Hansen
2011-04-22 20:35 ` James Bottomley
2011-04-22 21:33 ` James Bottomley
2011-04-23 18:34 ` [PATCH] convert parisc to sparsemem (was Re: [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards) James Bottomley
2011-04-24 16:27 ` John David Anglin
2011-04-26 0:32 ` KOSAKI Motohiro
2011-04-27 16:36 ` Dave Hansen
2011-04-21 20:05 ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards James Bottomley
2011-04-21 21:07 ` Christoph Lameter
2011-04-21 21:22 ` James Bottomley
2011-04-21 19:33 ` David Rientjes
2011-04-22 0:34 ` KOSAKI Motohiro
2011-04-21 13:03 ` KOSAKI Motohiro
2011-04-21 19:38 ` David Rientjes
2011-04-21 20:02 ` Christoph Lameter
2011-04-21 21:19 ` David Rientjes
2011-04-21 21:24 ` James Bottomley
2011-04-21 21:34 ` David Rientjes
2011-04-21 21:49 ` James Bottomley
2011-04-21 22:12 ` David Rientjes
2011-04-22 8:02 ` Pekka Enberg
2011-04-22 13:49 ` James Bottomley
2011-04-22 17:00 ` Pekka Enberg
2011-04-22 17:03 ` James Bottomley
2011-04-21 21:41 ` [patch] mm: always set nodes with regular memory in N_NORMAL_MEMORY David Rientjes
2011-04-22 0:36 ` KOSAKI Motohiro
2011-04-20 21:05 ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards David Rientjes
2011-04-20 11:20 ` Matthew Wilcox
2011-04-20 11:28 ` Pekka Enberg
2011-04-20 14:15 ` James Bottomley
2011-04-20 14:50 ` Christoph Lameter
2011-04-20 15:02 ` James Bottomley
2011-04-20 15:22 ` Christoph Lameter
2011-04-20 19:25 ` Matthew Wilcox
2011-04-20 21:42 ` David Rientjes
2011-04-21 16:06 ` James Bottomley [this message]
2011-04-21 22:19 ` David Rientjes
2011-04-21 22:31 ` James Bottomley
2011-04-20 13:58 ` Christoph Lameter
2011-04-20 21:34 ` David Rientjes
2011-04-20 14:07 ` Christoph Lameter
2011-04-20 2:33 ` James Bottomley
2011-04-19 17:12 ` Christoph Lameter
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=1303401997.4025.8.camel@mulgrave.site \
--to=james.bottomley@hansenpartnership.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=hughd@google.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-parisc@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=mel@csn.ul.ie \
--cc=mhocko@suse.cz \
--cc=mingo@elte.hu \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=x86@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).