JCStress 0.16
Aleksey Shipilev
shade at redhat.com
Mon Feb 27 10:55:39 UTC 2023
Hi,
JCStress 0.16 is released and available on Maven Central. This is useful for those who use JCStress
as Maven dependency. This release further improves harness reliability, testing performance, and UX.
*) JDK 19+ compatibility improved. Deprecated API usages reduced, rewritten some harness parts to
leverage new APIs.
7903216: jcstress: JDK 19 compatibility fixes
7903407: jcstress: Main cannot compile with -Werror due to URL deprecation
*) Reliability: Allocation-intensive tests should now be more reliable. Sanity checks for
footprints are now retried, there are less objects retained by the tests, the heap is being
pre-touched before going into the sensitive test, more headroom for allocations per test is reserved.
7903423: jcstress: Improve footprint by managing object lifecycles better
7903424: jcstress: Improve reliability of resource sanity checks
7903425: jcstress: Pre-touch Java heap to avoid allocation stalls
7903428: jcstress: Adjust max memory per test
*) Reliability: Generated code is restructured to use split compilation better. With this
improvement, test code is guaranteed to run in desired compilation mode, regardless of the caller
that invoked it. Before this, sanity checks for the test that is supposed to run in interpreter mode
might have run in compiled mode, severely underestimating the time or overestimating the memory
footprint.
7903419: jcstress: Rework split compilation support
*) Reliability: All generated @State objects should now be properly processed at normal exit. This
ensures we do not miss important samples and/or miss the faux "lifecycle" @Arbiter method invocations.
7903383: jcstress: All State objects should be processed
*) UX: Improved NUMA CPU topology support. Several NUMA nodes per socket (for example, Zen) would
now add the test configs that are scheduled across the NUMA nodes as if they are "sockets". This
tests the cross-memory-controller behavior.
7903416: jcstress: Handle NUMA topologies better
*) UX: Improved sparse CPU topology support. When harness is executed on the slice of a host
machine, it see only some CPUs with a non-regular topology. Before this improvement, harness would
just bail to fallback topology and disabled affinity support. With this improvement, harness should
be able to figure out the affinity allocations without problems.
7903415: jcstress: Accept non-sequential CPU ID topologies
*) UX: (+|-)BiasedLocking is part of default test config matrix. This ensures we test several VM
paths for tests that use locking. This is important for removal of BiasedLocking and other
locking-related improvements in VM.
7903408: jcstress: Add BiasedLocking options in test configurations
*) Test performance: Generated code was tuned up a bit to improve interpreter performance.
7903290: jcstress: Inline Counter.record(R) method
7903291: jcstress: Optimize jcstress trap handling
+ A lot of samples were improved, although they are not part of the Maven release.
Enjoy!
--
Thanks,
-Aleksey
More information about the jcstress-dev
mailing list