Open Bug 1500898 Opened 6 years ago Updated 2 years ago

Free LifoAlloc oversize list.

Categories

(Core :: JavaScript Engine, enhancement, P2)

enhancement

Tracking

()

People

(Reporter: nbp, Unassigned)

References

Details

(Whiteboard: [overhead])

Bug 1489572 is splitting the LifoAlloc chunks into 2 lists of allocations, one for small allocations, and one for large allocations.

The idea here is that large allocations, are likely to be used by data-structure which are resizable, and as such are likely to be freed and reallocated, increasing the amount of memory wasted in LifoAlloc chunks.

The idea is to proceed in multiple steps:
  1. When any LifoAlloc content is freed, small or large, we should poison the memory, such that ASan can generate reports.
  2. Actually removing the chunks if these are corresponding to any oversize allocation.

Next to this issue, we should ensure we are actually freeing data such as the TypedHashSet, and balancing properly mark() and release() calls, to avoid keeping data around for no reasons.  However, I would not that even if the mark() and release() calls are not properly balanced, they are not miss-ordered, based on Bug 1489572 assertion in LifoAlloc::release function.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.