Re: Low-latency pause in JDK
Aaron Grunthal via Concurrency-interest <[email protected]>
| Newsgroups | gmane.comp.java.jsr.166-concurrency |
|---|---|
| Message-ID | <[email protected]> |
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 _______________________________________________ Concurrency-interest mailing list [email protected] http://cs.oswego.edu/mailman/listinfo/concurrency-interest