我正在使用 RDTSCP 替换 LFENCE;RDTSC 序列,并返回处理器 ID,以便我知道在线程重新调度到另一个 CPU 后何时比较 TSC 值。
为了确保不会在太旧的机器上运行 RDTSCP,我在 CPUID 检查(使用 libcpuid)后回退到 RDTSC。我想尝试使用 gcc 多目标属性功能而不是 CPUID 调用:
int core2_func (void) __attribute__ ((__target__ ("arch=core2")));
gcc 手册列出了许多 cpu 系列(haswell、skylake、...)。我如何找到哪个 cpu 系列首先引入了 RDTSCP?