https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114563
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, I'd say for the sake of avoiding virtual memory fragmentation free_unit should be equal to GGC_QUIRE_SIZE. But we should possibly merge adjacent entries we don't free to power-of-two chunks and possibly have alloc_page split a larger page when the small ones are exhausted (at least up to GGC_QUIRE_SIZE?). I'll also note that while we chunk G.pagesize allocs with GGC_QUIRE_SIZE we don't do that for the larger allocations? We also immediately split to G.pagesize instead of also filling the larger orders with free pages. Maybe because we don't chunk the larger orders we shouldn't force them to be released in large chunks only either?