Closed
Bug 981554
Opened 12 years ago
Closed 12 years ago
Move allocator for optimized Baseline stubs from JitCompartment to JitZone
Categories
(Core :: JavaScript Engine: JIT, defect)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
FIXED
mozilla30
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(1 file)
|
21.20 KB,
patch
|
n.nethercote
:
review+
|
Details | Diff | Splinter Review |
Every compartment with Baseline code has a LifoAlloc (with 4K default chunk size) for optimized stubs.
Although this allocator is purged on every code-discarding-GC, it'd be nice to move it from compartment to zone (as every allocator will have a chunk with some unused space, and there's also the size of the LifoAlloc itself).
| Assignee | ||
Comment 1•12 years ago
|
||
This patch adds JitZone (like JitCompartment and JitRuntime), and moves the allocator to it.
~AutoDebugModeInvalidation only discards JIT code for some compartments, so we can no longer free the LifoAlloc there, but that should be okay as long as Zone::discardJitCode does this.
There's probably more stuff in JitCompartment that we can move to JitZone; I'll look into it.
Attachment #8388474 -
Flags: review?(n.nethercote)
Comment 2•12 years ago
|
||
Comment on attachment 8388474 [details] [diff] [review]
Patch
Review of attachment 8388474 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good.
::: js/src/gc/Zone.h
@@ +18,5 @@
>
> namespace js {
>
> +namespace jit {
> + class JitZone;
Nit: I think we usually don't indent this case.
::: js/xpconnect/src/XPCJSRuntime.cpp
@@ +2076,5 @@
> ZCREPORT_BYTES(cJSPathPrefix + NS_LITERAL_CSTRING("baseline/data"),
> cStats.baselineData,
> "The Baseline JIT's compilation data (BaselineScripts).");
>
> + ZCREPORT_BYTES(cJSPathPrefix + NS_LITERAL_CSTRING("baseline/fallback-stubs"),
Is there a reason you moved the optimized stubs but kept the fallback stubs?
Attachment #8388474 -
Flags: review?(n.nethercote) → review+
| Assignee | ||
Comment 3•12 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/4197edad59d6
(In reply to Nicholas Nethercote [:njn] from comment #2)
> Is there a reason you moved the optimized stubs but kept the fallback stubs?
The fallback stubs are allocated per BaselineScript, so we can't move them as easily.
We could add a per-Zone allocator for them (would be more memory-efficient), but then we can only purge it when there's no Baseline code for this Zone on the stack, so I'm not sure if that's better.
| Assignee | ||
Comment 4•12 years ago
|
||
Oh and this was green on Linux x64 a few days ago:
https://tbpl.mozilla.org/?tree=Try&rev=7b3254153f6e
Comment 5•12 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
You need to log in
before you can comment on or make changes to this bug.
Description
•