RFR: 8279573: compiler/codecache/CodeCacheFullCountTest.java fails with "RuntimeException: the value of full_count is wrong." [v2]
Coleen Phillimore
coleenp at openjdk.java.net
Mon Feb 28 16:39:46 UTC 2022
On Mon, 28 Feb 2022 16:26:35 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> This change adds a conditional to make -XX:-UseCodeCacheFlushing not flush the code cache so that the test passes on loom. It also makes full_count atomic so that the test in codeCache for printing is correct. This change also fixes the test because the full_count field and the message printing are not synchronized, so you can get 2 or more depending on the number of compiler threads.
>> Tested with tier1-3 on linux and windows x64.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
>
> I misunderstood the UseCodeCacheFlushing flag and make it act like MethodFlushing, which is a whole different flag. Using MethodFlushing instead in the test makes it pass on loom and mainline.
Thanks Tobias. Erik asked me off PR why this UseCodeCacheFlushing flag didn't disable the NMethodSweeper completely, since I made it disable flushing methods. Which made me aware of another flag that does what this test should want:
product(bool, MethodFlushing, true, \
"Reclamation of zombie and not-entrant methods") \
vs.
product(bool, UseCodeCacheFlushing, true, \
"Remove cold/old nmethods from the code cache") \
The latter flag disables removing cold methods from the code cache, where the former disables flushing. I fixed the test to use MethodFlushing instead and verified that it passes on Loom and mainline.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7629
More information about the hotspot-dev
mailing list