Closed Bug 2061763 Opened 3 months ago Closed 3 months ago

Make the buffer allocator use a single set of available lists for nursery/tenured chunks

Categories

(Core :: JavaScript: GC, task, P3)

task

Tracking

()

RESOLVED FIXED
155 Branch
Tracking Status
firefox155 --- fixed

People

(Reporter: jonco, Assigned: jonco)

References

(Blocks 1 open bug)

Details

Attachments

(3 external files)

Currently there are separate sets of lists for available nursery and tenured chunks (available means they have free space but we aren't currently using them for allocation). These lists are populated with chunks that have been swept after minor and major GC. Since semispace nursery is not yet in use the available list for mixed chunks (those containing nursery allocations) will always be empty.

Since there is one list per size class and there are ~16 size classes this is a bit wasteful. This will also be more of a problem later if we want to add more size classes.

We can improve this by using a single list per size class and partitioning it so all mixed chunks come before any tenured chunks.

Not a functional change but renames the current lists (previously just
mixedChunks and tenuredChunks) to distinguish them from the available lists.

If semispace nursery is not in use then everything live is tenured by minor
collection and the available mixed chunks lists will always be empty.

This changes this implementation of the avilable lists to use a single list for
both mixed and tenured chunks, arranged so that all mixed chunks come before
any tenured chunks.

Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 155 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: