How does _mm_mwait work?

834 views Asked by At

How does _mm_mwait from pmmintrin.h work? (I mean not the asm for it, but action and how this action is taken in NUMA systems. The store monitoring is easy to implement only on bus-based SMP systems with snooping of bus.)

What processors does implement it?

Is it used in some spinlocks?

1

There are 1 answers

2
mschneider On

Every time a CPU on a multicore chip tries to write a specific memory address, all other CPUs, which have this particular memory address in their caches, have to be notified of that change. This notification could be used to implement the wakeup from MWAIT on modern CPUs independent of them having a single or separate memory busses.

What processors does implement it?

MWAIT is part of SSE3.

Is it used in some spinlocks?

This is contrary to the definition of a spinlock - the CPU is not busy.