We have noticed that in our application that creates worker threads for audio processing, these threads (time-constrained priority) in some cases do not run on the P-Cores (on Apple Silicon Macs).
It was my understanding that once we use audio workgroups, the scheduler will always schedule our threads on the P-Cores.
This works okay as long as the CoreAudio buffer size used is 256 samples or less (@ 48K). But if the buffer size is 512 or above, the threads are run on E-Cores (checked using System Trace).
Is this expected behavior?
Can I find any documentation for this (short of analyzing the scheduler source in kernel)?
Thanks. Devendra.