8233113: ARM32: assert on UnsafeJlong mutex rank check

Reviewed-by: coleenp, dholmes
This commit is contained in:
Boris Ulasevich 2019-11-20 09:29:23 +03:00
parent 8534e920b1
commit 22bcd1677c
2 changed files with 2 additions and 8 deletions

View File

@ -288,8 +288,6 @@ Mutex::Mutex(int Rank, const char * name, bool allow_vm_block,
assert(_safepoint_check_required != _safepoint_check_sometimes || is_sometimes_ok(name), assert(_safepoint_check_required != _safepoint_check_sometimes || is_sometimes_ok(name),
"Lock has _safepoint_check_sometimes %s", name); "Lock has _safepoint_check_sometimes %s", name);
assert(_rank > special || _allow_vm_block,
"Special locks or below should allow the vm to block");
assert(_rank > special || _safepoint_check_required == _safepoint_check_never, assert(_rank > special || _safepoint_check_required == _safepoint_check_never,
"Special locks or below should never safepoint"); "Special locks or below should never safepoint");
#endif #endif

View File

@ -24,7 +24,7 @@
/* /*
* @test * @test
* @bug 8184732 * @bug 8184732
* @summary Ensure that special locks never safepoint check and are vm_block. * @summary Ensure that special locks never safepoint check.
* @library /test/lib * @library /test/lib
* @modules java.base/jdk.internal.misc * @modules java.base/jdk.internal.misc
* java.management * java.management
@ -57,22 +57,18 @@ public class NoSafepointVerifier {
} }
static String test1 = "Special locks or below should never safepoint"; static String test1 = "Special locks or below should never safepoint";
static String test2 = "Special locks or below should allow the vm to block"; static String test2 = "Possible safepoint reached by thread that does not allow it";
static String test3 = "Possible safepoint reached by thread that does not allow it";
public static void main(String args[]) throws Exception { public static void main(String args[]) throws Exception {
if (args.length > 0) { if (args.length > 0) {
if (args[0].equals(test1)) { if (args[0].equals(test1)) {
WhiteBox.getWhiteBox().assertSpecialLock(/*vm_block*/true, /*safepoint_check_always*/true); WhiteBox.getWhiteBox().assertSpecialLock(/*vm_block*/true, /*safepoint_check_always*/true);
} else if (args[0].equals(test2)) { } else if (args[0].equals(test2)) {
WhiteBox.getWhiteBox().assertSpecialLock(/*vm_block*/false, /*safepoint_check_always*/false);
} else if (args[0].equals(test3)) {
WhiteBox.getWhiteBox().assertSpecialLock(/*vm_block*/true, /*safepoint_check_always*/false); WhiteBox.getWhiteBox().assertSpecialLock(/*vm_block*/true, /*safepoint_check_always*/false);
} }
} else { } else {
runTest(test1); runTest(test1);
runTest(test2); runTest(test2);
runTest(test3);
} }
} }
} }