1

我正在 OS X (10.8.4) 上实现我的第一个驱动程序。我的驱动程序应该每秒读取每个处理器上的 MSR (0x198) 并将值打印到 system.log。

我正在使用 IOWorkLoop 和 IOTimerEventSource 每秒唤醒一次并调用一个打印 MSR 值的函数,但我找不到任何关于如何在所有处理器上调用该函数的指南/文档。

在这种情况下,您建议使用什么机制?

4

1 回答 1

1

找到了解决方案:

void mp_rendezvous_no_intrs(void (*action_func)(void *), void *arg)

这将在所有内核上运行带有参数arg的函数action_func 。

你可以在这里找到这个函数的源代码: http ://www.opensource.apple.com/source/xnu/xnu-1456.1.26/osfmk/i386/mp.c

于 2013-04-08T12:42:53.750 回答