Closed Bug 539401 Opened 15 years ago Closed 12 years ago

Is VMPI_getThreadStackBase necessary?

Categories

(Tamarin Graveyard :: Virtual Machine, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
Future

People

(Reporter: lhansen, Unassigned)

References

Details

Currently the VMPI_getThreadStackBase API is used by the GC, but there's evidence that the GC does not need to use it: the stack base address can be - and is - computed more portably by the MMGC_ENTER macro, and proper use of the MMGC_ENTER macro implies that the case where VMPI_getThreadStackBase is used won't ever be hit. See discussion in bug #506013. The API is also used once by the Flash Player, on Windows, for some performance/profiling code. But if the VM does not need the API we probably should not be maintaining it.
Obsolete?
Assignee: nobody → lhansen
Flags: flashplayer-qrb+
(In reply to comment #1) > Obsolete? Not obviously, but also not urgent.
Assignee: lhansen → nobody
(In reply to Lars T Hansen from comment #0) > Currently the VMPI_getThreadStackBase API is used by the GC, but there's > evidence that the GC does not need to use it: the stack base address can be > - and is - computed more portably by the MMGC_ENTER macro, and proper use of > the MMGC_ENTER macro implies that the case where VMPI_getThreadStackBase is > used won't ever be hit. See discussion in bug #506013. The MMGC_ENTER macro does not appear to be robust. See Bug 754281. Here's what I don't understand: Tommy's description of the problem from Bug 506013, comment 2, it certainly seems like *he* was saying that MMGC_GCENTER is not generally robust (unless you ensure that you use MMGC_GCENTER somewhere in the calling context of the frame that starts introducing GCRef's). They both seem like they got pretty confused, from looking at the discussion on Bug 506013, with Tommy eventually suggesting that we could drop VMPI_getThreadStackBase since it is already handled by MMGC_GCENTER, but the original point of the bug was that MMGC_GCENTER was *not* robust and thus one needed a more fundamental primitive (such as VMPI_getThreadStackBase).
I'm closing this ticket; sadly, AVMPI_getThreadStackBase is necessary unless we come up with a robust protocol for establishing an sound stackEnter (see Bug 754281).
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Resolution: FIXED → WONTFIX
You need to log in before you can comment on or make changes to this bug.