In general your unpinned userspace threads will hit the same CPU 99.99% of the time, but not 100%.
Sure. You get the pointer, you lock the mutex, 99.99% of the time that is uncontended, then you set all the metrics and release it.
Taking the mutex uses (uncontended) atomic ops.
Sure. You get the pointer, you lock the mutex, 99.99% of the time that is uncontended, then you set all the metrics and release it.
Taking the mutex uses (uncontended) atomic ops.