lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080521013735.559724194@saeurebad.de>
Date:	Wed, 21 May 2008 03:37:35 +0200
From:	Johannes Weiner <hannes@...urebad.de>
To:	linux-kernel@...r.kernel.org
CC:	Ingo Molnar <mingo@...e.hu>, Andi Kleen <andi@...stfloor.org>,
	Yinghai Lu <yhlu.kernel@...il.com>,
	Andrew Morton <akpm@...ux-foundation.org>
Subject: [RFC 0/3] bootmem rewrite

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(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ