RFR: 8330157: C2: Add a stress flag for bailouts [v6]
Daniel Skantz
duke at openjdk.org
Thu Jun 20 16:04:39 UTC 2024
> This patch adds a diagnostic/stress flag for C2 bailouts. It can be used to support testing of existing bailouts to prevent issues like [JDK-8318445](https://bugs.openjdk.org/browse/JDK-8318445), and can test for issues only seen at runtime such as [JDK-8326376](https://bugs.openjdk.org/browse/JDK-8326376). It can also be useful if we want to add more bailouts ([JDK-8318900](https://bugs.openjdk.org/browse/JDK-8318900)).
>
> We check two invariants.
> a) Bailouts should be successful starting from any given `failing()` check.
> b) The VM should not record a bailout when one is pending (in which case we have continued to optimize for too long).
>
> a), b) are checked by randomly starting a bailout at calls to `failing()` with a user-given probability.
>
> The added flag should not have any effect in debug mode.
>
> Testing:
>
> T1-5, with flag and without it. We want to check that this does not cause any test failures without the flag set, and no unexpected failures with it. Tests failing because of timeout or because an error is printed to output when compilation fails can be expected in some cases.
Daniel Skantz has updated the pull request incrementally with two additional commits since the last revision:
- tweak probability in CtwRunner, add CaptureBailoutInformation
- remove once-used method arg
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/19646/files
- new: https://git.openjdk.org/jdk/pull/19646/files/7b15e176..43eb3897
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=19646&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=19646&range=04-05
Stats: 5 lines in 2 files changed: 1 ins; 0 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/19646.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19646/head:pull/19646
PR: https://git.openjdk.org/jdk/pull/19646
More information about the hotspot-compiler-dev
mailing list