alistair23-linux/arch
Jiang Liu 7b4b2a0d6c mm: accurately calculate zone->managed_pages for highmem zones
Commit "mm: introduce new field 'managed_pages' to struct zone" assumes
that all highmem pages will be freed into the buddy system by function
mem_init().  But that's not always true, some architectures may reserve
some highmem pages during boot.  For example PPC may allocate highmem
pages for giagant HugeTLB pages, and several architectures have code to
check PageReserved flag to exclude highmem pages allocated during boot
when freeing highmem pages into the buddy system.

So treat highmem pages in the same way as normal pages, that is to:
1) reset zone->managed_pages to zero in mem_init().
2) recalculate managed_pages when freeing pages into the buddy system.

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Joonsoo Kim <js1304@gmail.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: <sworddragon2@aol.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Jianguo Wu <wujianguo@huawei.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Michel Lespinasse <walken@google.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Tang Chen <tangchen@cn.fujitsu.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Wen Congyang <wency@cn.fujitsu.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-07-03 16:07:33 -07:00
..
alpha mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
arc mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
arm mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
arm64 mm/ARM64: kill poison_init_mem() 2013-07-03 16:07:32 -07:00
avr32 mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
blackfin mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
c6x mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
cris mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
frv mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
h8300 mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
hexagon consolidate io_remap_pfn_range definitions 2013-06-29 12:46:35 +04:00
ia64 mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
m32r mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
m68k mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
metag mm: accurately calculate zone->managed_pages for highmem zones 2013-07-03 16:07:33 -07:00
microblaze mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
mips mm: change signature of free_reserved_area() to fix building warnings 2013-07-03 16:07:32 -07:00
mn10300 mm: change signature of free_reserved_area() to fix building warnings 2013-07-03 16:07:32 -07:00
openrisc mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
parisc mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
powerpc mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
s390 mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
score mm: change signature of free_reserved_area() to fix building warnings 2013-07-03 16:07:32 -07:00
sh mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
sparc mm: change signature of free_reserved_area() to fix building warnings 2013-07-03 16:07:32 -07:00
tile mm/tile: use common help functions to free reserved pages 2013-07-03 16:07:33 -07:00
um mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
unicore32 mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
x86 mm: accurately calculate zone->managed_pages for highmem zones 2013-07-03 16:07:33 -07:00
xtensa mm: enhance free_reserved_area() to support poisoning memory with zero 2013-07-03 16:07:32 -07:00
.gitignore
Kconfig mm: soft-dirty bits for user memory changes tracking 2013-07-03 16:07:26 -07:00