RFR: 8243961: ForceNUMA and only one available NUMA node fails assertion on Windows
Kim Barrett
kim.barrett at oracle.com
Wed Apr 29 12:28:10 UTC 2020
Please review this Windows-specific change to the initialization of
UseNUMAInterleaving.
If UseNUMAInterleaving is true but is run on a version of Windows that
doesn't support NUMA APIs or on a single-node platform, bad things can
happen. Ordinarily that would cause UseNUMAInterleaving to be forced
off. But if UseNUMA and ForceNUMA are also true, then sometime later
in the argument initialization UseNUMAInterleaving will be forced back
on, even though the supporting environment and data structures may not
be correct for that.
We solve this by making the forcing of interleaving off sticky (by
setting "ergonomically"), so the later possible default update will be
suppressed.
CR:
https://bugs.openjdk.java.net/browse/JDK-8243961
Webrev:
https://cr.openjdk.java.net/~kbarrett/8243961/open.00/
Testing:
mach5 tier1-3
mach5 testing on Windows with explict +UseG1GC +UseNUMA +ForceNUMA and
each of +/-/(default)UseNUMAInterleaving.
TestUseNUMAInterleaving fails for some of those test configurations on
non-NUMA hardware, because the test expects UseNUMAInterleaving to be
enabled if UseNUMA is enabled. As the test failure can only happen
with +ForceNUMA, that configuration doesn't seem to otherwise lead to
other problems, +ForceNUMA doesn't seem to be a tested configuration,
and ForceNUMA is going away (JDK-8243628), we'll not worry about that
failure.
More information about the hotspot-gc-dev
mailing list