[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20081204093143.390afa9f.kamezawa.hiroyu@jp.fujitsu.com>
Date: Thu, 4 Dec 2008 09:31:43 +0900
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
To: Dave Hansen <dave@...ux.vnet.ibm.com>
Cc: gerald.schaefer@...ibm.com, akpm@...ux-foundation.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
schwidefsky@...ibm.com, heiko.carstens@...ibm.com,
y-goto@...fujitsu.com, npiggin@...e.de
Subject: Re: [PATCH] memory hotplug: run lru_add_drain_all() on each cpu
On Wed, 03 Dec 2008 14:16:07 -0800
Dave Hansen <dave@...ux.vnet.ibm.com> wrote:
> > This let us run
> > into the BUG_ON(!PageBuddy(page)) in __offline_isolated_pages() during
> > memory hotplug stress test on s390. The page in question was still on the
> > pcp list, because of a race with lru_add_drain_all() and drain_all_pages()
> > on different cpus.
> >
> > This is fixed with this patch by adding CONFIG_MEMORY_HOTREMOVE to the
> > lru_add_drain_all() #ifdef, to let it run on each cpu.
>
> This doesn't seem right to me. CONFIG_MEMORY_HOTREMOVE doesn't change
> the layout of the LRUs, unlike NUMA or UNEVICTABLE_LRU. So, I think
> this bug is more due to the hotremove code mis-expecting behavior out of
> lru_add_drain_all().
>
How about
#ifdef CONFIG_SMP
#else..
#endif
rather than
-#if defined(CONFIG_NUMA) || defined(CONFIG_UNEVICTABLE_LRU)
+#if defined(CONFIG_NUMA) || defined(CONFIG_UNEVICTABLE_LRU) || \
+ defined(CONFIG_MEMORY_HOTREMOVE)
...
thanks,
-Kame
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists