Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8355466

[Umbrella] Add more randomization to the JIT for stress testing

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P2 P2
    • tbd
    • 25
    • hotspot

      Our existing stress flags that introduce randomization (StressIGVN, StressCCP, ...) proved to be valuable in finding bugs. We should add more.

      Here's a collection of ideas:
      - Inline random methods: At each call side, randomly select a method from any class with a signature + receiver that fits and inline it (compilation only, no execution)
      - Randomized call injection with forced inlining (compilation only, no execution)
      - Randomized profile information gathered by the interpreter and C1 (this is especially powerful with CTW and RepeatCompilation)
      - Randomly disable inlining (randomize bailouts in InlineTree::should_not_inline and similar methods)
      - Randomly disable processor capabilities, or even add full unsafe control over CPU capabilities
      - Randomize register allocation heuristics (what to spill, what registers to assign - see JDK-8343294, etc.) and matching
      - Randomize Node::_in/_out arrays to randomize graph walks ([~epeter]'s idea)
      - Randomize the compile queue orders

      See also the linked issues.

            Unassigned Unassigned
            thartmann Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: