Reduce fragmentation from m32_allocator
authorBartosz Nitka <niteria@gmail.com>
Sun, 6 Mar 2016 21:18:12 +0000 (13:18 -0800)
committerBartosz Nitka <niteria@gmail.com>
Mon, 7 Mar 2016 22:19:12 +0000 (14:19 -0800)
commit82e36edcbd831e9b7c05e1c2cb918ad5de56cd3a
treecb7465a1c024882f46ea57d816ae756d140e6d41
parent13a801af10289e0931532f7df4a6814b058389f3
Reduce fragmentation from m32_allocator

This patch brings in two improvements:
a) m32_allocator will now reuse the pages that are no longer
used by anyone else.
b) m32_allocator will preallocate the "filling" area,
so that the pages it allocates end up as a big chunk
instead of being allocated on demand in random places,
fragmenting the precious lower 2G address space.

Test Plan: testsuite - 3 tests failing with substTy asserts

Reviewers: ezyang, austin, bgamari, erikd, hsyl20, simonmar

Reviewed By: hsyl20, simonmar

Subscribers: hvr, thomie

Differential Revision: https://phabricator.haskell.org/D1976
rts/Linker.c