是否存在等效的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?
| 归档时间: |
|
| 查看次数: |
2671 次 |
| 最近记录: |