memory hotplug: allocate usemap on the section with pgdat
Usemaps are allocated on the section which has pgdat by this.
Because usemap size is very small, many other sections usemaps are
allocated on only one page. If a section has usemap, it can't be removed
until removing other sections. This dependency is not desirable for
memory removing.
Pgdat has similar feature. When a section has pgdat area, it must be the
last section for removing on the node. So, if section A has pgdat and
section B has usemap for section A, Both sections can't be removed due to
dependency each other.
To solve this issue, this patch collects usemap on same section with pgdat
as much as possible. If other sections doesn't have any dependency, this
section will be able to be removed finally.
Signed-off-by: Yasunori Goto <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Andy Whitcroft <[email protected]>
Cc: David Miller <[email protected]>
Cc: Badari Pulavarty <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Hiroyuki KAMEZAWA <[email protected]>
Cc: Tony Breeds <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>