RFR: 8267155: runtime/os/TestTracePageSizes times out [v6]

David Holmes david.holmes at oracle.com
Thu May 20 10:47:34 UTC 2021


Hi Thomas,

This test is now failing in our tier 1 testing for linux-aarch64:

runtime/os/TestTracePageSizes.java#with-Serial


----------messages:(4/366)----------
command: main -XX:+AlwaysPreTouch -Xmx128m -Xlog:pagesize:ps-%p.log 
-XX:+UseSerialGC -XX:+UseTransparentHugePages TestTracePageSizes
reason: User specified action: run main/othervm -XX:+AlwaysPreTouch 
-Xmx128m -Xlog:pagesize:ps-%p.log -XX:+UseSerialGC 
-XX:+UseTransparentHugePages TestTracePageSizes
Mode: othervm [/othervm specified]
elapsed time (seconds): 1.182
----------configuration:(0/0)----------
----------System.out:(0/0)----------
----------System.err:(13/846)----------
java.lang.AssertionError: Page sizes mismatch: 64 != 524288
	at TestTracePageSizes.main(TestTracePageSizes.java:294)
	at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
	at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at 
com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
	at java.base/java.lang.Thread.run(Thread.java:831)


I will file a bug and assign to you. If it can't be fixed promptly we 
will need to backout the change.

Thanks,
David
-----

On 20/05/2021 6:21 pm, Thomas Stuefe wrote:
> On Thu, 20 May 2021 05:29:57 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
> 
>>> This Linux-specific test parses `/proc/self/smaps` using a dotall regular expression. If part of the expression don't match it explodes in complexity, leading to timeouts.
>>>
>>> In our case, `VmFlags` tag was missing from smaps, which was introduced with kernel 3.8. I am actually not able to determine how slow they were; on one machine they ran for two hours before getting killed.
>>>
>>> I tried to fiddle with the regular expression and gave up, instead opting to rewrite the parser to get a simple one-pass scan. This is way faster than before - on our old-kernel machines the tests complete in 2 minutes. On new kernels the test is a bit faster too.
>>>
>>> In addition to rewriting the parser, I added code which copies the smaps file into the test directory before parsing it. I do this to minimize problems should the underlying proc fs content change while parsing, and to have a way to retain the parsed smaps files.
>>>
>>> I also added a way to feed an external smaps file into the test. Of course the test would fail, but it was a way to test the parser.
>>>
>>> Unfortunately, this does not make the test succeed. The timeouts are gone, but we have still have no way to know if TPHs are enabled or not. That is a separate issue though.
>>>
>>> Thanks, Thomas
>>
>> Thomas Stuefe has updated the pull request incrementally with one additional commit since the last revision:
>>
>>    final review feedback
> 
> Thanks Alexey and Stefan.
> 
> -------------
> 
> PR: https://git.openjdk.java.net/jdk/pull/4064
> 


More information about the hotspot-runtime-dev mailing list