kernel_optimize_test/arch/x86
Jeremy Fitzhardinge 796216a57f x86: allow extend_brk users to reserve brk space
Impact: new interface; remove hard-coded limit

Add RESERVE_BRK(name, size) macro to reserve space in the brk
area.  This should be a conservative (ie, larger) estimate of
how much space might possibly be required from the brk area.
Any unused space will be freed, so there's no real downside
on making the reservation too large (within limits).

The name should be unique within a given file, and somewhat
descriptive.

The C definition of RESERVE_BRK() ends up being more complex than
one would expect to work around a cluster of gcc infelicities:

  The first attempt was to simply try putting __section(.brk_reservation)
  on a variable.  This doesn't work because it ends up making it a
  @progbits section, which gets actual space allocated in the vmlinux
  executable.

  The second attempt was to emit the space into a section using asm,
  but gcc doesn't allow arguments to be passed to file-level asm()
  statements, making it hard to pass in the size.

  The final attempt is to wrap the asm() in a function to allow
  it to have arguments, and put the function itself into the
  .discard section, which vmlinux*.lds drops entirely from the
  emitted vmlinux.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-03-14 17:23:47 -07:00
..
boot
configs
crypto
ia32
include/asm x86: allow extend_brk users to reserve brk space 2009-03-14 17:23:47 -07:00
kernel x86: allow extend_brk users to reserve brk space 2009-03-14 17:23:47 -07:00
kvm
lguest x86-32: use brk segment for allocating initial kernel pagetable 2009-03-14 17:23:47 -07:00
lib
math-emu
mm x86: add brk allocation for very, very early allocations 2009-03-14 15:37:14 -07:00
oprofile
pci
power
vdso
video
xen x86: add brk allocation for very, very early allocations 2009-03-14 15:37:14 -07:00
Kconfig
Kconfig.cpu
Kconfig.debug
Makefile
Makefile_32.cpu