Integrated: 8277893: Arraycopy stress tests
Aleksey Shipilev
shade at openjdk.java.net
Tue Dec 21 14:05:24 UTC 2021
On Mon, 29 Nov 2021 13:28:33 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> I would like to fork the new tests off the JDK-8150730. These tests were instrumental in capturing many bugs in my arraycopy work, and I think they are good on their own merit, because they provide a test for the current baseline and on-going minor improvements in arraycopy on all platforms, not only x86_64, and they might be cleanly backportable.
>
> A brief tour of these tests:
>
> - Tests all data types;
> - Tests small arrays exhaustively, which captures conjoint/disjoint cases, errors near the edges, etc;
> - Tests large arrays with fuzzing around powers of two and powers of ten, both conjoint and disjoint cases;
> - Tests all available compilation modes for arraycopy stubs; for example, running on AVX-512 enabled machine runs all versions down to `-XX:UseAVX=0 -XX:UseSSE=0` cases;
> - Tests with/without compressed oops mode -- theoretically only needed for `Object` copies, but Hotspot cobbles together int+coops and long+no-coops loops, so I decided to alternate coops mode for all data types;
>
> My previous version used individual `@run` clauses for all configurations, but I think the Java driver is cleaner and easier to maintain.
>
> Test times:
>
>
> # x86_64 (TR 3970X)
> real 4m6.192s
> user 52m50.523s
> sys 0m13.755s
>
> # x86_64 (TR 3970X) -XX:+UseZGC
> real 6m2.573s
> user 72m43.541s
> sys 0m25.697s
>
> # x86_32 (TR 3970X)
> real 6m56.405s
> user 92m56.377s
> sys 0m6.677s
>
> # x86_64 (i5-11500)
> real 29m19.024s
> user 103m52.925s
> sys 1m7.175s
>
> # AArch64 (ThunderX2)
> real 2m59.623s
> user 26m14.624s
> sys 0m9.771s
>
>
> Since these tests are quite long, especially on small machines, I hooked them up to `hotspot:tier3`.
>
> Additional testing:
> - [x] Linux x86_64 fastdebug `compiler/stress/arraycopy`
> - [x] Linux x86_32 fastdebug `compiler/stress/arraycopy`
> - [x] Linux AArch64 fastdebug `compiler/stress/arraycopy`
This pull request has now been integrated.
Changeset: 29bd7363
Author: Aleksey Shipilev <shade at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/29bd73638a22d341767a1266723a7d7263e17093
Stats: 1154 lines in 12 files changed: 1153 ins; 0 del; 1 mod
8277893: Arraycopy stress tests
Reviewed-by: kvn, mli
-------------
PR: https://git.openjdk.java.net/jdk/pull/6594
More information about the hotspot-compiler-dev
mailing list