Closed Bug 605516 (rm_DEBUGGER_tracker) Opened 14 years ago Closed 6 years ago

Remove DEBUGGER configuration

Categories

(Tamarin Graveyard :: Debugger, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX
Q1 12 - Brannan

People

(Reporter: edwsmith, Unassigned)

References

Details

(Whiteboard: Tracking)

To simplify the VM architecture and cut down build proliferation, lets remove the DEBUGGER switch.  Specifically, enable it all the time, like AIR.

This is a tracker for dependent work, discussion, etc.

If Flash does this too, great.  But even if not, the VM can run fine with debugger=null, as it does when debugging is disabled in avmshell and AIR.

Lets not do this blindly, there is a cost; lets measure the cost (static footprint, dynamic footprint, slowdown) and make informed changes.  Usually the #s will be fine, we just should have them as evidence.
I'm not ecstatic about this from the point of view of MMgc, because DEBUGGER builds have a lot of optional hook calls for memory profiling, these make allocation and deallocation paths longer even if the profiler is not enabled.  As the alloc/dealloc paths get shorter from other optimizations, and DEBUGGER becomes always enabled, those tests will tend to account for an ever greater fraction of the alloc/dealloc cost in production runs.  We may be able to finesse it in some other way so I don't think it's necessarily a showstopper, but it is a concern.
Whiteboard: Tracker
Depends on: 605697
Depends on: 558382
Whiteboard: Tracker → Tracking
Depends on: 619148
Depends on: 528797
Depends on: 640152
Alias: DEBUGGER_tracker
Flags: flashplayer-qrb+
Flags: flashplayer-injection-
Flags: flashplayer-bug-
Priority: -- → P2
Target Milestone: --- → Q3 11 - Serrano
Alias: DEBUGGER_tracker → rm_DEBUGGER_tracker
Depends on: 642584
Target Milestone: Q3 11 - Serrano → Q1 12 - Brannan
(In reply to comment #1)
> I'm not ecstatic about this from the point of view of MMgc, because DEBUGGER
> builds have a lot of optional hook calls for memory profiling, these make
> allocation and deallocation paths longer even if the profiler is not
> enabled.

It's actually much worse than that.

I have a working patch that moves hook calls off on a slow path if the hooks are enabled (so MMGC_HOOKS can always be compiled-in at effectively zero cost to production runs) but DEBUGGER also implies AVMPLUS_SAMPLER which (so far) implies slow paths through the allocator everywhere, to call sampleCheck before every allocation.  That is completely unaffordable, we want the common case allocation path to be 6-8 instructions (which is within reach with changes that are planned), not 60-80, which is probably closer to the truth when running Release-Debugger at present.

It should be possible to redistribute that problem in the same way I've done it for the hooks, it's just messy.
Depends on: 660800
Tamarin is a dead project now. Mass WONTFIX.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
You need to log in before you can comment on or make changes to this bug.