-
Notifications
You must be signed in to change notification settings - Fork 721
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FFI] Remove PUSH_OBJECT_IN_SPECIAL_FRAME in the upcall dispatcher #16427
[FFI] Remove PUSH_OBJECT_IN_SPECIAL_FRAME in the upcall dispatcher #16427
Conversation
As explained at #16410 (comment), To avoid any unexpected behavior with GC, we simly store the allocated struct/pointer objects to a java array (already created in java code in advance) instead and load them to the java stack prior to upcall. The changes were verified on all supported platforms. Reviewer: @gacholio, @tajila |
a2794b5
to
092faff
Compare
9f0aad6
to
1836872
Compare
d4e7895
to
eafaa74
Compare
A session specific test failure was detected in one of Jtreg test suites. I will need to double-check the code to see whether something was modified incorrectly for the session.
|
I went through the code with session in the PR and didn't find anything incorrect in dealing with session. The reason for the failing test
in which case exceeding the max time leads to failure. That being said, the explicit GC calls (especially the global GC) delayed the normal execution of test case (and also disturbed other time -sensitive tests). So these tests passed by simply disabling the global GC call; otherwise, I didn't spot anything wrong/abnormal in tests in terms of stack walker due to the explicit GC calls except that it took much longer in execution. |
The idea is to store the argument objects in native to the java array rather to avoid misusing PUSH_OBJECT_IN_SPECIAL_FRAME so as to stop GC from updating the references before calling into the interpreter in upcall. Fixes: eclipse-openj9#16410, eclipse-openj9#16422 Signed-off-by: ChengJin01 <jincheng@ca.ibm.com>
eafaa74
to
d620448
Compare
jenkins test sanity zlinux jdk19 |
The idea is to store the argument objects in native to the java array rather to avoid
misusing PUSH_OBJECT_IN_SPECIAL_FRAME so as to stop GC from updating the
references before calling into the interpreter in upcall.
Fixes: #16410, #16422
Signed-off-by: ChengJin01 jincheng@ca.ibm.com