Shenandoah +ExtendedDTraceProbes crash
Zhengyu Gu
zgu at redhat.com
Mon Mar 12 13:30:02 UTC 2018
I have been tracking down the crash for a few days now, I think I found
the problem, but have no clue how to fix it.
It looks like register rdi was messed up:
https://paste.fedoraproject.org/paste/S3VrZ2oma2Kkyxah2NEpfQ
L#218 overwrites rdi = 0x10, if next cmp takes branch to L#235,
it tries to save rdi to its original slot (which is
ConcurrentHashTable's table field), for making call to
runtime::dtrace_method_exit().
The crash will occur after that, when applying RB on table field at next
load.
The corresponding LIR:
https://paste.fedoraproject.org/paste/xDfdMGgCkbS0OZUqIBbFEQ
L#310526 is where rdi was overwritten for making runtime call, C1 seems
to generate code to save rdi here ...
Compiler still beyond me, can some one take a look?
Thanks,
-Zhengyu
More information about the shenandoah-dev
mailing list