Open
Bug 1015323
Opened 11 years ago
Updated 2 years ago
IonMonkey bailouts should forward bailout reason string to bailout handler
Categories
(Core :: JavaScript Engine: JIT, defect)
Tracking
()
NEW
People
(Reporter: djvj, Unassigned)
References
(Blocks 1 open bug)
Details
Currently when we bail out, we blindly resume at the last valid resume point. The bailout handler can report which resume point its resuming from, but this does not convey the actual location where the bailout was triggered, which may occur after the resume point. Also, any concrete reason for the bailout, including the operation and the exceptional condition, is lost by the time the bailout handler is reached.
We should modify our bailout jumps to store some infoj to a global address before jumping to the bailout handler, which the handler can then use to print more detailed information on the cause of the bailout.
Comment 1•11 years ago
|
||
(In reply to Kannan Vijayan [:djvj] from comment #0)
> We should modify our bailout jumps to store some infoj to a global address
> before jumping to the bailout handler, which the handler can then use to
> print more detailed information on the cause of the bailout.
Currently the easiest place for storing location/reasons is inside the snapshots. But doing so has the disadvantage that we might not be able to distinguish the reasons without having multiple snapshots.
Another way is to modify visitOutOfLineBailout, such as we pack an extra byte with the snapshot offset, which would be used to index reasons (of the instruction referred by the snapshots). But this cause another problem on platforms such as MIPS, which is using bailoutFrom a lot as a way to save space in the generated code (as absolute address jumps are large), also, these bailoutFrom might have more than one reasons (to be verified case by case). So we might have to split the bailoutFrom to have one for each reason, or best, make sure this is done automagically.
Note, that adding any additional instruction to visitOutOfLineBailout will change the logic that we used so far for packing the bailout with the known frameSize.
Comment 2•8 years ago
|
||
Oh, is this why I am unable to match bailouts to their scripts? I have been looking at profiler data, specifically when a script bounces between Ion and baseline, and trying to correlate that with the bailouts that cause ion -> baseline transitions. But the scripts are not matching up. From this bug, it sounds like that might be because we are only recording the script we are bailing out *to*, but not *from*?
Blocks: 761253
Comment 3•8 years ago
|
||
Never mind, ignore me, I was reading way too much into that. It's still an open question why my bailouts don't match up, but it's unrelated to this bug.
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•