Re:Seven years later, I bought a new MacBook. For the first ...
by derefr on Tuesday June 02, 2020 @12:49PM
(#23393093)
> This makes some sense if hyperthreading can sometimes cause extra latency for some threads to get real CPU work done, which is hard for the OS to strictly control.
Threads requiring hard real-time responsiveness can (and do) request to be marked as such by the scheduler. And the OS is certainly aware of what hyperthreads-presenting-as-cores belong to which physical cores, and uses this information in scheduling. So I'd find it implausible that any modern OS (esp. one that already had good DAW support) doesn't already have logic to try to keep the other hyperthreads of a core on which a hard-realtime thread is running, as uncontended as possible, by either not scheduling, or very conservatively scheduling (i.e. "early" pre-empting) anything on that hyperthread.
I have a feeling it's something much more arcane. Maybe a hitch generated by the core switching "licenses" due to an AVX512 instruction.
Threads requiring hard real-time responsiveness can (and do) request to be marked as such by the scheduler. And the OS is certainly aware of what hyperthreads-presenting-as-cores belong to which physical cores, and uses this information in scheduling. So I'd find it implausible that any modern OS (esp. one that already had good DAW support) doesn't already have logic to try to keep the other hyperthreads of a core on which a hard-realtime thread is running, as uncontended as possible, by either not scheduling, or very conservatively scheduling (i.e. "early" pre-empting) anything on that hyperthread.
I have a feeling it's something much more arcane. Maybe a hitch generated by the core switching "licenses" due to an AVX512 instruction.