Closed Bug 1555558 Opened 8 months ago Closed 8 months ago

Don't collect the nursery for finalize and decommit slices

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox69 --- fixed

People

(Reporter: pbone, Assigned: pbone)

Details

Attachments

(1 file)

See Bug 1555199 Comment 3, sfink raises the question that collecting the nursery probably isn't needed here.

Type: defect → enhancement
Priority: -- → P1
Pushed by pbone@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e0f0a7707eb3
Don't collect the nursery for finalise or decommit slices r=sfink

Backed out changeset e0f0a7707eb3 (bug 1555558) for spidermonkey bustage at builds/worker/workspace/build/src/js/src/gc/GC.cpp

Backout: https://hg.mozilla.org/integration/autoland/rev/fe21b958c55db9c5f6adfcf3ce96b732649a246e

Failure push: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=249284357&revision=e0f0a7707eb3a88805fe8769967aae7c51837249

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=249284357&repo=autoland&lineNumber=4710

task 2019-05-31T01:03:43.165Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug907085.js | Success (code 0, args "--no-asmjs") [0.3 s]
[task 2019-05-31T01:03:43.196Z] Assertion failure: nursery().isEmpty(), at /builds/worker/workspace/build/src/js/src/gc/GC.cpp:7286
[task 2019-05-31T01:03:43.196Z] Exit code: -11
[task 2019-05-31T01:03:43.196Z] FAIL - asm.js/testBug1437546.js
[task 2019-05-31T01:03:43.196Z] TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testBug1437546.js | Assertion failure: nursery().isEmpty(), at /builds/worker/workspace/build/src/js/src/gc/GC.cpp:7286 (code -11, args "--no-asmjs") [1.5 s]
[task 2019-05-31T01:03:43.197Z] INFO exit-status : -11
[task 2019-05-31T01:03:43.197Z] INFO timed-out : False
[task 2019-05-31T01:03:43.197Z] INFO stderr 2> Assertion failure: nursery().isEmpty(), at /builds/worker/workspace/build/src/js/src/gc/GC.cpp:7286
[task 2019-05-31T01:03:43.202Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug952022.js | Success (code 0, args "") [0.3 s]
[task 2019-05-31T01:03:43.205Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug907085.js | Success (code 0, args "--baseline-eager") [0.3 s]
[task 2019-05-31T01:03:43.285Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug952022.js | Success (code 0, args "--baseline-eager") [0.3 s]
[task 2019-05-31T01:03:43.328Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug952022.js | Success (code 0, args "--no-asmjs") [0.3 s]
[task 2019-05-31T01:03:43.357Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug952022.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.4 s]
[task 2019-05-31T01:03:43.425Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug965767.js | Success (code 0, args "--no-asmjs") [0.3 s]
[task 2019-05-31T01:03:43.469Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug989166.js | Success (code 0, args "") [0.3 s]
[task 2019-05-31T01:03:43.512Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug989166.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.3 s]
[task 2019-05-31T01:03:43.579Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug989166.js | Success (code 0, args "--no-asmjs") [0.3 s]
[task 2019-05-31T01:03:43.594Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug975182.js | Success (code 0, args "--no-asmjs") [0.4 s]
[task 2019-05-31T01:03:43.631Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug965767.js | Success (code 0, args "") [0.6 s]
[task 2019-05-31T01:03:43.637Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug989166.js | Success (code 0, args "--baseline-eager") [0.4 s]
[task 2019-05-31T01:03:43.666Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug965767.js | Success (code 0, args "--baseline-eager") [0.6 s]
[task 2019-05-31T01:03:43.683Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug999790.js | Success (code 0, args "") [0.3 s]
[task 2019-05-31T01:03:43.750Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug999790.js | Success (code 0, args "--no-asmjs") [0.2 s]
[task 2019-05-31T01:03:43.759Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug965767.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.7 s]
[task 2019-05-31T01:03:43.765Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug999790.js | Success (code 0, args "--baseline-eager") [0.3 s]
[task 2019-05-31T01:03:43.814Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug999790.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.4 s]
[task 2019-05-31T01:03:43.862Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug975182.js | Success (code 0, args "") [0.7 s]
[task 2019-05-31T01:03:43.897Z] TEST-PASS | js/src/jit-test/tests/asm.js/testBug975182.js | Success (code 0, args "--baseline-eager") [0.7 s]
[task 2019-05-31T01:03:43.908Z] Assertion failure: nursery().isEmpty(), at /builds/worker/workspace/build/src/js/src/gc/GC.cpp:7286
[task 2019-05-31T01:03:43.909Z] Exit code: -11
[task 2019-05-31T01:03:43.909Z] FAIL - asm.js/testBug1437546.js
[task 2019-05-31T01:03:43.909Z] TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testBug1437546.js | Assertion failure: nursery().isEmpty(), at /builds/worker/workspace/build/src/js/src/gc/GC.cpp:7286 (code -11, args "") [2.3 s]
[task 2019-05-31T01:03:43.909Z] INFO exit-status : -11
[task 2019-05-31T01:03:43.909Z] INFO timed-out : False
[task 2019-05-31T01:03:43.909Z] INFO stderr 2> Assertion failure: nursery().isEmpty(), at /builds/worker/workspace/build/src/js/src/gc/GC.cpp:7286

Flags: needinfo?(pbone)

Found the problem, thanks.

Flags: needinfo?(pbone)
Pushed by pbone@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1bd9072aad08
Don't collect the nursery for finalise or decommit slices r=sfink
Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69

Mainly at that extreme end. I don't see much of a difference in the other aggregates, only the 95% one.

It'd be nicer if it didn't impact memory usage, but it makes sense that it would and I'm not worried. What's surprising is that it affects that 95-percentile but not other aggregates.

(In reply to Paul Bone [:pbone] from comment #8)
I think this is a good thing. We're not collecting the so often nursery before it grows to its maximum size. It makes sense that it would only affect a small fraction of cases because choosing a large maximum size doesn't happen that often.

You need to log in before you can comment on or make changes to this bug.