RFR: 8267155: runtime/os/TestTracePageSizes times out
Thomas Stuefe
stuefe at openjdk.java.net
Mon May 17 16:19:01 UTC 2021
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
-------------
Commit messages:
- fix test
- preparation, copy smaps, smaps replacement feed
Changes: https://git.openjdk.java.net/jdk/pull/4064/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4064&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8267155
Stats: 87 lines in 1 file changed: 61 ins; 2 del; 24 mod
Patch: https://git.openjdk.java.net/jdk/pull/4064.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/4064/head:pull/4064
PR: https://git.openjdk.java.net/jdk/pull/4064
More information about the hotspot-runtime-dev
mailing list