Re: [PATCH v2 0/5] Add movablecore_map boot option

From: Mel Gorman
Date: Thu Nov 29 2012 - 06:05:29 EST


On Thu, Nov 29, 2012 at 07:38:26PM +0900, Yasuaki Ishimatsu wrote:
> Hi Tony,
>
> 2012/11/29 6:34, Luck, Tony wrote:
> >>1. use firmware information
> >> According to ACPI spec 5.0, SRAT table has memory affinity structure
> >> and the structure has Hot Pluggable Filed. See "5.2.16.2 Memory
> >> Affinity Structure". If we use the information, we might be able to
> >> specify movable memory by firmware. For example, if Hot Pluggable
> >> Filed is enabled, Linux sets the memory as movable memory.
> >>
> >>2. use boot option
> >> This is our proposal. New boot option can specify memory range to use
> >> as movable memory.
> >
> >Isn't this just moving the work to the user? To pick good values for the
>
> Yes.
>
> >movable areas, they need to know how the memory lines up across
> >node boundaries ... because they need to make sure to allow some
> >non-movable memory allocations on each node so that the kernel can
> >take advantage of node locality.
>
> There is no problem.
> Linux has already two boot options, kernelcore= and movablecore=.
> So if we use them, non-movable memory is divided into each node evenly.
>

The motivation for those options was to reserve a percentage of memory
to be used for hugepage allocation. If hugepages were not being used at
a particular time then they could be used for other purposes. While the
system could in theory face lowmem/highmem style problems, in practice
it did not happen because the memory would be allocated as hugetlbfs
pages and unavailable anyway. The same does not really apply to a general
purpose system that you want to support memory hot-remove on so be wary of
lowmem/highmem style problems caused by relying too heavily on ZONE_MOVABLE.

--
Mel Gorman
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/