[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1220638478.25932.20.camel@badari-desktop>
Date: Fri, 05 Sep 2008 11:14:38 -0700
From: Badari Pulavarty <pbadari@...ibm.com>
To: Ingo Molnar <mingo@...e.hu>
Cc: Gary Hade <garyhade@...ibm.com>, linux-mm@...ck.org,
Andrew Morton <akpm@...ux-foundation.org>,
Yasunori Goto <y-goto@...fujitsu.com>,
Mel Gorman <mel@....ul.ie>, Chris McDermott <lcm@...ibm.com>,
linux-kernel@...r.kernel.org, x86@...nel.org
Subject: Re: [PATCH] [RESEND] x86_64: add memory hotremove config option
On Fri, 2008-09-05 at 19:44 +0200, Ingo Molnar wrote:
> * Gary Hade <garyhade@...ibm.com> wrote:
>
> > Add memory hotremove config option to x86_64
> >
> > Memory hotremove functionality can currently be configured into the
> > ia64, powerpc, and s390 kernels. This patch makes it possible to
> > configure the memory hotremove functionality into the x86_64 kernel as
> > well.
>
> hm, why is it for 64-bit only?
>
> > +++ linux-2.6.27-rc5/arch/x86/Kconfig 2008-09-03 13:34:55.000000000 -0700
> > @@ -1384,6 +1384,9 @@
> > def_bool y
> > depends on X86_64 || (X86_32 && HIGHMEM)
> >
> > +config ARCH_ENABLE_MEMORY_HOTREMOVE
> > + def_bool y
>
> so this will break the build on 32-bit, if CONFIG_MEMORY_HOTREMOVE=y?
> mm/memory_hotplug.c assumes that remove_memory() is provided by the
> architecture.
>
> > +#ifdef CONFIG_MEMORY_HOTREMOVE
> > +int remove_memory(u64 start, u64 size)
> > +{
> > + unsigned long start_pfn, end_pfn;
> > + unsigned long timeout = 120 * HZ;
> > + int ret;
> > + start_pfn = start >> PAGE_SHIFT;
> > + end_pfn = start_pfn + (size >> PAGE_SHIFT);
> > + ret = offline_pages(start_pfn, end_pfn, timeout);
> > + if (ret)
> > + goto out;
> > + /* Arch-specific calls go here */
> > +out:
> > + return ret;
> > +}
> > +EXPORT_SYMBOL_GPL(remove_memory);
> > +#endif /* CONFIG_MEMORY_HOTREMOVE */
>
> hm, nothing appears to be arch-specific about this trivial wrapper
> around offline_pages().
Yes. All the archs (ppc64, ia64, s390, x86_64) have exact same
function. No architecture needed special handling so far (initial
versions of ppc64 needed extra handling, but I moved the code
to different place).
We can make this generic and kill all arch-specific ones.
Initially, we didn't know if any arch needs special handling -
so ended up having private functions for each arch.
I think its time to merge them all.
>
> Shouldnt this be moved to the CONFIG_MEMORY_HOTREMOVE portion of
> mm/memory_hotplug.c instead, as a weak function? That way architectures
> only have to enable ARCH_ENABLE_MEMORY_HOTREMOVE - and architectures
> with different/special needs can override it.
Yes. We should do that. I will send out a patch.
Thanks,
Badari
--
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