RFR: 8267155: runtime/os/TestTracePageSizes times out [v6]
David Holmes
david.holmes at oracle.com
Thu May 20 11:07:25 UTC 2021
Hi Thomas,
The test is being problem-listed so a fix is less urgent and backout
avoided.
Cheers,
David
On 20/05/2021 8:47 pm, David Holmes wrote:
> 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