[concurrency-interest] Low-latency pause in JDK

Aaron Grunthal aaron.grunthal at infinite-source.de
Sat Oct 26 17:56:06 EDT 2019


On 26/10/2019 11:21, Andrew Haley via Concurrency-interest wrote:
> On 10/25/19 11:11 AM, Viktor Klang via Concurrency-interest wrote:
>>
>> Is there any jdk-builtin Java8+ method which tries to be clever
>> about low-nanos/micros parking?
>>
>> I'm currently considering LockSupport.parkNanos but want to avoid
>> having the Thread parked when parking + wake-up latency is more
>> likely to be much greater than the requested time.
>>
>> I.e. some combination of onSpinWait + some non-cache-polluting
>> computation + yielding + actual parking. I'd like to avoid having to
>> custom-roll it, hence the question for prior art ;)
> 
> As I understand it, the common wisdom is to wait for about half the
> round-trip time for a system call and then park. It doesn't sound
> terribly hard to write something to do that.
> 
> Please forgive me for digressing, but:
> 
> Arm has a mechanism to do this, WFE. When a core fails to obtain a
> lock it executes a WFE instruction which waits on the cache line
> containing the lock. When that cache line is written to by the core
> releasing the lock it awakens the waiting core.
> 
> I'd like to find some way to expose this in a high-level language but
> it's not at all easy to do.
> 
> I believe that Intel has MWAIT which is similar, but it's a privileged
> instruction so no use to us.
> 

Intel is introducing UMWAIT with Tremont

https://www.felixcloutier.com/x86/umwait


More information about the Concurrency-interest mailing list