This change drops the adjustments to the virtual thread scheduler's target 
parallelism when virtual threads do file operations on files that are opened 
for buffered I/O. These operations are usually just too short to have any 
benefit and may have a negative benefit when reading/writing a small number of 
bytes. There is no change for read/write operations on files opened for direct 
I/O or when writing to files that are opened with options for synchronized I/O 
file integrity (O_SYNC/O_DSYNC and equivalents). Sergery Kuksenko is polishing 
benchmarks that includes this area, this is for a future PR.

In addition, the blocker mechanism is updated to handle reentrancy as can 
happen if debugging code is added to ForkJoinPool, if there is preemption when 
attempting to compensate, or potentially forced preemption in the future. This 
part is a pre-requisite to the changes to better support object monitor there 
are more places where preemption is possible and this quickly leads to 
unbalanced begin/end.

The changes have been baking in the loom repo for several months.

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

Commit messages:
 - Merge
 - Initial commit

Changes: https://git.openjdk.org/jdk/pull/18598/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18598&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8329593
  Stats: 1069 lines in 28 files changed: 221 ins; 623 del; 225 mod
  Patch: https://git.openjdk.org/jdk/pull/18598.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18598/head:pull/18598

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

Reply via email to