Drop adjustments to target parallelism when virtual threads do I/O on files opened for buffered I/O

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Fixed
    • Priority: P4
    • 23
    • Affects Version/s: None
    • Component/s: core-libs
    • b20

      The following changes have been sitting in the loom repo for sometime, it's time to bring these changes into the main line:

      1. Drop the begin/end compensate around ops on files opened for buffered I/O. Sergery Kuksenko analysis have demonstrated that there isn't any benefit or there is negative benefit, esp. when reading/writing a small number of bytes.

      2. Continue to compensate around the following operations:

      - Object.wait (temporary, will be removed with the object monitor work)
      - Blocking Selector.select operations (temporary, will be removed for the epoll and kqueue Selector implementations with the object monitor work)
      - FileDescriptor.sync
      - MappedByteBuffer/MemorySegment.force
      - File read/write when the file is opened for direct I/O
      - File write when the file is opened for synchronized I/O file integrity.
      - InetAddress lookupByXXX methods in platform resolver
      - System.in/out/err read/write
      - Process input/output/error read/write

      3. Handle reentrancy as might happy if debugging code is added to ForkJoinPool, preempted when attempting to compensate, or potentially forced preemption in the future.

            Assignee:
            Alan Bateman
            Reporter:
            Alan Bateman
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: