coreboot-kgpe-d16/payloads/libpayload/libc
Aaron Durbin 8bbd04ea8d libpayload: special case large memalign() requests
For memalign() requests the current allocator keeps metadata
about each chunk of aligned memory that copmrises the size
requested. For large allocations relative to the alignment
this can cause significant metadata overhead. Instead, consider
all memalign() requests whose size meets or exceeds 1KiB or
alignment that meets or exceeds 1KiB large requests.
These requests are handled specially to only allocate
the amount of memory required for the size and alignment
constraints by not allocating any metadata as the whole region
would be consumed by the request.

BUG=None
BRANCH=None
TEST=Built and tested various scenarios. Noted the ability to
     free() and properly coalesce the heap as expected.

Change-Id: Ia9cf5529ca859e490617af296cffd2705c2c6fd8
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 4e32fc57626dac6194c9fd0141df680b4a5417e8
Original-Change-Id: Icdf022831b733e3bb84a2d2f3b499f4e25d89128
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/242456
Original-Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: http://review.coreboot.org/8729
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2015-03-20 09:59:19 +01:00
..
args.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
console.c libpayload: Add ability to unregister output driver 2015-01-09 07:04:58 +01:00
ctype.c fix typo in ctype.c 2008-08-19 16:53:47 +00:00
die.c libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
exec.c libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
getopt_long.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
hexdump.c libpayload: hexdump: Use p as conversion specifier for pointers 2014-12-19 21:15:05 +01:00
ipchecksum.c trivial fix: ipchksum takes an unspecified input blob, not explicitly a number of shorts. 2008-08-16 15:16:36 +00:00
lar.c Refactor the endianness conversion functions and header files. 2012-11-08 19:49:51 +01:00
lib.c libpayload: Provide dummy getenv() 2011-07-20 10:02:19 +02:00
Makefile.inc libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
malloc.c libpayload: special case large memalign() requests 2015-03-20 09:59:19 +01:00
memory.c libpayload: Reorder default memcpy, speed up memset and memcmp 2015-01-09 07:08:43 +01:00
printf.c libpayload: fix printf handling of unsigned long long 2014-12-30 20:54:23 +01:00
qsort.c libpayload: Fix whitespace errors 2013-06-27 14:46:43 +02:00
rand.c Add rand/rand_r/srand functions for generating pseudo-random bytes. 2008-04-07 23:33:50 +00:00
readline.c Catch various cases in libpayload where malloc() or memalign() return NULL 2009-07-31 11:39:55 +00:00
string.c libpayload: Add strerror 2013-06-28 10:39:57 +02:00
strings.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
strlcpy.c libpayload: Implement strlcpy 2011-07-07 22:29:35 +02:00
sysinfo.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
time.c libpayload: improve us timer accuracy 2015-01-12 05:55:45 +01:00