public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH -mm 00/14] bootmem rewrite v4
@ 2008-06-05 22:49 Johannes Weiner
  2008-06-05 22:49 ` [PATCH -mm 01/14] bootmem: reorder code to match new bootmem structure Johannes Weiner
                   ` (15 more replies)
  0 siblings, 16 replies; 24+ messages in thread
From: Johannes Weiner @ 2008-06-05 22:49 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Ingo Molnar, Yinghai Lu, Andi Kleen, Yasunori Goto, linux-kernel

Hi,

This is a complete overhaul of the bootmem allocator while preserving
most of its original functionality.

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.

version 4: based on -mmotm from 08-06-05
  o fixed fallback logic in alloc_bootmem_core (take the fallback even
    in cases where sidx is zero) to make Yasunori's machine boot again
  o fixed bogus range checks in ___alloc_bootmem_nopanic
  o removed bogus `fallback'-offset calculation in alloc_bootmem_core
  o renamed last_offset to last_end_off
  o renamed last_success to hint_idx
  o start searching after the end of the previous allocation, not at
    its beginning
  o improved more identifier names for offsets, pfns, indices and
    addresses
  o adjusted debugging output to output hex numbers consistently

version 3:
  o fixed kerneldoc as noted by Chris Malley
  o fixed incorrect bdata->last_success treatment as noted by
    Yasunori Goto

version 2:
  o broken up patches into logical chunks

---

 arch/alpha/mm/numa.c     |    2 +-
 arch/arm/plat-omap/fb.c  |    4 +-
 arch/avr32/mm/init.c     |    3 +-
 arch/ia64/mm/discontig.c |   19 +-
 arch/m32r/mm/discontig.c |    3 +-
 arch/m32r/mm/init.c      |    4 +-
 arch/mn10300/mm/init.c   |    6 +-
 arch/sh/mm/init.c        |    2 +-
 include/linux/bootmem.h  |   87 +++---
 mm/bootmem.c             |  934 +++++++++++++++++++++++++---------------------
 10 files changed, 570 insertions(+), 494 deletions(-)


^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH -mm 00/14] bootmem rewrite v3
@ 2008-06-03  0:50 Johannes Weiner
  2008-06-03  0:50 ` [PATCH -mm 02/14] bootmem: clean up bootmem.c file header Johannes Weiner
  0 siblings, 1 reply; 24+ messages in thread
From: Johannes Weiner @ 2008-06-03  0:50 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Ingo Molnar, Yinghai Lu, Andi Kleen, Yasunori Goto, linux-kernel

[ sorry, forgot lkml in CC and misspelled AKs email address (again).
  distracted by birds and such... ]

Hi,

here is the third version of the bootmem clean-up.

I fixed up the documentation mismatches in v2 reported by Chris Malley
and the incorrect bdata->last_success treatment as noticed by Yasunori
Goto (and me! :).

The patches are based on -mmotm and have been compile- and runtime
tested on a x86 32bit uma machine.

More changelog in the patches.

	Hannes


^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH -mm 00/14] bootmem rewrite v2
@ 2008-05-30 19:42 Johannes Weiner
  2008-05-30 19:42 ` [PATCH -mm 02/14] bootmem: clean up bootmem.c file header Johannes Weiner
  0 siblings, 1 reply; 24+ messages in thread
From: Johannes Weiner @ 2008-05-30 19:42 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Ingo Molnar, Yinghai Lu, Andi Kleen, linux-kernel, linux-mm

Hi Andrew,

to your request I broke up this big diff into more reviewable smaller
chunks.  They apply to -mmotm (modulo the conflicts I ran into, but
they seemed unrelated).

So, here is another version of my attempt to cleanly rewrite the
bootmem allocator.  More details in the respective patch changelogs.

Compile- and runtime tested on x86 32bit UMA.

	Hannes

 arch/alpha/mm/numa.c     |    2 +-
 arch/arm/plat-omap/fb.c  |    4 +-
 arch/avr32/mm/init.c     |    3 +-
 arch/ia64/mm/discontig.c |   19 +-
 arch/m32r/mm/discontig.c |    3 +-
 arch/m32r/mm/init.c      |    4 +-
 arch/mn10300/mm/init.c   |    6 +-
 arch/sh/mm/init.c        |    2 +-
 include/linux/bootmem.h  |   82 ++--
 mm/bootmem.c             |  918 +++++++++++++++++++++++++---------------------
 10 files changed, 552 insertions(+), 491 deletions(-)

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2008-06-26 18:57 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-05 22:49 [PATCH -mm 00/14] bootmem rewrite v4 Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 01/14] bootmem: reorder code to match new bootmem structure Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 02/14] bootmem: clean up bootmem.c file header Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 03/14] bootmem: add documentation to API functions Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 04/14] bootmem: add debugging framework Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 05/14] bootmem: revisit bitmap size calculations Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 06/14] bootmem: revisit bootmem descriptor list handling Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 07/14] bootmem: clean up free_all_bootmem_core Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 08/14] bootmem: clean up alloc_bootmem_core Johannes Weiner
2008-06-17  9:34   ` [PATCH] Fix new alloc_bootmem_core (Re: [PATCH -mm 08/14] bootmem: clean up alloc_bootmem_core) Yasunori Goto
2008-06-17 16:59     ` Johannes Weiner
2008-06-26 18:56     ` Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 09/14] bootmem: free/reserve helpers Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 10/14] bootmem: factor out the marking of a PFN range Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 11/14] bootmem: respect goal more likely Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 12/14] bootmem: Make __alloc_bootmem_low_node fall back to other nodes Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 13/14] bootmem: revisit alloc_bootmem_section Johannes Weiner
2008-06-05 22:49 ` [PATCH -mm 14/14] bootmem: replace node_boot_start in struct bootmem_data Johannes Weiner
2008-06-06  1:15 ` [PATCH -mm 00/14] bootmem rewrite v4 Yasunori Goto
2008-06-08 20:34 ` Andrew Morton
2008-06-08 21:52   ` Johannes Weiner
2008-06-08 23:32     ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2008-06-03  0:50 [PATCH -mm 00/14] bootmem rewrite v3 Johannes Weiner
2008-06-03  0:50 ` [PATCH -mm 02/14] bootmem: clean up bootmem.c file header Johannes Weiner
2008-05-30 19:42 [PATCH -mm 00/14] bootmem rewrite v2 Johannes Weiner
2008-05-30 19:42 ` [PATCH -mm 02/14] bootmem: clean up bootmem.c file header Johannes Weiner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox