Use the yield instruction in the arm64 cpu_spinwait. This instruction is

a hint to the hardware the software is not performing a task.

Sponsored by:	ABT Systems Ltd
This commit is contained in:
Andrew Turner 2016-04-25 17:32:08 +00:00
parent 52a510ace9
commit ad76caf642

View File

@ -50,7 +50,7 @@
#define cpu_getstack(td) ((td)->td_frame->tf_sp)
#define cpu_setstack(td, sp) ((td)->td_frame->tf_sp = (sp))
#define cpu_spinwait() /* nothing */
#define cpu_spinwait() __asm __volatile("yield" ::: "memory")
/* Extract CPU affinity levels 0-3 */
#define CPU_AFF0(mpidr) (u_int)(((mpidr) >> 0) & 0xff)