The original goal of this patchset is to fix the bug reported by
https://bugzilla.kernel.org/show_bug.cgi?id=53501
Now it has also been expanded to reduce common code used by memory
initializion. In total it has reduced about 550 lines of code.
Patch 1:
Extract common help functions from free_init_mem() and
free_initrd_mem() on different architectures.
Patch 2-27:
Use help functions to simplify free_init_mem() and
free_initrd_mem() on different architectures. This has reduced
about 500 lines of code.
Patch 28:
Introduce common help function to free highmem pages when
initializing memory subsystem.
Patch 29-32:
Adjust totalhigh_pages, totalram_pages and zone->managed_pages
altogether when reserving/unreserving pages.
Patch 33:
Change /sys/.../node/nodex/meminfo to report available pages
within the node as "MemTotal".
We have only tested these patchset on x86 platforms, and have done basic
compliation tests using cross-compilers from ftp.kernel.org. That means
some code may not pass compilation on some architectures. So any help
to test this patchset are welcomed!
Jiang Liu (33):
mm: introduce common help functions to deal with reserved/managed
pages
mm/alpha: use common help functions to free reserved pages
mm/ARM: use common help functions to free reserved pages
mm/avr32: use common help functions to free reserved pages
mm/blackfin: use common help functions to free reserved pages
mm/c6x: use common help functions to free reserved pages
mm/cris: use common help functions to free reserved pages
mm/FRV: use common help functions to free reserved pages
mm/h8300: use common help functions to free reserved pages
mm/IA64: use common help functions to free reserved pages
mm/m32r: use common help functions to free reserved pages
mm/m68k: use common help functions to free reserved pages
mm/microblaze: use common help functions to free reserved pages
mm/MIPS: use common help functions to free reserved pages
mm/mn10300: use common help functions to free reserved pages
mm/openrisc: use common help functions to free reserved pages
mm/parisc: use common help functions to free reserved pages
mm/ppc: use common help functions to free reserved pages
mm/s390: use common help functions to free reserved pages
mm/score: use common help functions to free reserved pages
mm/SH: use common help functions to free reserved pages
mm/SPARC: use common help functions to free reserved pages
mm/um: use common help functions to free reserved pages
mm/unicore32: use common help functions to free reserved pages
mm/x86: use common help functions to free reserved pages
mm/xtensa: use common help functions to free reserved pages
mm,kexec: use common help functions to free reserved pages
mm: introduce free_highmem_page() helper to free highmem pages inti
buddy system
mm: accurately calculate zone->managed_pages for highmem zones
mm: use a dedicated lock to protect totalram_pages and
zone->managed_pages
mm: avoid using __free_pages_bootmem() at runtime
mm: correctly update zone->mamaged_pages
mm: report available pages as "MemTotal" for each NUMA node
arch/alpha/kernel/sys_nautilus.c | 5 +-
arch/alpha/mm/init.c | 24 ++-------
arch/alpha/mm/numa.c | 3 +-
arch/arm/mm/init.c | 46 ++++++-----------
arch/arm64/mm/init.c | 26 +---------
arch/avr32/mm/init.c | 24 +--------
arch/blackfin/mm/init.c | 20 +-------
arch/c6x/mm/init.c | 30 +----------
arch/cris/mm/init.c | 16 +-----
arch/frv/mm/init.c | 32 ++----------
arch/h8300/mm/init.c | 28 +----------
arch/ia64/mm/init.c | 23 ++-------
arch/m32r/mm/init.c | 26 ++--------
arch/m68k/mm/init.c | 24 +--------
arch/microblaze/include/asm/setup.h | 1 -
arch/microblaze/mm/init.c | 33 ++----------
arch/mips/mm/init.c | 36 ++++----------
arch/mips/sgi-ip27/ip27-memory.c | 4 +-
arch/mn10300/mm/init.c | 23 +--------
arch/openrisc/mm/init.c | 27 ++--------
arch/parisc/mm/init.c | 24 ++-------
arch/powerpc/kernel/crash_dump.c | 5 +-
arch/powerpc/kernel/fadump.c | 5 +-
arch/powerpc/kernel/kvm.c | 7 +--
arch/powerpc/mm/mem.c | 34 ++-----------
arch/powerpc/platforms/512x/mpc512x_shared.c | 5 +-
arch/s390/mm/init.c | 35 +++----------
arch/score/mm/init.c | 33 ++----------
arch/sh/mm/init.c | 26 ++--------
arch/sparc/kernel/leon_smp.c | 15 ++----
arch/sparc/mm/init_32.c | 50 +++----------------
arch/sparc/mm/init_64.c | 25 ++--------
arch/tile/mm/init.c | 4 +-
arch/um/kernel/mem.c | 25 ++--------
arch/unicore32/mm/init.c | 26 +---------
arch/x86/mm/init.c | 5 +-
arch/x86/mm/init_32.c | 10 +---
arch/x86/mm/init_64.c | 18 +------
arch/xtensa/mm/init.c | 21 ++------
drivers/virtio/virtio_balloon.c | 8 +--
drivers/xen/balloon.c | 19 ++-----
include/linux/mm.h | 36 ++++++++++++++
include/linux/mmzone.h | 14 ++++--
kernel/kexec.c | 8 +--
mm/bootmem.c | 16 ++----
mm/hugetlb.c | 2 +-
mm/memory_hotplug.c | 31 ++----------
mm/nobootmem.c | 14 ++----
mm/page_alloc.c | 69 ++++++++++++++++++++++----
49 files changed, 248 insertions(+), 793 deletions(-)
--
1.7.9.5
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization