--- a/src/hotspot/os/solaris/os_solaris.cpp	Thu May 28 11:43:31 2020
+++ b/src/hotspot/os/solaris/os_solaris.cpp	Thu May 28 13:53:16 2020
@@ -2696,52 +2696,35 @@
 bool os::Solaris::_synchronization_initialized;
 
 void os::Solaris::synchronization_init() {
-  if (UseLWPSynchronization) {
-    os::Solaris::set_mutex_lock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("_lwp_mutex_lock")));
-    os::Solaris::set_mutex_trylock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("_lwp_mutex_trylock")));
-    os::Solaris::set_mutex_unlock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("_lwp_mutex_unlock")));
-    os::Solaris::set_mutex_init(lwp_mutex_init);
-    os::Solaris::set_mutex_destroy(lwp_mutex_destroy);
-    os::Solaris::set_mutex_scope(USYNC_THREAD);
+  os::Solaris::set_mutex_scope(USYNC_THREAD);
+  os::Solaris::set_cond_scope(USYNC_THREAD);
 
-    os::Solaris::set_cond_timedwait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP_timestruc_tP, resolve_symbol("_lwp_cond_timedwait")));
-    os::Solaris::set_cond_wait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP, resolve_symbol("_lwp_cond_wait")));
-    os::Solaris::set_cond_signal(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("_lwp_cond_signal")));
-    os::Solaris::set_cond_broadcast(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("_lwp_cond_broadcast")));
-    os::Solaris::set_cond_init(lwp_cond_init);
-    os::Solaris::set_cond_destroy(lwp_cond_destroy);
-    os::Solaris::set_cond_scope(USYNC_THREAD);
+  if (UsePthreads) {
+    os::Solaris::set_mutex_lock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_lock")));
+    os::Solaris::set_mutex_trylock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_trylock")));
+    os::Solaris::set_mutex_unlock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_unlock")));
+    os::Solaris::set_mutex_init(pthread_mutex_default_init);
+    os::Solaris::set_mutex_destroy(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_destroy")));
+
+    os::Solaris::set_cond_timedwait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP_timestruc_tP, resolve_symbol("pthread_cond_timedwait")));
+    os::Solaris::set_cond_wait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP, resolve_symbol("pthread_cond_wait")));
+    os::Solaris::set_cond_signal(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("pthread_cond_signal")));
+    os::Solaris::set_cond_broadcast(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("pthread_cond_broadcast")));
+    os::Solaris::set_cond_init(pthread_cond_default_init);
+    os::Solaris::set_cond_destroy(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("pthread_cond_destroy")));
   } else {
-    os::Solaris::set_mutex_scope(USYNC_THREAD);
-    os::Solaris::set_cond_scope(USYNC_THREAD);
+    os::Solaris::set_mutex_lock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("mutex_lock")));
+    os::Solaris::set_mutex_trylock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("mutex_trylock")));
+    os::Solaris::set_mutex_unlock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("mutex_unlock")));
+    os::Solaris::set_mutex_init(::mutex_init);
+    os::Solaris::set_mutex_destroy(::mutex_destroy);
 
-    if (UsePthreads) {
-      os::Solaris::set_mutex_lock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_lock")));
-      os::Solaris::set_mutex_trylock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_trylock")));
-      os::Solaris::set_mutex_unlock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_unlock")));
-      os::Solaris::set_mutex_init(pthread_mutex_default_init);
-      os::Solaris::set_mutex_destroy(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("pthread_mutex_destroy")));
-
-      os::Solaris::set_cond_timedwait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP_timestruc_tP, resolve_symbol("pthread_cond_timedwait")));
-      os::Solaris::set_cond_wait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP, resolve_symbol("pthread_cond_wait")));
-      os::Solaris::set_cond_signal(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("pthread_cond_signal")));
-      os::Solaris::set_cond_broadcast(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("pthread_cond_broadcast")));
-      os::Solaris::set_cond_init(pthread_cond_default_init);
-      os::Solaris::set_cond_destroy(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("pthread_cond_destroy")));
-    } else {
-      os::Solaris::set_mutex_lock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("mutex_lock")));
-      os::Solaris::set_mutex_trylock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("mutex_trylock")));
-      os::Solaris::set_mutex_unlock(CAST_TO_FN_PTR(int_fnP_mutex_tP, resolve_symbol("mutex_unlock")));
-      os::Solaris::set_mutex_init(::mutex_init);
-      os::Solaris::set_mutex_destroy(::mutex_destroy);
-
-      os::Solaris::set_cond_timedwait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP_timestruc_tP, resolve_symbol("cond_timedwait")));
-      os::Solaris::set_cond_wait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP, resolve_symbol("cond_wait")));
-      os::Solaris::set_cond_signal(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("cond_signal")));
-      os::Solaris::set_cond_broadcast(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("cond_broadcast")));
-      os::Solaris::set_cond_init(::cond_init);
+    os::Solaris::set_cond_timedwait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP_timestruc_tP, resolve_symbol("cond_timedwait")));
+    os::Solaris::set_cond_wait(CAST_TO_FN_PTR(int_fnP_cond_tP_mutex_tP, resolve_symbol("cond_wait")));
+    os::Solaris::set_cond_signal(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("cond_signal")));
+    os::Solaris::set_cond_broadcast(CAST_TO_FN_PTR(int_fnP_cond_tP, resolve_symbol("cond_broadcast")));
+    os::Solaris::set_cond_init(::cond_init);
       os::Solaris::set_cond_destroy(::cond_destroy);
-    }
   }
   _synchronization_initialized = true;
 }
@@ -3545,9 +3527,6 @@
 // 3.   Tx resumes from park
 
 
-// value determined through experimentation
-#define ROUNDINGFIX 11
-
 // utility to compute the abstime argument to timedwait.
 // TODO-FIXME: switch from compute_abstime() to unpackTime().
 
@@ -3561,24 +3540,8 @@
   jlong seconds = millis / 1000;
   jlong max_wait_period;
 
-  if (UseLWPSynchronization) {
-    // forward port of fix for 4275818 (not sleeping long enough)
-    // There was a bug in Solaris 6, 7 and pre-patch 5 of 8 where
-    // _lwp_cond_timedwait() used a round_down algorithm rather
-    // than a round_up. For millis less than our roundfactor
-    // it rounded down to 0 which doesn't meet the spec.
-    // For millis > roundfactor we may return a bit sooner, but
-    // since we can not accurately identify the patch level and
-    // this has already been fixed in Solaris 9 and 8 we will
-    // leave it alone rather than always rounding down.
+  max_wait_period = 50000000;
 
-    if (millis > 0 && millis < ROUNDINGFIX) millis = ROUNDINGFIX;
-    // It appears that when we go directly through Solaris _lwp_cond_timedwait()
-    // the acceptable max time threshold is smaller than for libthread on 2.5.1 and 2.6
-    max_wait_period = 21000000;
-  } else {
-    max_wait_period = 50000000;
-  }
   millis %= 1000;
   if (seconds > max_wait_period) {      // see man cond_timedwait(3T)
     seconds = max_wait_period;
