-
Notifications
You must be signed in to change notification settings - Fork 736
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
ScopedMemoryAccess closeScope0 synchronization #19412
Conversation
53bb636
to
f65a081
Compare
jenkins test sanity plinux jdk22 |
jenkins test sanity alinux jdk21 |
The use of atomics seems unnecessary here, as you have a mutex. I'd also make the counter UDATA instead of U_64 (even though that makes no practical difference in this JDK level). |
There are gaps where async exceptions are not processed in time (e.g. JIT compiled code in a loop). Threads will wait in closeScope0 until J9VMThread->scopedError (async exception) is transferred to J9VMThread->currentException. The wait prevents a MemorySession to be closed until no more operations are being performed on it. Related: eclipse-openj9#13211 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
@gacholio Updated.
|
I'm also wondering how this global counter will work with multiple concurrent scope closures - we probably need to associate the count with the scope, either via internal hash table, or by adding a hidden field to the scope object. |
|
jenkins test sanity plinux jdk22 |
jenkins test sanity alinux jdk21 |
Does this mean the native can be invoked on multiple threads (say each thread has its own session)? |
Nevermind, I see you've answered this. |
PPC is down - this has been sufficiently tested. |
TestHandshake has been fixed by - eclipse-openj9/openj9#19167 - eclipse-openj9/openj9#19412 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
TestHandshake has been fixed by - eclipse-openj9/openj9#19167 - eclipse-openj9/openj9#19412 Related: eclipse-openj9/openj9#13211 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
TestHandshake has been fixed by - eclipse-openj9/openj9#19167 - eclipse-openj9/openj9#19412 Related: eclipse-openj9/openj9#13211 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
TestHandshake has been fixed by - eclipse-openj9/openj9#19167 - eclipse-openj9/openj9#19412 Related: eclipse-openj9/openj9#13211 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
TestHandshake has been fixed by - eclipse-openj9/openj9#19167 - eclipse-openj9/openj9#19412 Related: eclipse-openj9/openj9#13211 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
TestHandshake has been fixed by - eclipse-openj9/openj9#19167 - eclipse-openj9/openj9#19412 Related: eclipse-openj9/openj9#13211 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
There are gaps where async exceptions are not processed in time (e.g.
JIT compiled code in a loop). Threads will wait in
closeScope0
untilJ9VMThread->scopedError
(async exception) is transferred toJ9VMThread->currentException
. The wait prevents aMemorySession
to beclosed until no more operations are being performed on it.
Related: #13211