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-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html