> Please review this change to fix a problem that can rise if JVM TI suspension 
> is allowed when a thread is executing in a JNI "critical" region. The gory 
> details are in the first comment so that the PR emails are shorter
> 
> A new test is introduced to check that we cannot suspend in a critical region
> 
> Other testing:
> - Tiers 1-5 on all platforms
> 
> The key insights into this solution are attributed to @pchilano. Everything 
> simpler I tried was buggy and led me back to Patricio's suggested changes to 
> the operation filtering. The actual details of this and any remaining bugs in 
> it are all my own.
> 
> Thanks.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

David Holmes has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains 10 additional commits since the 
last revision:

 - Merge branch 'master' into 8373839-jni-crit-suspend
 - Replace assertion with code to check for null - thanks @pchilano
 - Use atomic store/load per style-guide for lock-free access
 - Use precond consistently
 - Fix typo
 - Use std::atomic for shared variables
 - Test stability improvements
 - Fix NULL usage now the test is in cpp file
 - cleanup
 - 8373839: Disable JVM TI suspension during JNI critical regions

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/30936/files
  - new: https://git.openjdk.org/jdk/pull/30936/files/872127f5..60f78752

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=30936&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30936&range=03-04

  Stats: 89650 lines in 1121 files changed: 28078 ins; 56712 del; 4860 mod
  Patch: https://git.openjdk.org/jdk/pull/30936.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30936/head:pull/30936

PR: https://git.openjdk.org/jdk/pull/30936

Reply via email to