Closed Bug 1562550 Opened 5 months ago Closed 5 months ago

Be more mindful of how much memory we touch during nursery poisoning.

Categories

(Core :: JavaScript: GC, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox70 --- fixed

People

(Reporter: pbone, Assigned: pbone)

References

(Blocks 2 open bugs)

Details

(Keywords: memory-footprint, perf)

Attachments

(5 files, 1 obsolete file)

When the nursery is initalised we poison the entire nursery chunk with the initalisation pattern. Although poisoning is only used during testing and on Nightly, this will affect the memory usage telemetry we're seeing from Nightly. Let's avoid touching that memory so we get telemetry that represents better what we'll achieve in release.

See Also: → 1562551
Summary: Don't poisoning the entire nursery chunk when we know we'll only use part of it → Don't poison the entire nursery chunk when we know we'll only use part of it
Duplicate of this bug: 1562551

I've made Bug 1562551 a duplicate and will also fix another case of over-poisoning with this bug.

Depends on: 1506733
Summary: Don't poison the entire nursery chunk when we know we'll only use part of it → Be more mindful of how much memory we touch during nursery poisoning.

This poisoning happens eventually when the chunk is decommitted, but it's
important to do it synchronously to catch more bugs. Unlike the other
patches on this bug this one increases the amount of poisoning done.

Depends on D36876

Blocks: MinGCMem, 1550382

When we shrink the nursery below one chunk, poison and mark as inaccessible
the now unused part of that chunk.

This is the only patch in this patch series that adds extra memory poisoning.

Depends on D36876

Attachment #9075892 - Attachment is obsolete: true
Attachment #9076700 - Attachment description: Bug 1562550 - (part 5) We don't need to poison the start chunk here r=jonco → Bug 1562550 - (part 4) We don't need to poison the start chunk here r=jonco
Attachment #9075893 - Attachment description: Bug 1562550 - (part 4) Avoid unnecessary poisoning between GCs r=jonco → Bug 1562550 - (part 5) Avoid unnecessary poisoning between GCs r=jonco
Pushed by pbone@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9c274e3d473b
(part 1) Add a poisonRange method to NurseryChunk r=jonco
https://hg.mozilla.org/integration/autoland/rev/111838e2b22f
(part 2) Don't poison memory unnecessarily during Nursery::init r=jonco
https://hg.mozilla.org/integration/autoland/rev/0e662f79db6c
(part 3) Poison unused memory when we shrink the nursery r=jonco
https://hg.mozilla.org/integration/autoland/rev/89feefb6541e
(part 4) We don't need to poison the start chunk here r=jonco
https://hg.mozilla.org/integration/autoland/rev/6cc26a5b9fe2
(part 5) Avoid unnecessary poisoning between GCs r=jonco
You need to log in before you can comment on or make changes to this bug.