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

Thomas Stuefe stuefe at openjdk.java.net
Tue May 18 04:07:22 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

Thomas Stuefe has updated the pull request incrementally with seven additional commits since the last revision:

 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   renamings
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   Brackets around ++
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>
 - Update test/hotspot/jtreg/runtime/os/TestTracePageSizes.java
   
   Use Path.toString
   
   Co-authored-by: Aleksey Shipilëv <shade at redhat.com>

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/4064/files
  - new: https://git.openjdk.java.net/jdk/pull/4064/files/16507093..3ee7409f

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4064&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4064&range=00-01

  Stats: 16 lines in 1 file changed: 4 ins; 0 del; 12 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