On Wed, 19 Jun 2024 11:40:16 GMT, Daniel Jeliński <djelin...@openjdk.org> wrote:

> As you found out already, the implementation is based on a hash table, so 
> access will be slower with many threads waiting at the same time. The hash 
> table is stored in user space (in PEB), and the implementation reportedly 
> doesn't require any kernel resources.
> 
> I'm not sure what to do with the remaining reference to 
> `WaitForSingleObject`; it explains why we decompose the timeout by pointing 
> to `EventWait`, which no longer exists as far as I could tell. I'll search 
> the history some more before I decide what to do with that comment.
> 
> I don't think we care about pre-Win8 OSes at this point. JDK-11 was the last 
> version to support Windows 7, I guess we won't backport this change there.
> 
> The patch replaces the underlying mechanics of ObjectMonitor. The ParkEvent 
> is only used when a thread is blocked on a monitor, so the number of 
> concurrent waits will never be greater than the total number of running 
> threads.
> 
> I'll check if I can run Renaissance philosophers. Could you explain how 
> UseHeavyMonitors changes the benchmark?

With UseHeavyMonitors, even uncontended locks are inflated to OMs. Otherwise, 
we use stack locking resp. now lightweight locking. The benchmark itself 
generates a lot of locks IIRC.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/19778#issuecomment-2178538329

Reply via email to