相当于PPC的x86 PAUSE指令

Jim*_*meh 7 powerpc spinlock

是否存在等效的x86 PAUSE指令,该指令位于繁忙的等待循环中以提高性能,特别是在PowerPC上的SMT机器上?

小智 10

在Linux内核中,我们在arch/powerpc/include/asm/processor.h中有这个

/* Macros for adjusting thread priority (hardware multi-threading) */
#define HMT_very_low()   asm volatile("or 31,31,31   # very low priority")
#define HMT_low()    asm volatile("or 1,1,1      # low priority")
#define HMT_medium_low() asm volatile("or 6,6,6      # medium low priority")
#define HMT_medium()     asm volatile("or 2,2,2      # medium priority")
#define HMT_medium_high() asm volatile("or 5,5,5      # medium high priority")
#define HMT_high()   asm volatile("or 3,3,3      # high priority")
Run Code Online (Sandbox Code Playgroud)

我不熟悉x86 PAUSE,但听起来像"或31,31,31"就是你想要的.

你在做哪个powerpc处理器?对于SMT,它必须是POWER5,6或7?