public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@saeurebad.de>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>, Andi Kleen <andi@firstfloor.org>,
	Yinghai Lu <yhlu.kernel@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [RFC 0/3] bootmem rewrite
Date: Wed, 21 May 2008 03:37:35 +0200	[thread overview]
Message-ID: <20080521013735.559724194@saeurebad.de> (raw)

Hi,

This is a complete overhaul of the bootmem allocator while preserving
its original functionality, excluding bugs.

free_bootmem and reserve_bootmem become a bit stricter than they are
right now, callsites have to make sure that the PFN range is
contiguous but it might go across node boundaries.

alloc_bootmem satisfying the allocation goal is more likely as the
routines will try to allocate on the node holding the goal first
before falling back as opposed to the original behaviour that
satisfies the goal only if it is on the first node.

All in all, I think the code has become simpler and cleaner.  All
public interfaces have been documented, too.

The first patch moves the bootmem node descriptor definitions into
bootmem.c where they belong.

The second patch is the new allocator itself.

The third patch converts all users of ->node_boot_start to
->node_min_pfn as this is what they really use.  It then removes the
unused ->node_boot_start.

Compile and runtime tested on X86_32, therefor RFC only.

 arch/alpha/mm/numa.c             |    8 +-
 arch/arm/mm/discontig.c          |   34 +-
 arch/arm/plat-omap/fb.c          |    4 +-
 arch/avr32/mm/init.c             |    3 +-
 arch/ia64/mm/discontig.c         |   30 +-
 arch/m32r/mm/discontig.c         |    4 +-
 arch/m32r/mm/init.c              |    4 +-
 arch/m68k/mm/init.c              |    4 +-
 arch/mips/sgi-ip27/ip27-memory.c |    3 +-
 arch/mn10300/mm/init.c           |    6 +-
 arch/parisc/mm/init.c            |    3 +-
 arch/powerpc/mm/numa.c           |    3 +-
 arch/sh/mm/init.c                |    2 +-
 arch/sh/mm/numa.c                |    5 +-
 arch/sparc64/mm/init.c           |    3 +-
 arch/x86/mm/discontig_32.c       |    3 +-
 arch/x86/mm/numa_64.c            |    6 +-
 include/linux/bootmem.h          |  115 ++---
 mm/bootmem.c                     |  914 +++++++++++++++++++-------------------
 mm/page_alloc.c                  |    4 +-
 20 files changed, 560 insertions(+), 598 deletions(-)


             reply	other threads:[~2008-05-21  2:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-21  1:37 Johannes Weiner [this message]
2008-05-21  1:37 ` [RFC 1/3] mm: Move bootmem descriptors to a single place Johannes Weiner
2008-05-21  1:37 ` [RFC 2/3] mm: Reimplement bootmem Johannes Weiner
2008-05-21  1:37 ` [RFC 3/3] mm: Remove node_boot_start from bootmem_data_t Johannes Weiner
2008-05-21 23:57 ` [RFC 0/3] bootmem rewrite Andrew Morton
2008-05-22  0:33   ` Johannes Weiner
2008-05-22  1:10     ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080521013735.559724194@saeurebad.de \
    --to=hannes@saeurebad.de \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=yhlu.kernel@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox