我正在寻找一个在 Mac OS 和 BSD 上等效于 Linuxsched_getcpu()
和 Windows 的功能GetCurrentProcessorNumberEx()
,以便实现一个用于 cpu-local 存储的库。显然可以使用 cpuid 或 rdtscp 指令来模拟这一点,但可以通过内核合作做得更好:https ://lkml.org/lkml/2007/1/6/190 。
我已经知道线程的当前 CPU 可能会在我使用这些信息时发生变化。
我正在寻找一个在 Mac OS 和 BSD 上等效于 Linuxsched_getcpu()
和 Windows 的功能GetCurrentProcessorNumberEx()
,以便实现一个用于 cpu-local 存储的库。显然可以使用 cpuid 或 rdtscp 指令来模拟这一点,但可以通过内核合作做得更好:https ://lkml.org/lkml/2007/1/6/190 。
我已经知道线程的当前 CPU 可能会在我使用这些信息时发生变化。
有一个或两个问题涵盖了 OSX 的队列跟踪,以及一个dispatch_get_global_queue wiki 页面,它涵盖了 BSD 的等价物。我不知道您是否可以将队列映射到 CPU,但如果可以,那似乎是最接近的等价物。