RFR: 8273315: Parallelize and increase timeouts for java/foreign/TestMatrix.java test

Aleksey Shipilev shade at openjdk.java.net
Tue Sep 7 15:56:37 UTC 2021


On Tue, 7 Sep 2021 15:04:31 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> This test runs a lot of configurations, and spends a lot of time serially. This is especially pronounced when run in prospective tier4 runs (JDK-8273314). There are reports of multi-hour runs (see JDK-8271613). We can parallelize the test configurations for this test to make it hurt less. Also, timeouts need to be increased for `TestUpcall` test configs, because some of them are very slow in fastdebug mode. 
>> 
>> Sample run:
>> 
>> 
>> $ time CONF=linux-x86_64-server-fastdebug make run-test TEST=java/foreign/TestMatrix.java | ts -s
>> 00:00:00 Building target 'run-test' in configuration 'linux-x86_64-server-fastdebug'
>> 00:00:03 Test selection 'java/foreign/TestMatrix.java', will run:
>> 00:00:03 * jtreg:test/jdk/java/foreign/TestMatrix.java
>> 00:00:03 
>> 00:00:03 Running test 'jtreg:test/jdk/java/foreign/TestMatrix.java'
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TTFT
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FFFF
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FFTF
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TTTT
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FTTT
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FFTT
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FFFT
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TTTF
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FTTF
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TFFT
>> 00:00:31 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TFTF
>> 00:00:32 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TFFF
>> 00:00:32 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FTFF
>> 00:00:35 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TFTT
>> 00:00:35 Passed: java/foreign/TestMatrix.java#UpcallHighArity-TTFF
>> 00:00:38 Passed: java/foreign/TestMatrix.java#UpcallHighArity-FTFT
>> 00:01:50 Passed: java/foreign/TestMatrix.java#Downcall-FF
>> 00:02:27 Passed: java/foreign/TestMatrix.java#Downcall-TF
>> 00:03:03 Passed: java/foreign/TestMatrix.java#Downcall-FT
>> 00:03:47 Passed: java/foreign/TestMatrix.java#Downcall-TT
>> 00:04:17 Passed: java/foreign/TestMatrix.java#Upcall-FTFF
>> 00:04:23 Passed: java/foreign/TestMatrix.java#Upcall-TFFF
>> 00:05:46 Passed: java/foreign/TestMatrix.java#Upcall-TTFF
>> 00:06:03 Passed: java/foreign/TestMatrix.java#Upcall-TFFT
>> 00:06:44 Passed: java/foreign/TestMatrix.java#Upcall-FTFT
>> 00:08:24 Passed: java/foreign/TestMatrix.java#Upcall-TFTF
>> 00:08:39 Passed: java/foreign/TestMatrix.java#Upcall-TTFT
>> 00:09:16 Passed: java/foreign/TestMatrix.java#Upcall-FTTF
>> 00:09:19 Passed: java/foreign/TestMatrix.java#Upcall-TFTT
>> 00:10:01 Passed: java/foreign/TestMatrix.java#Upcall-FTTT
>> 00:10:37 Passed: java/foreign/TestMatrix.java#Upcall-TTTF
>> 00:12:16 Passed: java/foreign/TestMatrix.java#Upcall-TTTT
>> 00:12:17 Test results: passed: 32
>> 00:12:21 
>> 00:12:21 ==============================
>> 00:12:21 Test summary
>> 00:12:21 ==============================
>> 00:12:21    TEST                                              TOTAL  PASS  FAIL ERROR   
>> 00:12:21    jtreg:test/jdk/java/foreign/TestMatrix.java          32    32     0     0   
>> 00:12:21 ==============================
>> 
>> real	12m20.538s
>> user	131m54.043s
>> sys	0m59.944s
>> 
>> 
>> If we don't parallelize, then those 130 minutes are spent serially.
>
> test/jdk/java/foreign/TestMatrix.java line 7:
> 
>> 5:  * @build NativeTestHelper CallGeneratorHelper TestUpcallHighArity
>> 6:  *
>> 7:  * @run testng/othervm/native
> 
> can you please throw in a `/manual` in here as well - so that this test will be disabled when running tests with jtreg `-a` option (which should be the norm in headless mode).

I can, but it seems to me that `/manual` is for marking GUI tests that require user interaction. Let me see if there are keywords we can use. Something like "developer", so that you can pass `jtreg -k:developer` or `JTREG_KEYWORDS=developer make test ...` when you really want to run them. I'll take a closer look tomorrow.

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

PR: https://git.openjdk.java.net/jdk/pull/5358


More information about the core-libs-dev mailing list