48 Commits

Author SHA1 Message Date
Patricio Chilano Mateo
5634f206e5 8265932: Move safepoint related fields from class Thread to JavaThread
Reviewed-by: coleenp, dholmes
2021-04-27 16:53:25 +00:00
Coleen Phillimore
222f9f07d1 8265682: G1: Mutex::_name dangling in HeapRegionRemSet references after JDK-8264146
Reviewed-by: dholmes, sjohanss
2021-04-26 14:23:08 +00:00
Robbin Ehn
86bd44fe80 8257831: Suspend with handshakes
Reviewed-by: dcubed, rrich, dholmes, pchilanomate, sspitsyn
2021-04-22 10:30:47 +00:00
Ioi Lam
33b6378f1e 8265101: Remove unnecessary functions in os*.inline.hpp
Reviewed-by: dholmes, kbarrett
2021-04-22 05:44:39 +00:00
Aleksey Shipilev
66f89870f2 8265298: Hard VM crash when deadlock between "access" and higher ranked lock is detected
Reviewed-by: pchilanomate, dholmes
2021-04-17 06:21:19 +00:00
Coleen Phillimore
a1e717f13e 8264146: Make Mutex point to rather than embed _name
Reviewed-by: redestad, dholmes
2021-03-25 12:37:28 +00:00
Patricio Chilano Mateo
d6b5e1809b 8263191: Consolidate ThreadInVMfromJavaNoAsyncException and ThreadBlockInVMWithDeadlockCheck with existing wrappers
Reviewed-by: coleenp, dholmes, dcubed
2021-03-15 14:12:21 +00:00
David Holmes
927504e827 8256474: Migrate Mutex _owner accesses to use Atomic operations
Reviewed-by: coleenp, kbarrett
2020-12-01 23:10:39 +00:00
Patricio Chilano Mateo
aabc9ca266 8255678: Add Mutex::try_lock version without rank checks
Reviewed-by: dcubed, dholmes, coleenp
2020-11-23 15:41:19 +00:00
David Holmes
2b15571316 8256383: PlatformMutex::try_lock has different semantics on Windows and Posix
Reviewed-by: stuefe, dcubed
2020-11-18 22:48:39 +00:00
Kim Barrett
69f5235e16 8255596: Mutex safepoint checking options and flags should be scoped enums
Reviewed-by: tschatzl, rehn
2020-11-02 10:16:40 +00:00
David Holmes
976acddeb5 8252406: Introduce Thread::as_Java_thread() convenience function
Reviewed-by: shade, coleenp, kbarrett, dcubed
2020-09-11 01:31:32 +00:00
Coleen Phillimore
35421399a4 8235765: Use of the long type should be avoided in shared code
Changed some long declarations to uint64_t/int64_t or unsigned int, depending on context.

Reviewed-by: lfoltan, kvn, dholmes
2020-08-17 10:08:36 -04:00
Ioi Lam
cb75b6ee22 8235629: Remove unnecessary calls to Thread::current
Reviewed-by: coleenp, ccheung, hseigel
2019-12-11 15:25:38 -08:00
Boris Ulasevich
22bcd1677c 8233113: ARM32: assert on UnsafeJlong mutex rank check
Reviewed-by: coleenp, dholmes
2019-11-20 09:29:23 +03:00
Claes Redestad
4084a43111 8231707: Improve Mutex inlining
Reviewed-by: rehn, dholmes, coleenp
2019-10-03 13:45:08 +02:00
Coleen Phillimore
98f454c9ca 8184732: Deadlock detection improvements for 'special' locks
Assert that special ranked locks cannot safepoint and allow_vm_block and remove locks from the exceptional lock list in no_safepoint_verifier.

Reviewed-by: dholmes, eosterlund
2019-09-30 13:10:11 -04:00
Coleen Phillimore
e49e9292d3 8213150: Add verification for locking by VMThread
Extend verification for all locking not just VMOperations, and fix CLDG lock to not be taken by VM thread.

Reviewed-by: rehn, dholmes
2019-09-24 10:12:56 -04:00
Coleen Phillimore
da18495f38 8230003: Make Monitor inherit from Mutex
Reverse inheritance that makes more sense.

Reviewed-by: dholmes, rehn, pchilanomate
2019-08-22 09:51:36 -04:00
David Holmes
000a25c0bf 8228858: Reimplement JVM_RawMonitors to use PlatformMutex
Reviewed-by: coleenp, dcubed, pchilanomate
2019-08-14 18:26:23 -04:00
Coleen Phillimore
d1ca6221a4 5103339: Strengthen NoSafepointVerifier
Add NSV check at possible safepoint transition or places that could take out locks.  Consolidate with clearing unhandled oops.

Reviewed-by: dholmes, rehn
2019-08-14 10:07:00 -04:00
Robbin Ehn
c6446d44b7 8226228: Make Threads_lock an always safepoint checked lock
Reviewed-by: coleenp, dcubed, dholmes
2019-08-09 11:04:08 +02:00
Coleen Phillimore
8251ba4817 8229208: Remove Monitor::ClearMonitor
Reviewed-by: dholmes
2019-08-07 08:10:45 -04:00
Coleen Phillimore
8426db3d74 8229000: Fix lock and reenable assert in Monitor::check_safepoint_state
Reviewed-by: dholmes, kbarrett
2019-08-05 11:16:48 -04:00
Coleen Phillimore
9ad5641ce5 8228673: Remove develop flag StrictSafepointChecks
Reviewed-by: shade, dholmes
2019-07-31 06:37:13 -04:00
Coleen Phillimore
6f95cac0e2 8223190: Test gc/arguments/TestShrinkHeapInSteps.java breaks with change for JDK-8074355
Remove too strict assert.

Reviewed-by: hseigel
2019-05-01 10:54:07 -04:00
Coleen Phillimore
6fb8502b77 8074355: make MutexLocker smarter about non-JavaThreads
Use safepoint_check_always/safepoint_check_never instead of safepoint_check_sometimes for locks that are taken by JavaThreads and non-JavaThreads

Reviewed-by: dholmes, rehn, dcubed, lmesnik
2019-05-01 08:56:38 -04:00
Coleen Phillimore
fbafef11c0 8222811: Consolidate MutexLockerEx and MutexLocker
Make MutexLocker be MutexLockerEx implementation, remove MutexLockerEx calls.

Reviewed-by: dcubed, dholmes, pliden, rehn
2019-04-25 10:56:31 -04:00
Coleen Phillimore
0314bac167 8222231: Clean up interfaceSupport.inline.hpp duplicated code
Reviewed-by: dholmes, pchilanomate
2019-04-10 17:31:31 -04:00
Robbin Ehn
bec8431683 8203469: Faster safepoints
Reviewed-by: dcubed, pchilanomate, dholmes, acorn, coleenp, eosterlund
2019-02-15 14:15:10 +01:00
Patricio Chilano Mateo
c94cdddbdd 8210832: Remove sneaky locking in class Monitor
Removed sneaky locking and simplified vm monitors implementation

Co-authored-by: David Holmes <david.holmes@oracle.com>
Reviewed-by: rehn, dcubed, pliden, dholmes, coleenp
2019-02-05 15:12:13 -05:00
Kim Barrett
b80d335354 8214315: G1: fatal error: acquiring lock SATB_Q_FL_lock/1 out of order with lock tty_lock/0
Add new 'tty' lock rank.

Reviewed-by: eosterlund, tschatzl
2018-12-08 18:52:57 -05:00
David Holmes
5e0ae53450 8213723: More Monitor/mutex initialization management
8213893: StringTable_lock is unused

Reviewed-by: tschatzl, dcubed, coleenp
2018-11-15 17:55:41 -05:00
Patricio Chilano Mateo
98d92b0b6b 8213708: Different #ifdef guards cause incorrect use of Monitor::check_block_state()
Wrapped check_block_state() method in DEBUG_ONLY macro and make the use of the latter more consistent

Reviewed-by: dcubed, dholmes
2018-11-14 09:50:01 -05:00
Robbin Ehn
e35e0ab165 8211403: Rename SafepointMechanism::poll(...)
Reviewed-by: mdoerr, dcubed, dholmes
2018-11-08 14:32:49 +01:00
Coleen Phillimore
d302072f50 8213211: [BACKOUT] Allow Klass::_subklass and _next_sibling to have unloaded classes
Reviewed-by: jiangli, jwilhelm
2018-10-31 14:38:14 -04:00
Coleen Phillimore
6a045adbed 8212958: Allow Klass::_subklass and _next_sibling to have unloaded classes
Don't return unloaded klasses. Make sure access is protected by Compile_lock.

Reviewed-by: eosterlund, dlong
2018-10-29 10:21:34 -04:00
Coleen Phillimore
647c7d5344 8164683: Solaris: JVM abuses thread preemption control
Complete removal of preemption control and command line arguments (were deprecated in 11).

Reviewed-by: hseigel, pchilanomate, dholmes
2018-08-10 09:36:01 -04:00
Patricio Chilano Mateo
46f2f92658 8202615: Remove NativeMonitorSpinLimit, NativeMonitorFlags and NativeMonitorTimeout experimental flags
Removed NativeMonitorSpinLimit, NativeMonitorFlags and NativeMonitorTimeout experimental flags from globals.hpp and mutex.cpp and marked them as obsolete.

Reviewed-by: kbarrett, dholmes
2018-06-25 13:47:27 -04:00
Coleen Phillimore
892a2af03f 8204301: Make OrderAccess functions available to hpp rather than inline.hpp files
Move orderAccess.inline.hpp into orderAccess.hpp and remove os.hpp inclusion and conditional os::is_MP() for fence on x86 platforms

Reviewed-by: dholmes, hseigel
2018-06-06 10:45:40 -04:00
Per Lidén
d830d47d91 8203817: Monitor::try_lock() should not call check_prelock_state()
Reviewed-by: dholmes, eosterlund, rehn
2018-05-28 09:59:11 +02:00
Coleen Phillimore
6216182dd1 8202853: NotifyCount is not initialized
Remove NotifyCount

Reviewed-by: jiangli
2018-05-21 17:17:24 -04:00
Coleen Phillimore
fde89a34d0 8199263: Split interfaceSupport.hpp to not require including .inline.hpp files
InterfaceSupport.hpp is an inline file so moved to interfaceSupport.inline.hpp and stopped including it in .hpp files

Reviewed-by: stefank, rehn, kvn
2018-03-16 09:12:13 -04:00
Kim Barrett
9e5bf18428 8194406: Use Atomic::replace_if_null
Reviewed-by: coleenp, dholmes
2018-01-04 18:18:18 -05:00
Robbin Ehn
104ecb2dd1 8189941: Implementation JEP 312: Thread-local handshake
Introduce a way to execute a callback on threads without performing a global VM safepoint. Make it both possible and cheap to stop individual threads and not just all threads or none.

Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Erik Osterlund <erik.osterlund@oracle.com>
Reviewed-by: mdoerr, neliasso, acorn, aph, coleenp, dholmes
2017-08-31 10:00:28 +02:00
Coleen Phillimore
39b068db11 8188220: Remove Atomic::*_ptr() uses and overloads from hotspot
With the new template functions these are unnecessary.

Reviewed-by: kbarrett, dholmes, eosterlund
2017-10-16 22:36:06 -04:00
Erik Österlund
bf5816a2c5 8188813: Generalize OrderAccess to use templates
Reviewed-by: dholmes, coleenp
2017-10-09 14:39:59 +02:00
Erik Joelsson
3789983e89 8187443: Forest Consolidation: Move files to unified layout
Reviewed-by: darcy, ihse
2017-09-12 19:03:39 +02:00